summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-06-05 17:27:05 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-06-18 08:33:46 +0000
commit9f4560b1027ae06fdb497023cdcaf91b8511fa74 (patch)
treef9789c1b2941956c5cc104cf03c6b6cc93759152
parentd17ea114e5ef69ad5d5d7413280a13e6428098aa (diff)
downloadqtwebengine-chromium-9f4560b1027ae06fdb497023cdcaf91b8511fa74.tar.gz
BASELINE: Update Chromium to 67.0.3396.76
Change-Id: I9a14af4efb092ab203e9364f0779fca781909a38 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
-rw-r--r--chromium/DEPS6
-rw-r--r--chromium/ash/public/interfaces/app_list.mojom4
-rw-r--r--chromium/base/allocator/partition_allocator/address_space_randomization.h14
-rw-r--r--chromium/build/util/LASTCHANGE2
-rw-r--r--chromium/chrome/VERSION2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_mr.xtb16
-rw-r--r--chromium/chrome/app/resources/chromium_strings_nl.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_sw.xtb16
-rw-r--r--chromium/chrome/app/resources/generated_resources_bn.xtb82
-rw-r--r--chromium/chrome/app/resources/generated_resources_ca.xtb8
-rw-r--r--chromium/chrome/app/resources/generated_resources_da.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_de.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_es.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_fa.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_iw.xtb6
-rw-r--r--chromium/chrome/app/resources/generated_resources_mr.xtb322
-rw-r--r--chromium/chrome/app/resources/generated_resources_nl.xtb20
-rw-r--r--chromium/chrome/app/resources/generated_resources_pl.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_sw.xtb76
-rw-r--r--chromium/chrome/app/resources/generated_resources_zh-CN.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_zh-TW.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_de.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_mr.xtb20
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_nl.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_sw.xtb16
-rw-r--r--chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc6
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json6
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json6
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_win.json6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc19
-rw-r--r--chromium/chrome/test/BUILD.gn2
-rw-r--r--chromium/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc8
-rw-r--r--chromium/components/exo/BUILD.gn1
-rw-r--r--chromium/components/exo/client_controlled_shell_surface.cc7
-rw-r--r--chromium/components/exo/client_controlled_shell_surface_unittest.cc54
-rw-r--r--chromium/components/exo/shell_surface_base.h4
-rw-r--r--chromium/components/ntp_snippets/contextual/cluster.cc4
-rw-r--r--chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.cc11
-rw-r--r--chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.h3
-rw-r--r--chromium/components/ntp_snippets/contextual/contextual_suggestion.cc11
-rw-r--r--chromium/components/ntp_snippets/contextual/contextual_suggestion.h4
-rw-r--r--chromium/components/ntp_snippets/contextual/contextual_suggestions_fetch.cc9
-rw-r--r--chromium/components/ntp_snippets/contextual/proto/get_pivots_response.proto16
-rw-r--r--chromium/components/sessions/core/tab_restore_service_helper.cc14
-rw-r--r--chromium/components/strings/components_chromium_strings_nl.xtb2
-rw-r--r--chromium/components/strings/components_google_chrome_strings_nl.xtb2
-rw-r--r--chromium/components/strings/components_strings_bn.xtb2
-rw-r--r--chromium/components/strings/components_strings_iw.xtb2
-rw-r--r--chromium/components/strings/components_strings_kn.xtb2
-rw-r--r--chromium/components/strings/components_strings_mr.xtb76
-rw-r--r--chromium/components/strings/components_strings_nl.xtb22
-rw-r--r--chromium/components/strings/components_strings_pl.xtb2
-rw-r--r--chromium/components/strings/components_strings_sw.xtb20
-rw-r--r--chromium/components/viz/service/display/surface_aggregator.cc4
-rw-r--r--chromium/components/viz/service/frame_sinks/surface_synchronization_unittest.cc57
-rw-r--r--chromium/components/viz/service/surfaces/surface.cc13
-rw-r--r--chromium/content/app/strings/translations/content_strings_bn.xtb4
-rw-r--r--chromium/content/browser/android/overscroll_controller_android_unittest.cc6
-rw-r--r--chromium/content/browser/frame_host/interstitial_page_impl.cc6
-rw-r--r--chromium/content/browser/frame_host/navigation_controller_impl_browsertest.cc37
-rw-r--r--chromium/content/browser/indexed_db/indexed_db_database.cc2
-rw-r--r--chromium/content/browser/indexed_db/indexed_db_transaction.cc7
-rw-r--r--chromium/content/browser/indexed_db/indexed_db_transaction.h7
-rw-r--r--chromium/content/browser/renderer_host/compositor_impl_android.cc20
-rw-r--r--chromium/content/browser/renderer_host/compositor_impl_android.h9
-rw-r--r--chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc41
-rw-r--r--chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.h24
-rw-r--r--chromium/content/browser/renderer_host/render_process_host_impl.cc5
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_android.cc4
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_android.h1
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc79
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_base.h6
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_child_frame.cc8
-rw-r--r--chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc15
-rw-r--r--chromium/content/browser/site_per_process_browsertest.cc24
-rw-r--r--chromium/content/browser/web_contents/web_contents_android.cc14
-rw-r--r--chromium/content/common/swapped_out_messages.cc2
-rw-r--r--chromium/content/public/common/web_preferences.cc4
-rw-r--r--chromium/content/renderer/loader/resource_dispatcher.cc19
-rw-r--r--chromium/device/bluetooth/chromeos/bluetooth_utils.cc31
-rw-r--r--chromium/extensions/common/permissions/api_permission.h2
-rw-r--r--chromium/extensions/strings/extensions_strings_mr.xtb2
-rw-r--r--chromium/extensions/strings/extensions_strings_nl.xtb4
-rw-r--r--chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc5
-rw-r--r--chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc38
-rw-r--r--chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h8
-rw-r--r--chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc43
-rw-r--r--chromium/gpu/config/gpu_driver_bug_list.json11
-rw-r--r--chromium/gpu/config/gpu_lists_version.h2
-rw-r--r--chromium/media/gpu/android/surface_texture_gl_owner.cc17
-rw-r--r--chromium/net/data/ssl/certificate_transparency/log_list.json52
-rw-r--r--chromium/net/proxy_resolution/proxy_config_service_linux.cc44
-rw-r--r--chromium/net/proxy_resolution/proxy_config_service_linux.h16
-rw-r--r--chromium/net/proxy_resolution/proxy_config_service_linux_unittest.cc14
-rw-r--r--chromium/net/websockets/websocket_stream.cc6
-rw-r--r--chromium/printing/print_settings_initializer_win.cc3
-rw-r--r--chromium/printing/printing_context_win_unittest.cc19
-rw-r--r--chromium/skia/ext/skia_commit_hash.h2
-rw-r--r--chromium/third_party/android_crazy_linker/BUILD.gn47
-rw-r--r--chromium/third_party/angle/src/libANGLE/params.cpp4
-rw-r--r--chromium/third_party/angle/src/libANGLE/params.h14
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp3
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h4
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp6
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h8
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp24
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h10
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp5
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp40
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h6
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp8
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h2
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp10
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h4
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp8
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h2
-rw-r--r--chromium/third_party/blink/renderer/core/dom/element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/editing/finder/text_finder.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/editing/finder/text_finder.h3
-rw-r--r--chromium/third_party/blink/renderer/core/exported/web_frame_serializer.cc11
-rw-r--r--chromium/third_party/blink/renderer/core/exported/web_view_impl.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc15
-rw-r--r--chromium/third_party/blink/renderer/core/frame/csp/content_security_policy.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/frame/csp/content_security_policy_test.cc28
-rw-r--r--chromium/third_party/blink/renderer/core/frame/mhtml_archive_test.cc9
-rw-r--r--chromium/third_party/blink/renderer/core/frame/remote_frame_view.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/layout/hit_test_result.h3
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_box.cc5
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_object.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_object.h13
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_view.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_view.h1
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/layout_svg_container.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.cc36
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h10
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object_test.cc67
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.h4
-rw-r--r--chromium/third_party/blink/renderer/core/layout/visual_rect_mapping_test.cc5
-rw-r--r--chromium/third_party/blink/renderer/core/loader/frame_fetch_context.cc38
-rw-r--r--chromium/third_party/blink/renderer/core/loader/threadable_loader.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/paint/README.md7
-rw-r--r--chromium/third_party/blink/renderer/core/paint/box_painter.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc28
-rw-r--r--chromium/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc5
-rw-r--r--chromium/third_party/blink/renderer/core/paint/paint_layer.cc47
-rw-r--r--chromium/third_party/blink/renderer/core/paint/paint_layer.h5
-rw-r--r--chromium/third_party/blink/renderer/core/paint/paint_layer_painter.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/paint/svg_container_painter.cc9
-rw-r--r--chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.cc29
-rw-r--r--chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h2
-rw-r--r--chromium/third_party/blink/renderer/devtools/front_end/sdk/NetworkManager.js5
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.cc5
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc55
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.h1
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc24
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.h1
-rw-r--r--chromium/third_party/blink/renderer/platform/graphics/paint/cull_rect.h1
-rw-r--r--chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc17
-rw-r--r--chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc17
-rw-r--r--chromium/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc4
-rw-r--r--chromium/third_party/blink/renderer/platform/mhtml/mhtml_archive.cc4
-rw-r--r--chromium/third_party/libaddressinput/chromium/resources/address_input_strings_id.xtb2
-rw-r--r--chromium/third_party/opus/README.chromium1
-rw-r--r--chromium/third_party/opus/src/src/opus_encoder.c6
-rw-r--r--chromium/third_party/skia/src/core/SkScan_Path.cpp5
-rw-r--r--chromium/tools/metrics/histograms/enums.xml2
-rw-r--r--chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb4
-rw-r--r--chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_mr.xtb10
-rw-r--r--chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb2
-rw-r--r--chromium/ui/android/delegated_frame_host_android.cc16
-rw-r--r--chromium/ui/android/delegated_frame_host_android_unittest.cc4
-rw-r--r--chromium/ui/android/window_android_compositor.h9
-rw-r--r--chromium/ui/base/material_design/material_design_controller.cc2
-rw-r--r--chromium/ui/display/display_switches.cc8
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc4
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc2
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/drm_thread.cc9
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/drm_window_unittest.cc2
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.cc1
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.h1
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.cc5
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h1
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/scanout_buffer.h1
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/screen_manager.cc5
-rw-r--r--chromium/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc3
-rw-r--r--chromium/ui/strings/translations/ui_strings_fa.xtb2
-rw-r--r--chromium/ui/strings/translations/ui_strings_mr.xtb2
-rw-r--r--chromium/ui/strings/translations/ui_strings_pt-BR.xtb4
-rw-r--r--chromium/ui/views/animation/ink_drop_host_view.cc3
-rw-r--r--chromium/ui/views/controls/native/native_view_host_aura.cc5
-rw-r--r--chromium/ui/views/controls/textfield/textfield.cc4
-rw-r--r--chromium/ui/views/controls/textfield/textfield.h3
-rw-r--r--chromium/ui/views/selection_controller.cc4
-rw-r--r--chromium/ui/views/selection_controller.h8
-rw-r--r--chromium/v8/include/v8-platform.h1
-rw-r--r--chromium/v8/include/v8-version.h2
-rw-r--r--chromium/v8/src/builtins/builtins-date.cc2
-rw-r--r--chromium/v8/src/builtins/builtins-regexp-gen.cc24
-rw-r--r--chromium/v8/src/compiler/js-call-reducer.cc17
-rw-r--r--chromium/v8/src/compiler/representation-change.cc22
-rw-r--r--chromium/v8/src/compiler/representation-change.h2
-rw-r--r--chromium/v8/src/flag-definitions.h8
-rw-r--r--chromium/v8/src/heap/array-buffer-tracker-inl.h12
-rw-r--r--chromium/v8/src/heap/array-buffer-tracker.cc14
-rw-r--r--chromium/v8/src/heap/array-buffer-tracker.h9
-rw-r--r--chromium/v8/src/inspector/wasm-translation.cc8
-rw-r--r--chromium/v8/src/intl.cc14
-rw-r--r--chromium/v8/src/intl.h7
-rw-r--r--chromium/v8/src/isolate.cc82
-rw-r--r--chromium/v8/src/isolate.h27
-rw-r--r--chromium/v8/src/objects.cc2
-rw-r--r--chromium/v8/src/objects/js-array.h4
-rw-r--r--chromium/v8/src/v8.cc1
-rw-r--r--chromium/v8/src/wasm/wasm-memory.cc2
224 files changed, 1906 insertions, 992 deletions
diff --git a/chromium/DEPS b/chromium/DEPS
index 5725f8c13cc..a35eb7c570d 100644
--- a/chromium/DEPS
+++ b/chromium/DEPS
@@ -712,7 +712,7 @@ deps = {
},
'src/third_party/angle': {
'url':
- '{chromium_git}/angle/angle.git@f7d4f25ecb44e47cecea9f3685b5c03aa7a4f9d3'
+ '{chromium_git}/angle/angle.git@702006f4a07e4f0069f189679f5c84ebda7c5772'
},
'src/third_party/apache-portable-runtime/src': {
'condition':
@@ -1226,7 +1226,7 @@ deps = {
(Var("chromium_git")) + '/external/github.com/google/shaderc.git@cd8793c34907073025af2622c28bcee64e9879a4',
'src/third_party/skia': {
'url':
- '{skia_git}/skia.git@c097162d82fe7b13b349ed33bc17f1d2bafa7e82'
+ '{skia_git}/skia.git@78b60f4ff13b83da98ae2bca85aaef0a98b61098'
},
'src/third_party/smhasher/src':
(Var("chromium_git")) + '/external/smhasher.git@e87738e57558e0ec472b2fc3a643b838e5b6e88f',
@@ -1314,7 +1314,7 @@ deps = {
(Var("chromium_git")) + '/infra/luci/client-py.git@88229872dd17e71658fe96763feaa77915d8cbd6',
'src/v8': {
'url':
- '{chromium_git}/v8/v8.git@ebf52875c9eb32ee6dca35c18a6311020634e3b7'
+ '{chromium_git}/v8/v8.git@7093b6561585bf66c0d44fe24e3f8235c263d979'
}
}
diff --git a/chromium/ash/public/interfaces/app_list.mojom b/chromium/ash/public/interfaces/app_list.mojom
index 89eb5c198ac..f3a11a64eed 100644
--- a/chromium/ash/public/interfaces/app_list.mojom
+++ b/chromium/ash/public/interfaces/app_list.mojom
@@ -199,25 +199,21 @@ interface AppListController {
// These interfaces are called while dealing with the OEM folder in the
// AppListSyncableService in Chrome.
// Finds the OEM folder or creates one if it doesn't exist.
- // |oem_folder_id|: the expected id of the OEM folder.
// |oem_folder_name|: the expected name of the OEM folder while creating.
// |preferred_oem_position|: the preferred position of the OEM folder while
// creating; if it's invalid then the final position
// is determined in Ash.
// |oem_folder|: the meta data of the existing/created OEM folder.
FindOrCreateOemFolder(
- string oem_folder_id,
string oem_folder_name,
syncer.mojom.StringOrdinal preferred_oem_position)
=> (AppListItemMetadata oem_folder);
// Resolves the position of the OEM folder.
- // |oem_folder_id|: the id of the OEM folder.
// |preferred_oem_position|: the preferred position of the OEM folder; if it's
// invalid then the final position is determined in
// Ash.
// |oem_folder|: the meta data of the OEM folder, or null if it doesn't exist.
ResolveOemFolderPosition(
- string oem_folder_id,
syncer.mojom.StringOrdinal preferred_oem_position)
=> (AppListItemMetadata? oem_folder);
diff --git a/chromium/base/allocator/partition_allocator/address_space_randomization.h b/chromium/base/allocator/partition_allocator/address_space_randomization.h
index d5d497db7ab..370fde438db 100644
--- a/chromium/base/allocator/partition_allocator/address_space_randomization.h
+++ b/chromium/base/allocator/partition_allocator/address_space_randomization.h
@@ -88,11 +88,22 @@ constexpr uintptr_t AslrMask(uintptr_t bits) {
#elif defined(ARCH_CPU_ARM64)
+ #if defined(OS_ANDROID)
+
+ // Restrict the address range on Android to avoid a large performance
+ // regression in single-process WebViews. See https://crbug.com/837640.
+ constexpr uintptr_t kASLRMask = AslrMask(30);
+ constexpr uintptr_t kASLROffset = AslrAddress(0x20000000ULL);
+
+ #else
+
// ARM64 on Linux has 39-bit user space. Use 38 bits since kASLROffset
// could cause a carry.
constexpr uintptr_t kASLRMask = AslrMask(38);
constexpr uintptr_t kASLROffset = AslrAddress(0x1000000000ULL);
+ #endif
+
#elif defined(ARCH_CPU_PPC64)
#if defined(OS_AIX)
@@ -167,7 +178,8 @@ constexpr uintptr_t AslrMask(uintptr_t bits) {
#endif // !defined(OS_SOLARIS) && !defined(OS_AIX)
- #endif // !defined(ARCH_CPU_X86_64) && !defined(ARCH_CPU_PPC64) && !defined(ARCH_CPU_S390X) && !defined(ARCH_CPU_S390)
+ #endif // !defined(ARCH_CPU_X86_64) && !defined(ARCH_CPU_PPC64) &&
+ // !defined(ARCH_CPU_S390X) && !defined(ARCH_CPU_S390)
#endif // defined(OS_POSIX)
diff --git a/chromium/build/util/LASTCHANGE b/chromium/build/util/LASTCHANGE
index 24d349d6c17..9538fc6d3e5 100644
--- a/chromium/build/util/LASTCHANGE
+++ b/chromium/build/util/LASTCHANGE
@@ -1 +1 @@
-LASTCHANGE=581e0c8eab20845b933a4462b3efa166070cead6-refs/branch-heads/3396@{#600}
+LASTCHANGE=fd2b388b0c400380d05c8f318cefcd040914c515-refs/branch-heads/3396@{#745}
diff --git a/chromium/chrome/VERSION b/chromium/chrome/VERSION
index 28f313ac68a..03d3fb5f9a9 100644
--- a/chromium/chrome/VERSION
+++ b/chromium/chrome/VERSION
@@ -1,4 +1,4 @@
MAJOR=67
MINOR=0
BUILD=3396
-PATCH=47
+PATCH=76
diff --git a/chromium/chrome/app/resources/chromium_strings_mr.xtb b/chromium/chrome/app/resources/chromium_strings_mr.xtb
index dcfd600341d..33f2b77a7b5 100644
--- a/chromium/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_mr.xtb
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="mr">
-<translation id="1065672644894730302">आपली प्राधान्ये वाचता आली नाहीत.
+<translation id="1065672644894730302">तुमची प्राधान्ये वाचता आली नाहीत.
काही वैशिष्‍ट्ये अनुपलब्ध असू शकतात आणि प्राधान्यांमधील बदल सेव्ह केले जाणार नाहीत.</translation>
<translation id="1104942323762546749">Chromium ला तुमचे पासवर्ड निर्यात करायचे आहेत. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
<translation id="1115445892567829615">Chromium आपला डेटा संकालित करू शकले नाही. कृपया आपला संकालन वाक्यांश अपडेट करा.</translation>
@@ -17,7 +17,7 @@
<translation id="151962892725702025">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chromium OS आपला डेटा संकालित करू शकले नाही.</translation>
<translation id="1585657529869845941">ते दिसल्यास <ph name="BEGIN_BOLD" />कसेही स्विच करा<ph name="END_BOLD" /> वर क्लिक करा</translation>
<translation id="1668054258064581266">Chromium वरून आपले खाते काढल्यानंतर, प्रभावी होण्यासाठी आपल्याला आपले उघडे टॅब रीलोड करण्याची आवश्यकता असू शकते.</translation>
-<translation id="1688750314291223739">वेबवर आपली वैयक्तीकृत केलेली ब्राउझर वैशिष्ट्ये जतन करण्यासाठी समक्रमण सेट करा आणि कोणत्याही संगणकावरील Chromium वरून त्यात प्रवेश करा.</translation>
+<translation id="1688750314291223739">वेबवर तुमची वैयक्तीकृत केलेली ब्राउझर वैशिष्ट्ये सेव्ह करण्यासाठी समक्रमण सेट करा आणि कोणत्याही संगणकावरील Chromium वरून त्यात प्रवेश करा.</translation>
<translation id="1708666629004767631">Chromium ची नवीन, सुरक्षित आवृत्ती उपलब्ध आहे.</translation>
<translation id="1716051742506968">{0,plural, =0{एक Chromium अपडेट उपलब्ध आहे}=1{एक Chromium अपडेट उपलब्ध आहे}one{एक Chromium अपडेट # दिवसासाठी उपलब्ध आहे}other{एक Chromium अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation>
<translation id="1766096484055239003">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation>
@@ -110,7 +110,7 @@
<translation id="4621240073146040695">अद्ययावत करणे जवळजवळ पूर्ण झाले! अपडेट करणे समाप्त करण्यासाठी Chromium रीलाँच करा.</translation>
<translation id="4677944499843243528">प्रोफाईल दुसर्‍या संगणकावरील (<ph name="HOST_NAME" />) दुसर्‍या Chromium प्रक्रियेद्वारे (<ph name="PROCESS_ID" />) वापरले जात असल्याचे दिसते. Chromium ने प्रोफाईल लॉक केले आहे जेणेकरून ते दूषित होत नाही. कोणतीही अन्य प्रक्रिया हे प्रोफाईल वापरत नसल्याची आपल्याला खात्री असल्यास, आपण प्रोफाईल अनलॉक करू शकता आणि Chromium रीलाँच करू शकता.</translation>
<translation id="469338717132742108">Chromium OS सह मदत मिळवा</translation>
-<translation id="4708774505295300557">कोणीतरी यापूर्वी या संगणकावरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून साइन इन केले. कृपया आपली माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.</translation>
+<translation id="4708774505295300557">कोणीतरी यापूर्वी या संगणकावरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून साइन इन केले. कृपया तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.</translation>
<translation id="4714956846925717402">Chromium वर अधिक जलद या</translation>
<translation id="4746050847053251315">तरीही Chromium बंद करायचे?</translation>
<translation id="4888717733111232871">mDNS रहदारीस अनुमती देण्यासाठी Chromium साठी अंतर्गामी नियम.</translation>
@@ -162,7 +162,7 @@
<translation id="6403826409255603130">Chromium हे एक वेबब्राउझर असून ते वेबपृष्ठे आणि अॅप्लिकेशन अतिशय वेगात चालवते. हे वापरण्यास जलद, स्थिर आणि सोपे आहे. Chromium मध्ये तयार करण्यासाठी मालवेयर आणि फिशिंग संरक्षणासह वेब अधिक सुरक्षितपणे ब्राउझ करा.</translation>
<translation id="6457450909262716557">{SECONDS,plural, =1{Chromium १ सेकंदात रीस्टार्ट होईल}one{Chromium # सेकंदात रीस्टार्ट होईल}other{Chromium # सेकंदांत रीस्टार्ट होईल}}</translation>
<translation id="6475912303565314141">आपण Chromium सुरू करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation>
-<translation id="6485906693002546646">आपण आपली Chromium सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खाते न सोडता Chromium वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation>
+<translation id="6485906693002546646">आपण तुमची Chromium सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खाते न सोडता Chromium वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation>
<translation id="6510925080656968729">Chromium विस्‍थापित करा</translation>
<translation id="6598877126913850652">Chromium च्या सूचना सेटिंग्जमध्ये जा</translation>
<translation id="6664239887951090350">{0,plural, =0{Chromium आता पुन्हा लाँच होईल}=1{Chromium एका सेकंदाने पुन्हा लाँच होईल}one{Chromium # सेकंदाने पुन्हा लाँच होईल}other{Chromium # सेकंदांनी पुन्हा लाँच होईल}}</translation>
@@ -188,9 +188,9 @@
<translation id="722928257909516027">Chromium मेनू दर्शवा</translation>
<translation id="731644333568559921">&amp;Chromium OS अपडेट करा</translation>
<translation id="731795002583552498">Chromium अपडेट होत आहे</translation>
-<translation id="7318036098707714271">आपली प्राधान्ये फाइल दूषित किंवा अवैध आहे.
+<translation id="7318036098707714271">तुमची प्राधान्ये फाइल दूषित किंवा अवैध आहे.
-Chromium आपली सेटिंग्ज पुनर्प्राप्त करण्‍यात अक्षम आहे.</translation>
+Chromium तुमची सेटिंग्ज पुनर्प्राप्त करण्‍यात अक्षम आहे.</translation>
<translation id="7331920710658926971">आपल्या फोनवर Chromium इंस्टॉल करा. आम्ही आपल्या फोनवर एक SMS पाठवू.</translation>
<translation id="7337881442233988129">Chromium</translation>
<translation id="7339898014177206373">नवीन विंडो</translation>
@@ -247,9 +247,9 @@ Chromium आपली सेटिंग्ज पुनर्प्राप्
<translation id="8907580949721785412">Chromium संकेतशब्‍द दर्शविण्‍याचा प्रयत्‍न करत आहे. यास अनुमती देण्‍यासाठी आपला Windows संकेतशब्‍द टाइप करा.</translation>
<translation id="8941642502866065432">Chromium अपडेट करू शकत नाही</translation>
<translation id="894903460958736500">आपल्या संगणकावर चालत असलेले सॉफ्टवेअर Chromium सह विसंगत आहे.</translation>
-<translation id="8968921422458636175">Chromium <ph name="SAVED_PASSWORD_LINK" /> सह हा पासवर्ड जतन करेल. आपल्याला तो लक्षात ठेवण्याची आवश्यकता नाही.</translation>
+<translation id="8968921422458636175">Chromium <ph name="SAVED_PASSWORD_LINK" /> सह हा पासवर्ड सेव्ह करेल. आपल्याला तो लक्षात ठेवण्याची आवश्यकता नाही.</translation>
<translation id="8974095189086268230">अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />खुले स्रोत सॉफ्‍टवेअर<ph name="END_LINK_CROS_OSS" /> द्वारे Chromium OS बनवणे शक्‍य झाले.</translation>
-<translation id="8985587603644336029">कोणीतरी यापूर्वी या संगणकावरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> या रुपात साइन इन केले होते. ते आपले खाते नसल्यास, आपली माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.
+<translation id="8985587603644336029">कोणीतरी यापूर्वी या संगणकावरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> या रुपात साइन इन केले होते. ते आपले खाते नसल्यास, तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.
तरीही साइन इन करण्यामुळे <ph name="ACCOUNT_EMAIL_NEW" /> मध्ये बुकमार्क, इतिहास यासारखी Chromium माहिती आणि अन्य सेटिंग्ज विलीन होईल.</translation>
<translation id="9013087743919948559">Chromium वर जोडा</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_nl.xtb b/chromium/chrome/app/resources/chromium_strings_nl.xtb
index c7a63d63f6e..c195c68cf62 100644
--- a/chromium/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_nl.xtb
@@ -120,7 +120,7 @@ Sommige functies zijn wellicht niet beschikbaar en wijzigingen in voorkeuren wor
<translation id="4994636714258228724">Jezelf toevoegen aan Chromium</translation>
<translation id="5032989939245619637">Details opslaan in Chromium</translation>
<translation id="5045248521775609809">Neem Chromium overal mee naartoe</translation>
-<translation id="5116586539350239523">Chromium slaat je persoonlijke gegevens veilig op, zodat je ze niet opnieuw hoeft op te geven.</translation>
+<translation id="5116586539350239523">Chromium slaat je persoonlijke gegevens beveiligd op, zodat je ze niet opnieuw hoeft op te geven.</translation>
<translation id="5231355151045086930">Uitloggen bij Chromium</translation>
<translation id="5358375970380395591">Je logt in op een beheerd account waarmee de eigenaar van dat account beheer krijgt over je Chromium-profiel. Je Chromium-gegevens zoals je apps, bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden permanent gekoppeld aan <ph name="USER_NAME" />. Je kunt deze gegevens verwijderen via het Google Accounts Dashboard, maar je kunt deze gegevens niet koppelen aan een ander account.<ph name="LEARN_MORE" /></translation>
<translation id="5386450000063123300">Chromium updaten (<ph name="PROGRESS_PERCENT" />)</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_sw.xtb b/chromium/chrome/app/resources/chromium_strings_sw.xtb
index 776f3e8dddd..628741485fc 100644
--- a/chromium/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_sw.xtb
@@ -6,7 +6,7 @@
Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahifadhiwa.</translation>
<translation id="1104942323762546749">Chromium ingependa kuhamisha manenosiri yako. Andika nenosiri lako la Windows ili uruhusu shughuli hii.</translation>
<translation id="1115445892567829615">Chromium haikuweza kusawazisha data yako. Tafadhali sasisha kauli siri yako ya Usawazishaji.</translation>
-<translation id="113122355610423240">Chromium ni kivinjari chako chaguo-msingi</translation>
+<translation id="113122355610423240">Chromium ni kivinjari chako chaguo msingi</translation>
<translation id="1170115874949214249">Sakinisha Chromium kwenye simu yako. Tutatuma SMS kwenye nambari yako ya simu ya mbinu za kurejesha uwezo wa kufikia akaunti.</translation>
<translation id="1174473354587728743">Ungependa kushiriki kompyuta? Sasa unaweza kusanidi Chromium kama tu unavyoipenda.</translation>
<translation id="1185134272377778587">Kuhusu Chromium</translation>
@@ -14,7 +14,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="1396446129537741364">Chromium inajaribu kuonyesha manenosiri.</translation>
<translation id="1414495520565016063">Umeingia kwenye Chromium!</translation>
<translation id="1444754455097148408">Leseni za programu huria kwenye Chromium</translation>
-<translation id="1502360822835740515">Fanya Chromium iwe kivinjari chako chaguo-msingi</translation>
+<translation id="1502360822835740515">Fanya Chromium iwe kivinjari chako chaguo msingi</translation>
<translation id="151962892725702025">Mfumo wa Uendeshaji wa Chromium haukuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation>
<translation id="1585657529869845941">Bofya kitufe cha <ph name="BEGIN_BOLD" />Badilisha tu<ph name="END_BOLD" />, kama kinaonekana</translation>
<translation id="1668054258064581266">Baada ya kuondoa akaunti yako kwenye Chromium, huenda ukahitajika kupakia upya vichupo vyako vilivyo wazi ili kuanza kufanya kazi.</translation>
@@ -28,7 +28,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="1869480248812203386">Unaweza kusaidia kuifanya Chromium salama na rahisi zaidi kutumia kwa kuripoti maelezo ya uwezekano wa matukio yasiyo salama kwa Google kiotomatiki.</translation>
<translation id="1881322772814446296">Unaingia katika akaunti ukitumia akaunti inayodhibitiwa na kumpa msimamizi wa akaunti hiyo udhibiti wa wasifu wako kwenye Chromium. Data yako ya Chromium, kama vile programu zako, alamisho, historia, manenosiri, na mipangilio nyingine itahusishwa na<ph name="USER_NAME" /> kabisa. Utaweza kufuta data hii kupitia Dashibodi ya Akaunti za Google, lakini hutaweza kuunganisha data hii na akaunti nyingine. Unaweza kwa hiari kuunda wasifu mpya ili kuweka data yako ya Chromium iliyo kando. <ph name="LEARN_MORE" /></translation>
<translation id="1929939181775079593">Chromium haiamiliki. Zindua upya sasa?</translation>
-<translation id="1966382378801805537">Chromium haijafaulu kubainisha wala kuweka kivinjari chaguo-msingi</translation>
+<translation id="1966382378801805537">Chromium haijafaulu kubainisha wala kuweka kivinjari chaguo msingi</translation>
<translation id="1967743265616885482">Kijenzi kilicho na jina sawa kimejulikana kuwa na ukinzani na Chromium.</translation>
<translation id="2008474315282236005">Hatua hii itafuta kipengee 1 kwenye kifaa hiki. Ili urejeshe data yako baadaye, ingia katika Chromium ukitumia <ph name="USER_EMAIL" />.</translation>
<translation id="2117378023188580026">Msimamizi wako anakuomba uwashe Chromium upya ili utumie sasisho</translation>
@@ -125,7 +125,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="5358375970380395591">Unaingia katika akaunti inayodhibitiwa na kumpa msimamizi wa akaunti hiyo udhibiti wa wasifu wako kwenye Chromium. Data yako ya Chromium, kama vile programu zako, alamisho, historia, manenosiri, na mipangilio miingine itahusishwa na <ph name="USER_NAME" /> kabisa. Utaweza kufuta data hii kupitia Dashibodi ya Akaunti za Google, lakini hutaweza kuunganisha data hii na akaunti nyingine. <ph name="LEARN_MORE" /></translation>
<translation id="5386450000063123300">Inasasisha Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
<translation id="5398878173008909840">Kuna toleo jipya la Chromium linalopatikana.</translation>
-<translation id="5427571867875391349">Weka Chromium kuwa kivinjari chako chaguo-msingi</translation>
+<translation id="5427571867875391349">Weka Chromium kuwa kivinjari chako chaguo msingi</translation>
<translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Beta ya Chromium</translation>
<translation id="5466153949126434691">Chromium husasisha kiotomatiki ili uwe na toleo jipya zaidi wakati wowote. Upakuaji huu unapokamilika, Chromium itajizima na kuwaka tena na utaanza kutumia.</translation>
<translation id="5479196819031988440">Mfumo wa Uendeshaji wa Chromium hauwezi kufungua ukurasa huu.</translation>
@@ -152,7 +152,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="6096348254544841612">Weka mapendeleo na udhibiti Chromium. Sasisho linapatikana.</translation>
<translation id="6129621093834146363"><ph name="FILE_NAME" /> ni hatari, kwa hivyo Chromium imeizuia.</translation>
<translation id="6212496753309875659">Kompyuta hii tayari ina toleo la hivi punde la Chromium. Ikiwa programu haifanyikazi, tafadhali sanidua Chromium na ujaribu tena.</translation>
-<translation id="6248213926982192922">Fanya Chromium kuwa kivinjari chaguo-msingi</translation>
+<translation id="6248213926982192922">Fanya Chromium kuwa kivinjari chaguo msingi</translation>
<translation id="6295779123002464101">Huenda <ph name="FILE_NAME" /> ni hatari, kwa hivyo Chromium imeizuia.</translation>
<translation id="6309712487085796862">Chromium inatumia kamera yako.</translation>
<translation id="6333502561965082103">Shughuli nyingine zinaendelea kwenye Chromium. Tafadhali jaribu tena baadaye.</translation>
@@ -196,7 +196,7 @@ Chromium haiwezi kufufua mipangilio yako.</translation>
<translation id="7337881442233988129">Chromium</translation>
<translation id="7339898014177206373">Dirisha jipya</translation>
<translation id="734373864078049451">Wavuti, alamisho, na mambo yako mengine ya Chromium yanapatikana hapa.</translation>
-<translation id="7344413941077984497">Ili uweke tovuti ambazo <ph name="NEW_PROFILE_NAME" /> anaweza kuona, unaweza kuweka mipangilio ya vikwazo kwa kutembelea <ph name="BEGIN_LINK_1" /><ph name="DISPLAY_LINK" /><ph name="END_LINK_1" />. Usipobadilisha mipangilio chaguo-msingi, <ph name="NEW_PROFILE_NAME" /> anaweza kuvinjari kila kitu kwenye wavuti.
+<translation id="7344413941077984497">Ili uweke tovuti ambazo <ph name="NEW_PROFILE_NAME" /> anaweza kuona, unaweza kuweka mipangilio ya vikwazo kwa kutembelea <ph name="BEGIN_LINK_1" /><ph name="DISPLAY_LINK" /><ph name="END_LINK_1" />. Usipobadilisha mipangilio chaguo msingi, <ph name="NEW_PROFILE_NAME" /> anaweza kuvinjari kila kitu kwenye wavuti.
Ili umzuie <ph name="NEW_PROFILE_NAME" /> asifikie akaunti yako, hakikisha kuwa umefunga wasifu wako wakati hutumii Chromium. Ili kufunga wasifu wako, bofya jina la wasifu wako kwenye upande wa juu kulia mwa kivinjari chako na uchague "Ondoka kwenye wasifu wa sasa."
<ph name="BEGIN_LINK_2" />Pata maelezo zaidi<ph name="END_LINK_2" />
@@ -208,7 +208,7 @@ Tafadhali angalia barua pepe yako katika <ph name="ACCOUNT_EMAIL" /> upate maagi
<translation id="7577193603922410712">Sasisho maalum la usalama wa Chromium limetumiwa; unapaswa kuzima na kuwasha Chromium sasa ili lifanye kazi (tutarejesha vichupo vyako).</translation>
<translation id="761356813943268536">Chromium inatumia kamera na maikrofoni yako.</translation>
<translation id="7617377681829253106">Chromium imeboreshwa</translation>
-<translation id="7686590090926151193">Chromium si kivinjari chako chaguo-msingi</translation>
+<translation id="7686590090926151193">Chromium si kivinjari chako chaguo msingi</translation>
<translation id="7689606757190482937">Sawazisha na uweke mapendeleo kwenye Chromium katika vifaa vyako vyote</translation>
<translation id="7729447699958282447">Chromium haikuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation>
<translation id="7745317241717453663">Hatua hii itafuta data yako ya kuvinjari kwenye kifaa hiki. Ili urejeshe data yako baadaye, ingia katika Chromium ukitumia <ph name="USER_EMAIL" />.</translation>
@@ -220,7 +220,7 @@ Tafadhali angalia barua pepe yako katika <ph name="ACCOUNT_EMAIL" /> upate maagi
<translation id="7867198900892795913">Chromium imeshindwa kusasisha toleo jipya, kwa hivyo hutapata masasisho ya usalama na vipengele vipya.</translation>
<translation id="7937630085815544518">Uliingia kwenye Chromium kama <ph name="USER_EMAIL_ADDRESS" />. Tafadhali tumia akaunti hiyo hiyo kuingia tena.</translation>
<translation id="7962572577636132072">Chromium husasisha kiotomatiki, kwa hivyo, utakuwa na toleo jipya zaidi wakati wowote.</translation>
-<translation id="7975919845073681630">Huu ni usakinishaji wa pili wa Chromium, na haiwezi kufanywa kuwa kivinjari chako chaguo-msingi.</translation>
+<translation id="7975919845073681630">Huu ni usakinishaji wa pili wa Chromium, na haiwezi kufanywa kuwa kivinjari chako chaguo msingi.</translation>
<translation id="7979877361127045932">Ficha katika menyu ya Chromium</translation>
<translation id="8030318113982266900">Inasasisha kituo chako kwenda kituo cha <ph name="CHANNEL_NAME" />...</translation>
<translation id="8157153840442649507">Chromium inaonyeshwa katika lugha hii</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_bn.xtb b/chromium/chrome/app/resources/generated_resources_bn.xtb
index dc863c43bb6..7b838dea3a4 100644
--- a/chromium/chrome/app/resources/generated_resources_bn.xtb
+++ b/chromium/chrome/app/resources/generated_resources_bn.xtb
@@ -25,7 +25,7 @@
<translation id="1035590878859356651">এই পৃষ্ঠাটি বুকমার্ক করুন...</translation>
<translation id="1036348656032585052">বন্ধ করুন</translation>
<translation id="1036511912703768636">এই USB ডিভাইসগুলির মধ্যে যে কোনোটি অ্যাক্সেস করুন</translation>
-<translation id="1036982837258183574">পূর্ণ স্ক্রীন থেকে বেরিয়ে যেতে |<ph name="ACCELERATOR" />| চাপুন</translation>
+<translation id="1036982837258183574">পূর্ণ স্ক্রিন থেকে বেরিয়ে যেতে |<ph name="ACCELERATOR" />| চাপুন</translation>
<translation id="1038168778161626396">কেবলমাত্র চিহ্ন প্রদান</translation>
<translation id="1039337018183941703">অবৈধ বা দূষিত ফাইল</translation>
<translation id="1042174272890264476">আপনার কম্পিউটারও <ph name="SHORT_PRODUCT_NAME" /> এর RLZ লাইব্রেরি বিল্ট ইনের সাথে আসে৷ RLZ অনুসন্ধানগুলি পরিমাপ করার জন্য একটি সাধারণ, ব্যক্তিগতভাবে সনাক্তকরণযোগ্য নয় এমন ট্যাগ নির্ধারণ করে এবং <ph name="SHORT_PRODUCT_NAME" /> এর ব্যবহার একটি নির্দিষ্ট প্রচারাভিযানের মাধ্যমে চালিত হয়৷ এই লেবেলগুলি কখনো কখনো <ph name="PRODUCT_NAME" /> এ Google অনুসন্ধান ক্যোয়ারিগুলিতে প্রদর্শিত হয়৷</translation>
@@ -341,7 +341,7 @@
<translation id="1508491105858779599">ডিভাইসটি আনলক করতে আঙ্গুলের ছাপ নেওয়ার সেন্সরে আপনার আঙ্গুল রাখুন।</translation>
<translation id="1509281256533087115">USB এর মাধ্যমে যেকোনো <ph name="DEVICE_NAME_AND_VENDOR" /> অ্যাক্সেস করুন</translation>
<translation id="150962533380566081">অবৈধ PUK।</translation>
-<translation id="1510030919967934016">এই পৃষ্ঠাটি আপনার অবস্থান নির্ণয় করা থেকে অবরুদ্ধ করা আছে৷</translation>
+<translation id="1510030919967934016">এই পৃষ্ঠাটি আপনার লোকেশন নির্ণয় করা থেকে অবরুদ্ধ করা আছে৷</translation>
<translation id="1510200760579344855"><ph name="SAML_DOMAIN" /> এর প্রশাসক এই ডিভাইসটি লক করেছিল৷</translation>
<translation id="1510238584712386396">লঞ্চার</translation>
<translation id="1510785804673676069">যদি আপনি একটি প্রক্সি সার্ভার ব্যবহার করেন, তাহলে আপনার প্রক্সি সেটিংস পরীক্ষা করুন
@@ -577,7 +577,7 @@
<translation id="1851361118452499663">আমার ফটোগুলি</translation>
<translation id="1852799913675865625"><ph name="ERROR_TEXT" /> ফাইলটি পড়ার চেষ্টা করার সময় একটি ত্রুটি ঘটেছিল৷</translation>
<translation id="1853692000353488670">নতুন ছদ্মবেশী ট্যাব</translation>
-<translation id="1856715684130786728">অবস্থান যোগ করুন...</translation>
+<translation id="1856715684130786728">লোকেশন যোগ করুন...</translation>
<translation id="1856813161013948396">আঙ্গুলের ছাপ নেওয়ার সেন্সরে ট্যাপ করে লক স্ক্রিন এড়িয়ে যান। কনফিগার করতে ক্লিক করুন।</translation>
<translation id="1858585891038687145">সফ্টওয়্যার প্রস্তুতকারকদের শনাক্তকরণের জন্য এই শংসাপত্রটিকে বিশ্বাস করুন</translation>
<translation id="1861262398884155592">ফোল্ডারটি খালি</translation>
@@ -972,7 +972,7 @@
<translation id="2501278716633472235">ফিরে যান</translation>
<translation id="2501797496290880632">একটি শর্টকাট লিখুন</translation>
<translation id="2502441965851148920">স্বয়ংক্রিয় আপডেট সক্ষম রয়েছে। আপনার প্রশাসক দ্বারা ম্যানুয়াল আপডেট অক্ষম করা হয়েছে।</translation>
-<translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{স্ক্রীন #}one{স্ক্রীন #}other{স্ক্রীন #}}</translation>
+<translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{স্ক্রিন #}one{স্ক্রিন #}other{স্ক্রিন #}}</translation>
<translation id="2505402373176859469"><ph name="TOTAL_SIZE" />-এর <ph name="RECEIVED_AMOUNT" /></translation>
<translation id="2508428939232952663">Google Play স্টোর অ্যাকাউন্ট</translation>
<translation id="2509495747794740764">স্কেলের মাপকে অবশ্যই ১০ থেকে ১০০ এর মধ্যের একটি সংখ্যা হতে হবে।</translation>
@@ -1339,7 +1339,7 @@
<translation id="3015639418649705390">এখনই রিলঞ্চ করুন</translation>
<translation id="3015992588037997514">এই কোডটি কি আপনার Chromebox এর স্ক্রীনে প্রদর্শিত হয়?</translation>
<translation id="3016641847947582299">কম্পোনেন্ট আপডেট করা আছে</translation>
-<translation id="3016780570757425217">আপনার অবস্থান জানুন</translation>
+<translation id="3016780570757425217">আপনার লোকেশন জানুন</translation>
<translation id="302014277942214887">অ্যাপ্লিকেশান ID বা ওয়েব দোকানের URL লিখুন৷</translation>
<translation id="3020990233660977256">ক্রমিক সংখ্যা: <ph name="SERIAL_NUMBER" /></translation>
<translation id="3021678814754966447">ফ্রেম উৎস &amp;দেখুন</translation>
@@ -1505,7 +1505,7 @@
<translation id="327444463633065042">মেশিনের অবৈধ নাম</translation>
<translation id="3274763671541996799">আপনি পূর্ণ পর্দায় দেথতে শুরু করেছেন৷</translation>
<translation id="3275778913554317645">উইন্ডো হিসাবে খুলুন</translation>
-<translation id="3279741024917655738">এতে সম্পূর্ণ স্ক্রীন ভিডিও দেখুন</translation>
+<translation id="3279741024917655738">এতে সম্পূর্ণ স্ক্রিন ভিডিও দেখুন</translation>
<translation id="3280237271814976245">এই &amp;রূপে সেভ করুন...</translation>
<translation id="3280243678470289153">Chrome থেকে যান</translation>
<translation id="3280431534455935878">প্রস্তুতি</translation>
@@ -1635,7 +1635,7 @@
<translation id="3468522857997926824"><ph name="BEGIN_LINK" />Google ড্রাইভ<ph name="END_LINK" /> এ <ph name="FILE_COUNT" />টি ফটো ব্যাকআপ নেওয়া হয়েছে</translation>
<translation id="3470442499439619530">এই ব্যবহারকারীকে সরান</translation>
<translation id="3470502288861289375">অনুলিপি করা হচ্ছে...</translation>
-<translation id="3473479545200714844">স্ক্রীন ম্যাগনিফায়ার</translation>
+<translation id="3473479545200714844">স্ক্রিন ম্যাগনিফায়ার</translation>
<translation id="3475447146579922140">Google স্প্রেডশীট</translation>
<translation id="3475538074809281797">{LINE_COUNT,plural, =1{&lt;১টি লাইন দেখানো হয়নি&gt;}one{&lt;$1টি লাইন দেখানো হয়নি&gt;}other{&lt;$1টি লাইন দেখানো হয়নি&gt;}}</translation>
<translation id="3475843873335999118">দুঃখিত, আপনার আঙ্গুলের ছাপ এখনো শনাক্ত করা যায়নি। অনুগ্রহ করে আপনার পাসওয়ার্ড লিখুন।</translation>
@@ -1673,7 +1673,7 @@
<translation id="3523642406908660543">আপনার কম্পিউটার অ্যাক্সেস করার জন্য যখন কোনো সাইট কোনো প্ল্যাগ ইন ব্যবহার করতে চায় তখন জিজ্ঞাসা করবে (প্রস্তাবিত)</translation>
<translation id="3527085408025491307">ফোল্ডার</translation>
<translation id="3527276236624876118"><ph name="USER_DISPLAY_NAME" />নামের একটি তত্ত্বাবধান করা ব্যবহারকারী তৈরি করা হয়েছে৷</translation>
-<translation id="3528033729920178817">এই পৃষ্ঠাটি আপনার অবস্থান নির্ণয় করছে৷</translation>
+<translation id="3528033729920178817">এই পৃষ্ঠাটি আপনার লোকেশন নির্ণয় করছে৷</translation>
<translation id="3528498924003805721">শর্টকাট লক্ষ্যগুলি</translation>
<translation id="3530305684079447434">আপনার সব ডিভাইসে আপনার বুকমার্কগুলি পেতে, <ph name="SIGN_IN_LINK" />।</translation>
<translation id="3530751398950974194">সিঙ্ক পাসফ্রেজ আপডেট করুন</translation>
@@ -1847,7 +1847,7 @@
<translation id="3783640748446814672">alt</translation>
<translation id="3785308913036335955">অ্যাপ্লিকেশানগুলির শর্টকাট দেখান</translation>
<translation id="3785727820640310185">এই সাইটের জন্য সেভ করা পাসওয়ার্ড</translation>
-<translation id="3785852283863272759">ইমেল পৃষ্ঠার অবস্থান</translation>
+<translation id="3785852283863272759">ইমেল পৃষ্ঠার লোকেশন</translation>
<translation id="3786301125658655746">আপনি অফলাইন আছেন</translation>
<translation id="3788401245189148511">এটা হতে পারে:</translation>
<translation id="3789841737615482174">ইনস্টল করুন</translation>
@@ -1872,7 +1872,7 @@
<translation id="3817579325494460411">উল্লেখ নেই</translation>
<translation id="3819007103695653773">পটভূমি পুশ বার্তা পাঠাতে সমস্ত সাইটকে অনুমতি দিন</translation>
<translation id="3819752733757735746">অ্যাক্সেস সুইচ করুন (মাত্র এক বা দুই সুইচের মাধ্যমে কম্পিউটার নিয়ন্ত্রণ করুন)</translation>
-<translation id="3819800052061700452">&amp;পূর্ণ-স্ক্রীন</translation>
+<translation id="3819800052061700452">&amp;পূর্ণ-স্ক্রিন</translation>
<translation id="3820172043799983114">অবৈধ পিন।</translation>
<translation id="3820749202859700794">SECG এলিপ্টিক কার্ভ secp521r1 (ওরফে NIST P-521)</translation>
<translation id="3822559385185038546">এই প্রক্সী আপনার প্রশাসক দ্বারা কার্যকরী করা হয়েছে</translation>
@@ -2026,7 +2026,7 @@
<translation id="406070391919917862">পৃষ্ঠভূমি অ্যাপ্লিকেশান</translation>
<translation id="4063283930106169759">আপনার ফোন কাছাকাছি সেটি নিশ্চিত করুন। আপনার ফোন খুঁজতে সব ডিভাইসে যেখানে আপনার অ্যাকাউন্ট আছে সেখানে ব্লুটুথ চালু করুন। &lt;a&gt;আরও জানুন/a&gt;</translation>
<translation id="4065876735068446555">আপনি যে নেটওয়ার্কটি <ph name="NETWORK_ID" /> ব্যবহার করছেন সেটির জন্য অপনাকে এটির লগ ইন পৃষ্ঠাতে যেতে হতে পরে৷</translation>
-<translation id="4068506536726151626">এই পৃষ্ঠাতে নিম্নলিখিত সাইটগুলি থেকে এমন উপাদান রয়েছে যা আপনার অবস্থান নির্ধারণ করে:</translation>
+<translation id="4068506536726151626">এই পৃষ্ঠাতে নিম্নলিখিত সাইটগুলি থেকে এমন উপাদান রয়েছে যা আপনার লোকেশন নির্ধারণ করে:</translation>
<translation id="4068776064906523561">সংরক্ষিত আঙ্গুলের ছাপগুলি</translation>
<translation id="4071770069230198275"><ph name="PROFILE_NAME" />: প্রবেশ করায় ত্রুটি</translation>
<translation id="4074900173531346617">ইমেল স্বাক্ষরকারীর শংসাপত্র</translation>
@@ -2114,7 +2114,7 @@
<translation id="42137655013211669">এই সম্পদে অ্যাক্সেস করা সার্ভার দ্বারা নিষিদ্ধ ছিল।</translation>
<translation id="4215350869199060536">উপস, নামে অবৈধ চিহ্ন রয়েছে!</translation>
<translation id="4215448920900139318"><ph name="FILE_COUNT" />টির ব্যাক আপ নেওয়া হচ্ছে</translation>
-<translation id="4235200303672858594">সম্পূর্ণ স্ক্রীন</translation>
+<translation id="4235200303672858594">সম্পূর্ণ স্ক্রিন</translation>
<translation id="4235813040357936597"><ph name="PROFILE_NAME" /> এর জন্য অ্যাকাউন্ট যোগ করুন</translation>
<translation id="4235965441080806197">সাইন ইন বাতিল করুন</translation>
<translation id="4239107879884489787">সমস্যা: Termina কম্পোনেন্ট লোড করা যায়নি।</translation>
@@ -2201,7 +2201,7 @@
<translation id="4384312707950789900">পছন্দের তালিকায় জুড়ুন</translation>
<translation id="4384652540891215547">এক্সটেনশন সক্রিয় করুন</translation>
<translation id="438503109373656455">সারাটোগা</translation>
-<translation id="4387004326333427325">দূরবর্তী অবস্থান থেকে প্রমাণীকরণ শংসাপত্র প্রত্যাখ্যান করা হয়েছে</translation>
+<translation id="4387004326333427325">দূরবর্তী লোকেশন থেকে প্রমাণীকরণ শংসাপত্র প্রত্যাখ্যান করা হয়েছে</translation>
<translation id="4389091756366370506">ব্যবহারকারী<ph name="VALUE" /></translation>
<translation id="4394049700291259645">অক্ষম</translation>
<translation id="4400367121200150367">যে সাইটগুলি কখনও পাসওয়ার্ড সংরক্ষণ করে না সেগুলি এখানে দেখা যাবে</translation>
@@ -2387,7 +2387,7 @@
<translation id="4707302005824653064">chrome.com এ পরিচালক (<ph name="CUSTODIAN_EMAIL" />) ব্যবহার এবং ইতিহাস পর্যালোচনা করতে পারেন৷</translation>
<translation id="4707579418881001319">L2TP/IPসেকে + ব্যবহারকারীর শংসাপত্র</translation>
<translation id="4707934200082538898">দয়া করে আরও নির্দেশাবলীর জন্য <ph name="BEGIN_BOLD" /> <ph name="MANAGER_EMAIL" /> <ph name="END_BOLD" /> এ আপনার ইমেল পরীক্ষা করুন৷</translation>
-<translation id="4708794300267213770">নিদ্রা মোড থেকে জাগার সময় লক স্ক্রীন দেখান</translation>
+<translation id="4708794300267213770">নিদ্রা মোড থেকে জাগার সময় লক স্ক্রিন দেখান</translation>
<translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> থেকে প্রস্থান করুন</translation>
<translation id="4711638718396952945">সেটিংস পুনরুদ্ধার করুন</translation>
<translation id="4713544552769165154">Macintosh সফ্টওয়্যার ব্যবহার করে এমন একটি কম্পিউটারের জন্য এই ফাইলটি ডিজাইন করা হয়েছে৷ Chrome OS দ্বারা চালিত আপনার ডিভাইসটির সাথে এটি সামঞ্জস্যপূর্ণ নয়৷ একটি উপযুক্ত প্রতিস্থাপনযোগ্য অ্যাপ্লিকেশানের জন্য দয়া করে <ph name="BEGIN_LINK" />Chrome ওয়েব স্টোর<ph name="END_LINK" /> এ অনুসন্ধান করুন৷<ph name="BEGIN_LINK_HELP" />আরো জানুন<ph name="END_LINK_HELP" /></translation>
@@ -2535,7 +2535,7 @@
<translation id="4917385247580444890">জোরালো</translation>
<translation id="4918021164741308375">"<ph name="EXTENSION_NAME" />" এক্সটেনশন দ্বারা <ph name="ORIGIN" /> যোগাযোগ করতে চায়</translation>
<translation id="4918086044614829423">স্বীকার</translation>
-<translation id="4920887663447894854">এই পৃষ্ঠাতে আপনার অবস্থান নির্ধারণ করার জন্য নিম্নলিখিত সাইটগুলি অবরুদ্ধ করা হয়েছে:</translation>
+<translation id="4920887663447894854">এই পৃষ্ঠাতে আপনার লোকেশন নির্ধারণ করার জন্য নিম্নলিখিত সাইটগুলি অবরুদ্ধ করা হয়েছে:</translation>
<translation id="492299503953721473">Android অ্যাপ্লিকেশানগুলি সরান</translation>
<translation id="4923279099980110923">হ্যাঁ, আমি সাহায্য করতে চাই</translation>
<translation id="4924352752174756392">১২x</translation>
@@ -2574,7 +2574,7 @@
<translation id="4974733135013075877">প্রস্থান এবং চাইল্ডলক করুন</translation>
<translation id="4977942889532008999">অ্যাক্সেস নিশ্চিত করুন</translation>
<translation id="4980805016576257426">এই এক্সটেনশানটিতে ম্যালওয়্যার আছে।</translation>
-<translation id="498294082491145744">কুকিজ, JavaScript, প্লাগ ইন, ভূ-অবস্থান, মাইক্রোফোন, ক্যামেরা ইত্যাদির মতো বৈশিষ্ট্যগুলিতে ওয়েবসাইটগুলির অ্যাক্সেস নিয়ন্ত্রণ করে, আপনার সেই সেটিংস পরিবর্তন করুন।</translation>
+<translation id="498294082491145744">কুকিজ, JavaScript, প্লাগ ইন, ভূ-লোকেশন, মাইক্রোফোন, ক্যামেরা ইত্যাদির মতো বৈশিষ্ট্যগুলিতে ওয়েবসাইটগুলির অ্যাক্সেস নিয়ন্ত্রণ করে, আপনার সেই সেটিংস পরিবর্তন করুন।</translation>
<translation id="4988526792673242964">পৃষ্ঠাসমূহ</translation>
<translation id="49896407730300355">ঘড়ির কাঁটার &amp;বিপরীত দিকে ঘোরান</translation>
<translation id="4989966318180235467">&amp;পশ্চাদপট পৃষ্ঠা পরিদর্শন করুন</translation>
@@ -2698,7 +2698,7 @@
<translation id="5184063094292164363">&amp;JavaScript কনসোল</translation>
<translation id="5184662919967270437">আপনার ডিভাইস আপডেট করা হচ্ছে</translation>
<translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />"-এর নতুনতম সংস্করনটি অক্ষম হয়েছে কারণ এটির আরও বেশি অনুমতির প্রয়োজন৷</translation>
-<translation id="5186650237607254032">আপনার ফোনের স্ক্রীন লক আপডেট করুন, যাতে করে আপনি যখন কাছাকাছি থাকবেন তখন এটি বন্ধ হয়৷ আপনি দ্রুত ফোনটি আনলক করবেন, এবং আপনার <ph name="DEVICE_TYPE" /> এ আরও ভালো Smart Lock-এর অভিজ্ঞতা উপভোগ করতে পারবেন৷</translation>
+<translation id="5186650237607254032">আপনার ফোনের স্ক্রিন লক আপডেট করুন, যাতে করে আপনি যখন কাছাকাছি থাকবেন তখন এটি বন্ধ হয়৷ আপনি দ্রুত ফোনটি আনলক করবেন, এবং আপনার <ph name="DEVICE_TYPE" /> এ আরও ভালো Smart Lock-এর অভিজ্ঞতা উপভোগ করতে পারবেন৷</translation>
<translation id="5187295959347858724">আপনি এখন <ph name="SHORT_PRODUCT_NAME" />এ প্রবেশ করেছেন৷ আপনার বুকমার্ক, ইতিহাস এবং অন্য সেটিংস আপনার Google অ্যাকাউন্টে সমন্বিত করা হচ্ছে৷</translation>
<translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
<translation id="5204967432542742771">পাসওয়ার্ড প্রবেশ করান</translation>
@@ -2731,7 +2731,7 @@
<translation id="5244474230056479698"><ph name="EMAIL" /> এ সিঙ্ক হচ্ছে</translation>
<translation id="5246282308050205996"><ph name="APP_NAME" /> ক্র্যাশ করেছে৷ অ্যাপ পুনঃসূচনা করতে এই বেলুনটি ক্লিক করুন৷</translation>
<translation id="5249624017678798539">ব্রাউজারটি ডাউনলোড সম্পন্ন হওয়ার পূর্বে ক্র্যাশ করেছে৷</translation>
-<translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> আপনাকে স্থানীয় কন্টেন্ট দেওয়ার জন্য আপনার অবস্থান ব্যবহার করে। আপনি <ph name="SETTINGS_LINK" /> থেকে এটি পরিবর্তন করতে পারেন।</translation>
+<translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> আপনাকে স্থানীয় কন্টেন্ট দেওয়ার জন্য আপনার লোকেশন ব্যবহার করে। আপনি <ph name="SETTINGS_LINK" /> থেকে এটি পরিবর্তন করতে পারেন।</translation>
<translation id="5252456968953390977">রোমিং</translation>
<translation id="5252653240322147470">পিন অবশ্যই <ph name="MAXIMUM" /> সংখ্যার চেয়ে ছোট হতে হবে</translation>
<translation id="5253070652067921974">তৈরি করেছেন</translation>
@@ -2787,7 +2787,7 @@
<translation id="5319566035256672173">এই ডিভাইসে আর লেটেস্ট সফ্টওয়্যার আপডেট করা যাবে না। অনুগ্রহ করে আপগ্রেড করার বিষয়ে ভেবে দেখুন।</translation>
<translation id="532247166573571973">সার্ভারে সংযোগ নাও হতে পারে। পরে আবার চেষ্টা করুন।</translation>
<translation id="532360961509278431">"$1": $2 খুলতে অক্ষম</translation>
-<translation id="5324780743567488672">আপনার অবস্থান ব্যবহার করে স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন</translation>
+<translation id="5324780743567488672">আপনার লোকেশন ব্যবহার করে স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন</translation>
<translation id="5327248766486351172">নাম</translation>
<translation id="532776649628038357">আমি রাজি</translation>
<translation id="532943162177641444">এই ডিভাইসে ব্যবহার করার জন্য মোবাইল হটস্পট সেট আপ করতে আপনার <ph name="PHONE_NAME" /> এ বিজ্ঞপ্তিটির উপরে ক্লিক করুন।</translation>
@@ -2902,7 +2902,7 @@
<translation id="5485102783864353244">অ্যাপ্লিকেশান যোগ করুন</translation>
<translation id="5485754497697573575">সকল ট্যাব পুনরুদ্ধার করুন</translation>
<translation id="5486261815000869482">পাসওয়ার্ড নিশ্চিত করুন</translation>
-<translation id="5486275809415469523"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রীন ভাগ করছে৷</translation>
+<translation id="5486275809415469523"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রিন ভাগ করছে৷</translation>
<translation id="5486561344817861625">ব্রাউজার আরম্ভ অনুকরণ করুন</translation>
<translation id="5487521232677179737">ডেটা সাফ করুন</translation>
<translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' কপি করা হয়েছে</translation>
@@ -3127,7 +3127,7 @@
<translation id="5827266244928330802">Safari</translation>
<translation id="5828633471261496623">মুদ্রন হচ্ছে...</translation>
<translation id="5829401023154985950">পরিচালনা...</translation>
-<translation id="5830410401012830739">অবস্থান সেটিংস পরিচালনা করুন...</translation>
+<translation id="5830410401012830739">লোকেশন সেটিংস পরিচালনা করুন...</translation>
<translation id="5830720307094128296">&amp;পৃষ্ঠা সেভ করুন...</translation>
<translation id="5832805196449965646">একজন ব্যক্তিকে যোগ করুন</translation>
<translation id="583281660410589416">অজানা</translation>
@@ -3260,7 +3260,7 @@
<translation id="604001903249547235">ক্লাউড ব্যাকআপ</translation>
<translation id="6040143037577758943">বন্ধ</translation>
<translation id="6040852767465482106">নামহীন পরিচয়</translation>
-<translation id="6041155700700864984">সম্পূর্ণ স্ক্রীন থেকে বেরিয়ে আসুন</translation>
+<translation id="6041155700700864984">সম্পূর্ণ স্ক্রিন থেকে বেরিয়ে আসুন</translation>
<translation id="604124094241169006">স্বয়ংক্রিয়</translation>
<translation id="6042169520002885235">প্রিন্টার প্রস্তুতকারক এবং মডেল বেছে নিন</translation>
<translation id="6042308850641462728">আরও</translation>
@@ -3276,7 +3276,7 @@
<translation id="6056710589053485679">সাধারণ পুনঃলোড</translation>
<translation id="6059652578941944813">শংসাপত্র শ্রেণীক্রম</translation>
<translation id="6059925163896151826">USB ডিভাইসগুলি</translation>
-<translation id="6064217302520318294">স্ক্রীন লক</translation>
+<translation id="6064217302520318294">স্ক্রিন লক</translation>
<translation id="6065289257230303064">শংসাপত্র বিষয় নির্দেশিকা গুণাবলী</translation>
<translation id="6068338049763724728">দূর থেকে যোগ করা সক্ষম করুন</translation>
<translation id="6071181508177083058">পাসওয়ার্ড নিশ্চিত করুন</translation>
@@ -3356,7 +3356,7 @@
<translation id="6175314957787328458">Microsoft Domain GUID</translation>
<translation id="6178664161104547336">একটি শংসাপত্র বেছে নিন</translation>
<translation id="6181431612547969857">ডাউনলোড অবরুদ্ধ রয়েছে</translation>
-<translation id="6185132558746749656">ডিভাইসের অবস্থান</translation>
+<translation id="6185132558746749656">ডিভাইসের লোকেশন</translation>
<translation id="6185696379715117369">পৃষ্ঠায় উপরের দিকে যান</translation>
<translation id="6189273858858366896">নেটওয়ার্ক ফাইল শেয়ার সেট-আপ বা পরিচালনা করুন।</translation>
<translation id="6189412234224385711"><ph name="EXTENSION_NAME" /> এর মাধ্যমে খুলুন</translation>
@@ -3386,7 +3386,7 @@
<translation id="6231881193380278751">পৃষ্ঠাটি অটো-রিফ্রেশ করতে URL এ কোনো ক্যোয়ারী পারাম যোগ করুন: chrome://device-log/?refresh=&lt;sec&gt;</translation>
<translation id="6232017090690406397">ব্যাটারি: %</translation>
<translation id="6232116551750539448"><ph name="NAME" /> এর সাথে সংযোগ বিচ্ছিন্ন হয়েছে</translation>
-<translation id="6237816943013845465">আপনাকে আপনার স্ক্রীন রেজোলিউশন পরিবর্তন করতে অনুমতি দেয়</translation>
+<translation id="6237816943013845465">আপনাকে আপনার স্ক্রিন রেজোলিউশন পরিবর্তন করতে অনুমতি দেয়</translation>
<translation id="6238923052227198598">লেটেস্ট নোটটি লক স্ক্রিনে রাখুন</translation>
<translation id="6239558157302047471">আবার লোড করার &amp;ফ্রেম</translation>
<translation id="6241530762627360640">আপনার সিস্টেমের সঙ্গে যুক্ত করা ব্লুটুথ ডিভাইসগুলির সম্পর্কে তথ্য অ্যাক্সেস করুন এবং কাছাকাছি ব্লুটুথ ডিভাইসগুলি খুঁজুন।</translation>
@@ -3456,7 +3456,7 @@
<translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> এর জন্য একটি নতুন প্রোফাইল তৈরি করুন</translation>
<translation id="6340017061976355871">সার্ভারে সংযোগ করা যায়নি। অনুগ্রহ করে আপনার নেটওয়ার্ক সংযোগ যাচাই করে আবার চেষ্টা করুন। যদি সমস্যাটি চলতে থাকে তাহলে আপনার Chromebook রিস্টার্ট করুন।</translation>
<translation id="6340071272923955280">ইন্টারনেট প্রিন্ট প্রোটোকল (IPPS)</translation>
-<translation id="6341850831632289108">আপনার শারীরিক অবস্থান শনাক্ত করুন</translation>
+<translation id="6341850831632289108">আপনার শারীরিক লোকেশন শনাক্ত করুন</translation>
<translation id="634208815998129842">কার্য পরিচালক</translation>
<translation id="6344170822609224263">নেটওয়ার্ক সংযোগের তালিকা অ্যাক্সেস করে</translation>
<translation id="6346310558342052870">সীমাবদ্ধ অ্যাক্সেস</translation>
@@ -3571,7 +3571,7 @@
<translation id="6514010653036109809">উপলব্ধ ডিভাইস:</translation>
<translation id="6514565641373682518">এই পৃষ্ঠাটি আপনার মাউস কার্সরকে অক্ষম করেছে৷</translation>
<translation id="6518014396551869914">ছবি ক&amp;পি করুন</translation>
-<translation id="651942933739530207">আপনার স্ক্রীন এবং অডিও আউটপুট শেয়ার করতে আপনি কি <ph name="APP_NAME" /> চান?</translation>
+<translation id="651942933739530207">আপনার স্ক্রিন এবং অডিও আউটপুট শেয়ার করতে আপনি কি <ph name="APP_NAME" /> চান?</translation>
<translation id="6519437681804756269">[<ph name="TIMESTAMP" />]
<ph name="FILE_INFO" />
<ph name="EVENT_NAME" /></translation>
@@ -3745,7 +3745,7 @@
<translation id="6787839852456839824">কীবোর্ড শর্টকাটগুলি</translation>
<translation id="6788210894632713004">এক্সটেনশান প্যাকমুক্ত করুন</translation>
<translation id="6790428901817661496">চালু করুন</translation>
-<translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> কে দূরবর্তী অবস্থান থেকে যোগ করা হয়েছিল</translation>
+<translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> কে দূরবর্তী লোকেশন থেকে যোগ করা হয়েছিল</translation>
<translation id="6790820461102226165">ব্যক্তিকে যোগ করুন...</translation>
<translation id="6792072150955115067"><ph name="APP_NAME" /> আপনার স্ক্রীনের সামগ্রী <ph name="TARGET_NAME" /> এর সঙ্গে শেয়ার করতে চায়। আপনি কী শেয়ার করতে চান তা বেছে নিন।</translation>
<translation id="6793604637258913070">পাঠ্য লেখার সূচিত চিহ্নটি যখন নড়াচড়া করে বা প্রদর্শিত হয় তখন একে হাইলাইট করুন</translation>
@@ -3845,7 +3845,7 @@
<translation id="6965382102122355670">ঠিক আছে</translation>
<translation id="6965648386495488594">পোর্ট</translation>
<translation id="6965978654500191972">ডিভাইস</translation>
-<translation id="6968288415730398122">স্ক্রীন লক কনফিগার করতে আপনার পাসওয়ার্ড লিখুন</translation>
+<translation id="6968288415730398122">স্ক্রিন লক কনফিগার করতে আপনার পাসওয়ার্ড লিখুন</translation>
<translation id="6970480684834282392">প্রারম্ভিক প্রকার</translation>
<translation id="6970856801391541997">প্রিন্ট নির্দিষ্ট পৃষ্ঠাসমূহ</translation>
<translation id="6972180789171089114">অডিও/ভিডিও</translation>
@@ -4019,7 +4019,7 @@
<translation id="7222373446505536781">F11</translation>
<translation id="7223775956298141902">উু... আপনার কাছে কোনো এক্সটেনশান নেই :-(</translation>
<translation id="7225179976675429563">নেটওয়ার্কের প্রকার হারিয়ে গেছে</translation>
-<translation id="7228479291753472782">ভৌগোলিক অবস্থান, মাইক্রোফোন, ক্যামেরা, ইত্যাদির মতো বৈশিষ্ট্যগুলিকে ওয়েবসাইটগুলি ব্যবহার করতে পারবে কিনা তা নির্দিষ্ট করতে সেটিংস নিয়ন্ত্রণ করে।</translation>
+<translation id="7228479291753472782">ভৌগোলিক লোকেশন, মাইক্রোফোন, ক্যামেরা, ইত্যাদির মতো বৈশিষ্ট্যগুলিকে ওয়েবসাইটগুলি ব্যবহার করতে পারবে কিনা তা নির্দিষ্ট করতে সেটিংস নিয়ন্ত্রণ করে।</translation>
<translation id="7228523857728654909">স্ক্রিন লক এবং সাইন-ইন</translation>
<translation id="7229570126336867161">EVDO এর প্রয়োজন</translation>
<translation id="7230787553283372882">আপনার পাঠ্যের আকার কাস্টমাইজ করুন</translation>
@@ -4162,7 +4162,7 @@
<translation id="7453008956351770337">এই প্রিন্টারটি নির্বাচন করে, আপনি নিম্নল্লিখিত এক্সটেনশানটিকে আপনার প্রিন্টারে অ্যাক্সেস করার অনুমতি দিচ্ছেন:</translation>
<translation id="7453467225369441013">বেশিরভাগ সাইট থেকে আপনাকে সাইন-আউট করিয়ে দেয়। তবে আপনার Google অ্যাকাউন্ট থেকে আপনাকে সাইন-আউট করানো হবে না।</translation>
<translation id="7456142309650173560">dev</translation>
-<translation id="7456847797759667638">অবস্থান খুলুন...</translation>
+<translation id="7456847797759667638">লোকেশন খুলুন...</translation>
<translation id="7461924472993315131">পিন</translation>
<translation id="7463006580194749499">একজন ব্যক্তিকে যোগ করুন</translation>
<translation id="7464490149090366184">জিপ করা ব্যর্থ হয়েছে, আইটেম বিদ্যমান: "$1"</translation>
@@ -4377,7 +4377,7 @@
<ph name="EXTENSION_NAME" /></translation>
<translation id="7788383851298063850">কী ঘটছে তা আমাদের বলুন</translation>
<translation id="7788444488075094252">ভাষা এবং ইনপুট</translation>
-<translation id="7788668840732459509">অবস্থান:</translation>
+<translation id="7788668840732459509">লোকেশন:</translation>
<translation id="7791543448312431591">জুড়ুন</translation>
<translation id="7792012425874949788">প্রবেশ করার সময় কিছু সমস্যা হয়েছে</translation>
<translation id="7792388396321542707">শেয়ার করা বন্ধ করুন</translation>
@@ -4473,14 +4473,14 @@
<translation id="7925686952655276919">সিঙ্ক-এর জন্য মোবাইল ডেটা ব্যবহার করবেন না</translation>
<translation id="7926423016278357561">এটা আমি নই।</translation>
<translation id="7928710562641958568">বের করে দেওযার ডিভাইস</translation>
-<translation id="79312157130859720"><ph name="APP_NAME" /> আপনার স্ক্রীন এবং অডিও শেয়ার করছে।</translation>
+<translation id="79312157130859720"><ph name="APP_NAME" /> আপনার স্ক্রিন এবং অডিও শেয়ার করছে।</translation>
<translation id="7931318309563332511">অজানা</translation>
<translation id="7934414805353235750"><ph name="URL" /> সুরক্ষিত কন্টেন্ট চালাতে চায়। আপনার ডিভাইসের পরিচয় Google দ্বারা যাচাই করা হবে।</translation>
<translation id="7938594894617528435">বর্তমানে অফলাইন</translation>
<translation id="7939062555109487992">অগ্রণী বিকল্পসমূহ</translation>
<translation id="7939412583708276221">যে কোনও অবস্থাতেই রাখুন</translation>
<translation id="7939997691108949385">পরিচালক <ph name="MANAGEMENT_URL" /> এ এই তত্ত্বাবধানে থাকা ব্যবহারকারীর জন্য বিধিনিষেধ এবং সেটিংস কনফিগার করতে সক্ষম হবেন৷</translation>
-<translation id="7943837619101191061">অবস্থান যোগ করুন...</translation>
+<translation id="7943837619101191061">লোকেশন যোগ করুন...</translation>
<translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" এদের সাথে সংযোগ স্থাপন করতে চায়</translation>
<translation id="794676567536738329">অনুমতিগুলি নিশ্চিত করুন</translation>
<translation id="7947962633355574091">ভি&amp;ডিও ঠিকানা কপি করুন</translation>
@@ -4691,7 +4691,7 @@
<translation id="825483282309623688">আপনার ডেটা পুনরুদ্ধার করতে, আপনার একটি ইন্টারনেট সংযোগ প্রয়োজন।</translation>
<translation id="8256319818471787266">স্পার্কি</translation>
<translation id="8257950718085972371">ক্যামেরা অ্যাক্সেস অবরোধ করা অবিরত রাখুন</translation>
-<translation id="8259239505248583312">চলুন যাই</translation>
+<translation id="8259239505248583312">শুরু করা যাক</translation>
<translation id="8260126382462817229">আবার সাইন ইন করার চেষ্টা করুন</translation>
<translation id="8260864402787962391">মাউস</translation>
<translation id="8261378640211443080">এই এক্সটেনশানটি <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাভুক্ত নেই এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
@@ -4725,7 +4725,7 @@
<translation id="8312871300878166382">ফোল্ডারের মধ্যে আটকে দিন</translation>
<translation id="8317671367883557781">নেটওয়ার্ক সংযোগ যোগ করুন</translation>
<translation id="8319414634934645341">প্রসারিত কী ব্যবহার</translation>
-<translation id="8320459152843401447">আপনার সম্পূর্ণ স্ক্রীন</translation>
+<translation id="8320459152843401447">আপনার সম্পূর্ণ স্ক্রিন</translation>
<translation id="8322814362483282060">এই পৃষ্ঠাটিকে আপনার মাইক্রোফোন অ্যাক্সেস করা থেকে অবরুদ্ধ করা হয়েছে৷</translation>
<translation id="8326478304147373412">PKCS #7, শংসাপত্র শৃঙ্খল</translation>
<translation id="8329978297633540474">সাধারণ পাঠ</translation>
@@ -4920,7 +4920,7 @@
<translation id="8655972064210167941">আপনার পাসওয়ার্ড যাচাই করতে না পারায় প্রবেশ করুন ব্যর্থ হয়েছে। দয়া করে আপনার প্রশাসকের সাথে যোগাযোগ করুন অথবা আবার চেষ্টা করুন।</translation>
<translation id="8656768832129462377">চেক করবেন না</translation>
<translation id="8658595122208653918">প্রিন্টের বিকল্পগুলি পরিবর্তন করুন...</translation>
-<translation id="8658645149275195032"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রীন এবং অডিও শেয়ার করছে।</translation>
+<translation id="8658645149275195032"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রিন এবং অডিও শেয়ার করছে।</translation>
<translation id="8659875081143553823">একটু অপেক্ষা করুন</translation>
<translation id="8661290697478713397">লিঙ্কটি ছ&amp;দ্মবেশী উইন্ডোতে খুলুন</translation>
<translation id="8662671328352114214"><ph name="TYPE" /> নেটওয়ার্কে সংযুক্ত হন</translation>
@@ -4998,7 +4998,7 @@
&lt;p&gt;কিন্তু আপনি এখনও কম্যান্ড লাইনের মাধ্যমে কনফিগার করতে পারেন৷ ফ্ল্যাগ ও বিভিন্ন পরিবেশের উপর আরও তথ্যের জন্য দয়া করে &lt;code&gt;ম্যানুয়াল <ph name="PRODUCT_BINARY_NAME" />&lt;/code&gt; দেখুন৷&lt;/p&gt;</translation>
<translation id="8755376271068075440">&amp;বৃহত্তর</translation>
-<translation id="8757090071857742562">ডেস্কটপ কাস্ট করতে ব্যর্থ হয়েছে। আপনি আপনার স্ক্রীন শেয়ার করা শুরু করার জন্য প্রম্পটটি নিশ্চিত করেছেন কিনা তা দেখুন।</translation>
+<translation id="8757090071857742562">ডেস্কটপ কাস্ট করতে ব্যর্থ হয়েছে। আপনি আপনার স্ক্রিন শেয়ার করা শুরু করার জন্য প্রম্পটটি নিশ্চিত করেছেন কিনা তা দেখুন।</translation>
<translation id="8757640015637159332">সর্বজনীন সেশন প্রবশ করুন</translation>
<translation id="8757742102600829832">সংযোগ করার জন্য কোনো Chromebox বেছে নিন</translation>
<translation id="8757803915342932642">Google ক্লাউড ডিভাইসগুলিতে ডিভাইস</translation>
@@ -5088,7 +5088,7 @@
<translation id="8908902564709148335">সতর্কতা: আপনি এই কম্পিউটারে --স্ক্রিপ্টের-প্রয়োজনীয়-অ্যাকশন ফ্ল্যাগ সক্ষম করেছেন, যা এই এক্সটেনশানটির কার্যক্ষমতাকে সীমিত করে৷ যদিও, অন্য ডিভাইসগুলি এই পতাকা সমর্থন নাও করতে পারে বা এটি হয়ত সক্ষম করা নাও থাকতে পারে৷ এছাড়াও সেই ডিভাইসগুলিতে, এই এক্সটেনশানটি এগুলি করতে পারে:</translation>
<translation id="8909233240676134608">ডোমেনে মেশিনটি যোগ করা যাবে না। সার্ভারটি নির্দিষ্ট Kerberos এনক্রিপশন ধরন সমর্থন করে না। এনক্রিপশন সেটিংসগুলির জন্য "আরও বিকল্প" দেখুন।</translation>
<translation id="8909833622202089127">সাইটটি আপনার লোকেশন ট্র্যাক করছে</translation>
-<translation id="8910146161325739742">আপনার স্ক্রীন শেয়ার করুন</translation>
+<translation id="8910146161325739742">আপনার স্ক্রিন শেয়ার করুন</translation>
<translation id="8910222113987937043">আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসের পরিবর্তনগুলি এখন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। তবে, আপনার বিদ্যমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে এবং <ph name="BEGIN_LINK" />Google ড্যাশবোর্ড<ph name="END_LINK" /> থেকে পরিচালনা করা যাবে।</translation>
<translation id="8912793549644936705">বিস্তার</translation>
<translation id="8915370057835397490">লোড করার প্রস্তাব</translation>
@@ -5159,7 +5159,7 @@
<translation id="9022847679183471841">এই অ্যাকাউন্টটি ইতোমধ্যে এই কম্পিউটারে <ph name="AVATAR_NAME" /> দ্বারা ব্যবহৃত হচ্ছে।</translation>
<translation id="9023009238991294202">এই ডিভাইসের অন্যান্য ব্যবহারকারীরা এই নেটওয়ার্ক ব্যবহার করতে পারেন।</translation>
<translation id="9024127637873500333">&amp;নতুন ট্যাবে খুলুন</translation>
-<translation id="9024331582947483881">পূর্ণ স্ক্রীন</translation>
+<translation id="9024331582947483881">পূর্ণ স্ক্রিন</translation>
<translation id="9025098623496448965">ঠিক আছে, আমাকে সাইন-ইন স্ক্রীনে ফিরিয়ে নিয়ে চলুন</translation>
<translation id="9026731007018893674">ডাউনলোড</translation>
<translation id="9027146684281895941">এই ব্যক্তিকে তত্ত্বাবধান করুন যেন আপনার Google অ্যাকাউন্ট থেকে তার ঘুরে দেখা ওয়েবসাইগুলি নিয়ন্ত্রণ করতে এবং দেখতে পারেন</translation>
@@ -5300,7 +5300,7 @@
<translation id="942532530371314860"><ph name="APP_NAME" /> একটি Chrome ট্যাব ও অডিও শেয়ার করছে।</translation>
<translation id="942954117721265519">এই ডিরেক্টরিতে কোনো ছবি নেই৷</translation>
<translation id="943972244133411984">পরিবর্তন করেছেন</translation>
-<translation id="945522503751344254">প্রতিক্রিয়া পাঠান</translation>
+<translation id="945522503751344254">মতামত জানান</translation>
<translation id="952992212772159698">সক্রিয় নেই</translation>
<translation id="957960681186851048">এই সাইটটি নিজে থেকে একাধিক ফাইল ডাউনলোড করার চেষ্টা করেছে</translation>
<translation id="9580706199804957">Google পরিষেবাগুলির সাথে সংযুক্ত করা যায়নি</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ca.xtb b/chromium/chrome/app/resources/generated_resources_ca.xtb
index 84b645e5764..efd377b8652 100644
--- a/chromium/chrome/app/resources/generated_resources_ca.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ca.xtb
@@ -245,7 +245,7 @@
<translation id="1363028406613469049">Pista</translation>
<translation id="1367951781824006909">Trieu un fitxer</translation>
<translation id="136802136832547685">No hi ha cap usuari supervisat per afegir a aquest dispositiu.</translation>
-<translation id="1368265273904755308">Informeu d'un problema</translation>
+<translation id="1368265273904755308">Informa d'un problema</translation>
<translation id="1370646789215800222">Voleu suprimir la persona?</translation>
<translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 element que cal suprimir}other{# elements que cal suprimir}}</translation>
<translation id="1372841398847029212">Sincronitza amb el meu compte</translation>
@@ -664,7 +664,7 @@
<translation id="1997616988432401742">Els meus certificats</translation>
<translation id="1999115740519098545">A l'inici</translation>
<translation id="2006638907958895361">Obre l'enllaç a <ph name="APP" /></translation>
-<translation id="2007404777272201486">Informeu d'un problema...</translation>
+<translation id="2007404777272201486">Informa d'un problema...</translation>
<translation id="2016430552235416146">Tradicional</translation>
<translation id="2017334798163366053">Desactiva la recopilació de dades de rendiment</translation>
<translation id="2017836877785168846">Esborra l'historial i les complecions automàtiques a la barra d'adreces.</translation>
@@ -796,7 +796,7 @@
<translation id="2218320521449013367">S'ha produït un error mentre Chrome suprimia programari perjudicial</translation>
<translation id="2218515861914035131">Enganxa com a text sense format</translation>
<translation id="221872881068107022">Desplaçament invers</translation>
-<translation id="2220529011494928058">Informeu d'un problema</translation>
+<translation id="2220529011494928058">Informa d'un problema</translation>
<translation id="2220572644011485463">PIN o contrasenya</translation>
<translation id="2222641695352322289">L'única manera de desfer aquesta acció és tornar a instal·lar <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation>
<translation id="2224444042887712269">Aquesta configuració pertany a <ph name="OWNER_EMAIL" />.</translation>
@@ -4775,7 +4775,7 @@ Deseu el fitxer de clau en una ubicació segura. El necessitareu per crear versi
<translation id="8395901698320285466">Dimensions</translation>
<translation id="8396532978067103567">Contrasenya incorrecta.</translation>
<translation id="839736845446313156">Registra</translation>
-<translation id="8398790343843005537">Cerca el teu telèfon</translation>
+<translation id="8398790343843005537">Troba el teu telèfon</translation>
<translation id="8398877366907290961">Continua igualment</translation>
<translation id="8399276228600040370">Inicieu la sessió amb el compte desat a <ph name="PASSWORD_MANAGER_BRAND" /></translation>
<translation id="8400146488506985033">Gestiona persones</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_da.xtb b/chromium/chrome/app/resources/generated_resources_da.xtb
index 339c970baf2..7ca7ede1ba8 100644
--- a/chromium/chrome/app/resources/generated_resources_da.xtb
+++ b/chromium/chrome/app/resources/generated_resources_da.xtb
@@ -412,7 +412,7 @@
<translation id="1608626060424371292">Fjern denne bruger</translation>
<translation id="1609170755653088773">Synkroniser denne adgangskode på din iPhone</translation>
<translation id="1609862759711084604">Tidligere bruger</translation>
-<translation id="1611584202130317952">Leveringsflowet blev afbrudt. Prøv igen, eller kontakt enhedsejeren eller administratoren.</translation>
+<translation id="1611584202130317952">Provisioneringsflowet blev afbrudt. Prøv igen, eller kontakt enhedsejeren eller administratoren.</translation>
<translation id="1611649489706141841">videresend</translation>
<translation id="1611704746353331382">Eksportér bogmærker til HTML-fil...</translation>
<translation id="1612129875274679969">Lad denne enhed være permanent i kiosktilstand.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_de.xtb b/chromium/chrome/app/resources/generated_resources_de.xtb
index db11e08f29b..ce23fabfd65 100644
--- a/chromium/chrome/app/resources/generated_resources_de.xtb
+++ b/chromium/chrome/app/resources/generated_resources_de.xtb
@@ -1746,7 +1746,7 @@ Mehr dazu erfahren Sie in <ph name="BEGIN_LINK" />unserer Hilfe<ph name="END_LIN
<translation id="3627320433825461852">Noch weniger als 1 Minute</translation>
<translation id="3627588569887975815">Link in Inko&amp;gnito-Fenster öffnen</translation>
<translation id="3627671146180677314">Verlängerungszeit für Netscape-Zertifikate</translation>
-<translation id="3627879631695760395"><ph name="APP" /> wird installiert…</translation>
+<translation id="3627879631695760395"><ph name="APP" /> installieren</translation>
<translation id="3630995161997703415">Fügen Sie diese Website Ihrer Ablage hinzu, um sie jederzeit zu verwenden</translation>
<translation id="3635030235490426869">Tab 1</translation>
<translation id="3636096452488277381">Hallo <ph name="USER_GIVEN_NAME" /></translation>
diff --git a/chromium/chrome/app/resources/generated_resources_es.xtb b/chromium/chrome/app/resources/generated_resources_es.xtb
index b8d640dcf0b..89bdb40bfd8 100644
--- a/chromium/chrome/app/resources/generated_resources_es.xtb
+++ b/chromium/chrome/app/resources/generated_resources_es.xtb
@@ -245,7 +245,7 @@
<translation id="1363028406613469049">Pista</translation>
<translation id="1367951781824006909">Selecciona un archivo</translation>
<translation id="136802136832547685">No hay ningún usuario supervisado para añadirlo a este dispositivo.</translation>
-<translation id="1368265273904755308">Notificar error</translation>
+<translation id="1368265273904755308">Notificar problema</translation>
<translation id="1370646789215800222">¿Eliminar a esta persona?</translation>
<translation id="1372681413396468867">{NUM_ITEMS,plural, =1{Se va a quitar 1 elemento}other{Se van a quitar # elementos}}</translation>
<translation id="1372841398847029212">Sincronizar con tu cuenta</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_fa.xtb b/chromium/chrome/app/resources/generated_resources_fa.xtb
index ad7f627b9f5..79572c4edc5 100644
--- a/chromium/chrome/app/resources/generated_resources_fa.xtb
+++ b/chromium/chrome/app/resources/generated_resources_fa.xtb
@@ -3331,7 +3331,7 @@
<translation id="612596694132302162">باصدا کردن سایت</translation>
<translation id="6129691635767514872">‏داده‌های انتخاب‌شده از Chrome و دستگاه‌های همگام‌سازی‌شده برداشته شده‌اند. ممکن است حساب Google شما در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> شکل‌های دیگری از سابقه مرور (مانند جستجوها و فعالیت از سایر سرویس‌های Google) داشته باشد.</translation>
<translation id="6129938384427316298">‏نظر گواهی Netscape</translation>
-<translation id="6129953537138746214">فضا</translation>
+<translation id="6129953537138746214">فاصله</translation>
<translation id="6132383530370527946">چاپ کوچک</translation>
<translation id="6133173853026656527">در حال انتقال <ph name="FILE_NAME" /></translation>
<translation id="6135622770221372891">شناسه‌های کانال</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_iw.xtb b/chromium/chrome/app/resources/generated_resources_iw.xtb
index 53e201de0e1..27214b1f93e 100644
--- a/chromium/chrome/app/resources/generated_resources_iw.xtb
+++ b/chromium/chrome/app/resources/generated_resources_iw.xtb
@@ -1096,7 +1096,7 @@
<translation id="2673135533890720193">לקרוא את היסטוריית הגלישה שלך</translation>
<translation id="2673589024369449924">צור קיצור דרך בשולחן העבודה למשתמש זה.</translation>
<translation id="2676946222714718093">מופעל ב-</translation>
-<translation id="2677748264148917807">צא</translation>
+<translation id="2677748264148917807">יציאה</translation>
<translation id="2678063897982469759">הפוך מחדש לפעיל</translation>
<translation id="2679385451463308372">הדפס באמצעות תיבת דו-שיח של המערכת...</translation>
<translation id="268053382412112343">הי&amp;סטוריה</translation>
@@ -2569,7 +2569,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="4964455510556214366">סידור</translation>
<translation id="4964673849688379040">בודק...</translation>
<translation id="4965808351167763748">‏בחרת להגדיר שהמכשיר הזה יפעיל את Hangouts Meet. להמשיך?</translation>
-<translation id="4967749818080339523">בחר חשבון</translation>
+<translation id="4967749818080339523">בחירת חשבון</translation>
<translation id="496888482094675990">‏היישום 'קבצים' מספק גישה מהירה לקבצים ששמרת ב-Google Drive, באחסון חיצוני או במכשיר שלך עם מערכת הפעלה של Chrome.</translation>
<translation id="4969785127455456148">אלבום</translation>
<translation id="4971412780836297815">פתח בסיום</translation>
@@ -5324,7 +5324,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="969096075394517431">החלף שפות</translation>
<translation id="970047733946999531">{NUM_TABS,plural, =1{כרטיסייה אחת}two{# כרטיסיות}many{# כרטיסיות}other{# כרטיסיות}}</translation>
<translation id="971774202801778802">כתובת אתר של סימניה</translation>
-<translation id="973473557718930265">צא</translation>
+<translation id="973473557718930265">יציאה</translation>
<translation id="974555521953189084">הזן את ביטוי הסיסמה כדי להתחיל בסנכרון</translation>
<translation id="981121421437150478">לא מקוון</translation>
<translation id="983511809958454316">‏התכונה לא נתמכת ב-VR</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_mr.xtb b/chromium/chrome/app/resources/generated_resources_mr.xtb
index 667de70a6ed..841dba79526 100644
--- a/chromium/chrome/app/resources/generated_resources_mr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_mr.xtb
@@ -15,7 +15,7 @@
<translation id="1017280919048282932">शब्दकोशात &amp;जोडा</translation>
<translation id="1018656279737460067">रद्द झाले</translation>
<translation id="102272308210570439">तुमच्या स्‍क्रीनवर जे काही आहे ते Assistant ला वापरू द्या</translation>
-<translation id="1026822031284433028">प्रतिमा लोड करा</translation>
+<translation id="1026822031284433028">इमेज लोड करा</translation>
<translation id="1029317248976101138">झूम करा</translation>
<translation id="1030706264415084469"><ph name="URL" /> ला तुमच्या डिव्हाइसवर मोठ्या प्रमाणावर डेटा कायमचा स्टोअर करायचा आहे</translation>
<translation id="1031362278801463162">पूर्वावलोकन लोड करत आहे</translation>
@@ -81,7 +81,7 @@
<translation id="1119069657431255176">Bzip2 संकीर्ण tar संग्रहण</translation>
<translation id="1119447706177454957">अंतर्गत एरर</translation>
<translation id="1122198203221319518">&amp;साधने</translation>
-<translation id="1122242684574577509">प्रमाणीकरण अयशस्वी. आपण वापरत असलेल्या (<ph name="NETWORK_ID" />) Wi-Fi नेटवर्कसाठी लॉग इन पृष्ठास भेट देण्यासाठी क्लिक करा.</translation>
+<translation id="1122242684574577509">प्रमाणीकरण अयशस्वी. आपण वापरत असलेल्या (<ph name="NETWORK_ID" />) वाय-फाय नेटवर्कसाठी लॉग इन पृष्ठास भेट देण्यासाठी क्लिक करा.</translation>
<translation id="1122960773616686544">बुकमार्क नाव</translation>
<translation id="1123187597739372905">सिंक सेटिंग्ज दाखवा</translation>
<translation id="1123316951456119629">आपले Google खाते <ph name="PRODUCT_NAME" /> वरून डिस्कनेक्ट केल्याने, या संगणकावर आपला डेटा तसाच राहील परंतु बदल आपल्या Google खात्यामध्ये अधिक संंकालित केले जाणार नाहीत. आपल्या Google खात्यात आधीपासून संचयित केलेला डेटा <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वापरून जोपर्यंत काढत नाही तोपर्यंत तो तेथे राहील.</translation>
@@ -187,7 +187,7 @@
<translation id="126768002343224824">१६x</translation>
<translation id="1272079795634619415">थांबा</translation>
<translation id="1272978324304772054">हे वापरकर्ता खाते ज्यावर डिव्हाइसने नोंदणी केली आहे त्या डोमेनशी संबंधित नाही. आपण एखादे वेगळ्या डोमेनची नोंदणी करू इच्छित असल्यास, आपल्याला प्रथम डिव्हाइस पुनर्प्राप्तीद्वारा जाणे आवश्यक आहे.</translation>
-<translation id="1274977772557788323">Adobe Flash Player संचय सेटिंग्ज</translation>
+<translation id="1274977772557788323">Adobe Flash Player स्टोरेज सेटिंग्ज</translation>
<translation id="1274997165432133392">कुकीज आणि इतर साइट डेटा</translation>
<translation id="127668050356036882">आपल्या सर्व विंडो बंद करा</translation>
<translation id="1277908057200820621">डिव्हाइस सूची पहा</translation>
@@ -270,7 +270,7 @@
<translation id="1398853756734560583">वाढवा</translation>
<translation id="140250605646987970">आपला फोन सापडला. परंतु Smart Lock केवळ Android 5.0 आणि वरील डिव्हाइसेसवर कार्य करते. &lt;a&gt;अधिक जाणून घ्या&lt;/a&gt;</translation>
<translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (पर्यवेक्षी)</translation>
-<translation id="1405476660552109915">या साइटसाठी <ph name="PASSWORD_MANAGER_BRAND" /> ने आपले खाते जतन करावे असे आपण इच्छिता?</translation>
+<translation id="1405476660552109915">या साइटसाठी <ph name="PASSWORD_MANAGER_BRAND" /> ने आपले खाते सेव्ह करावे असे आपण इच्छिता?</translation>
<translation id="1406500794671479665">सत्यापित करत आहे...</translation>
<translation id="1407489512183974736">मध्यभागी क्रॉप केला</translation>
<translation id="1408504635543854729">फायली अॅपमध्ये डिव्हाइसची सामग्री एक्सप्लोर करा. प्रशासकाने सामग्री प्रतिबंधित केली आहे आणि सुधारित केली जाऊ शकत नाही.</translation>
@@ -308,7 +308,7 @@
<translation id="146000042969587795">ही फ्रेम अवरोधित केली होती कारण यात काही असुरक्षित सामग्री आहे.</translation>
<translation id="146219525117638703">ONC स्थिती</translation>
<translation id="146220085323579959">इंटरनेट डिस्कनेक्ट झाले. कृपया आपले इंटरनेट कनेक्‍शन तपासा आणि पुन्हा प्रयत्न करा.</translation>
-<translation id="1464258312790801189">आपली खाती</translation>
+<translation id="1464258312790801189">तुमची खाती</translation>
<translation id="1464724975715666883">1 एरर.</translation>
<translation id="1465176863081977902">ऑडिओ पत्ता कॉपी करा</translation>
<translation id="1465827627707997754">पिझ्झा स्लाइस</translation>
@@ -335,7 +335,7 @@
<translation id="1503394326855300303">हे मालक खाते एकाधिक साइन-इन सत्रामधील प्रथम साइन-इन केलेले खाते असणे आवश्यक आहे.</translation>
<translation id="1503914375822320413">कॉपी ऑपरेशन अयशस्वी, अनपेक्षित एरर: $1</translation>
<translation id="150411034776756821"><ph name="SITE" /> काढा</translation>
-<translation id="1504682556807808151">आपण या साइटसाठी <ph name="PASSWORD_MANAGER_BRAND" /> ने आपला पासवर्ड जतन करू इच्छिता?</translation>
+<translation id="1504682556807808151">आपण या साइटसाठी <ph name="PASSWORD_MANAGER_BRAND" /> ने आपला पासवर्ड सेव्ह करू इच्छिता?</translation>
<translation id="1506061864768559482">शोध इंजिन</translation>
<translation id="1507048939308275033">तुमच्या Chromebook वर एसएमएस वाचा आणि त्यांना उत्तरे द्या</translation>
<translation id="1507170440449692343">हे पृष्ठ आपल्या कॅमेर्‍यावर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
@@ -347,22 +347,22 @@
<translation id="1510030919967934016">आपले स्थान ट्रॅक करण्यापासून या पृष्ठास अवरोधित केले गेले आहे.</translation>
<translation id="1510200760579344855">हे डीव्हाइस <ph name="SAML_DOMAIN" /> प्रशासकाद्वारे लॉक करण्यात आले.</translation>
<translation id="1510238584712386396">लाँचर</translation>
-<translation id="1510785804673676069">आपण प्रॉक्सी सर्व्हर वापरत असल्यास, आपली प्रॉक्सी सेटिंग्ज तपासा किंवा
+<translation id="1510785804673676069">आपण प्रॉक्सी सर्व्हर वापरत असल्यास, तुमची प्रॉक्सी सेटिंग्ज तपासा किंवा
प्रॉक्सी सर्व्हर कार्य करत असल्याचे तपासण्यासाठी
आपल्या नेटवर्क प्रशासकाशी संपर्क साधा. आपला प्रॉक्सी सर्व्हर वापरण्यावर आपला विश्वास नसल्यास,
आपल्या <ph name="LINK_START" />प्रॉक्सी सेटिंग्ज<ph name="LINK_END" /> समायोजित करा.</translation>
-<translation id="1511388193702657997">आपले वेब पासवर्ड जतन करण्याचा ऑफर देते</translation>
+<translation id="1511388193702657997">आपले वेब पासवर्ड सेव्ह करण्याचा ऑफर देते</translation>
<translation id="1512210426710821809">हे पहिल्यासारखे करण्‍याचा एकमेव मार्ग म्‍हणजे <ph name="IDS_SHORT_PRODUCT_OS_NAME" /> पुन्हा इन्‍स्‍टॉल करणे.</translation>
<translation id="151501797353681931">Safari मधून आयात केलेले</translation>
<translation id="1515163294334130951">लाँच करा</translation>
<translation id="1521442365706402292">प्रमाणपत्रे व्यवस्थापित करा</translation>
-<translation id="152234381334907219">कधीही जतन न केलेले</translation>
+<translation id="152234381334907219">कधीही सेव्ह न केलेले</translation>
<translation id="1524430321211440688">कीबोर्ड</translation>
<translation id="1524563461097350801">नाही, नको</translation>
<translation id="1525740877599838384">स्थान निर्धारित करण्‍यासाठी फक्त वाय-फाय वापरा</translation>
<translation id="1526560967942511387">अशीर्षकांकित दस्तऐवज</translation>
<translation id="1526925867532626635">समक्रमण सेटिंग्जची पुष्टी करा</translation>
-<translation id="1529116897397289129">जतन केलेली कार्ड येथे दिसून येतील</translation>
+<translation id="1529116897397289129">सेव्ह केलेली कार्ड येथे दिसून येतील</translation>
<translation id="1529891865407786369">उर्जा स्रोत</translation>
<translation id="1530838837447122178">माऊस आणि टचपॅड डिव्हाइस सेटिंग्ज उघडा</translation>
<translation id="1531004739673299060">अॅप्लिकेशन विंडो</translation>
@@ -373,7 +373,7 @@
<translation id="1545786162090505744">क्वेरीच्या जागेवर % सह URL</translation>
<translation id="1546280085599573572">आपण होम बटण क्लिक करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे या विस्ताराने बदलले आहे.</translation>
<translation id="1547572086206517271">रिफ्रेश करण्याची आवश्यकता आहे</translation>
-<translation id="1548132948283577726">ज्या साइट पासवर्ड जतन करत नाहीत त्या येथे दिसून येतील.</translation>
+<translation id="1548132948283577726">ज्या साइट पासवर्ड सेव्ह करत नाहीत त्या येथे दिसून येतील.</translation>
<translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> वर प्रवेश करू इच्छित आहे. हे आपल्या फायलींमध्ये फेरफार करू किंवा हटवू शकते.</translation>
<translation id="1553538517812678578">अमर्यादित</translation>
<translation id="1554390798506296774">सॅन्डबॉक्स न केलेल्या प्लगिन ना <ph name="HOST" /> वर नेहमी अनुमती द्या</translation>
@@ -388,12 +388,12 @@
<translation id="1568323446248056064">प्रदर्शन डीव्हाइस सेटिंग्ज उघडा</translation>
<translation id="1568822834048182062">आपले बुकमार्क, इतिहास, पासवर्ड आणि इतर सेटिंग्ज आपल्या Google खात्यामध्ये संकालित केल्या जातील.</translation>
<translation id="1571313460229786892">&amp;साइट सेटिंग्ज</translation>
-<translation id="1572266655485775982">Wi-Fi सक्षम</translation>
+<translation id="1572266655485775982">वाय-फाय सक्षम</translation>
<translation id="1572876035008611720">आपला ईमेल एंटर करा</translation>
<translation id="1576594961618857597">डीफॉल्ट पांढरा अवतार</translation>
<translation id="1580652505892042215">संदर्भ:</translation>
<translation id="1581962803218266616">फाइंडर मध्ये दर्शवा</translation>
-<translation id="1584990664401018068">आपण वापरत असलेल्या Wi-Fi नेटवर्कला (<ph name="NETWORK_ID" />) प्रमाणीकरणाची आवश्यकता असू शकते.</translation>
+<translation id="1584990664401018068">आपण वापरत असलेल्या वाय-फाय नेटवर्कला (<ph name="NETWORK_ID" />) प्रमाणीकरणाची आवश्यकता असू शकते.</translation>
<translation id="1585717515139318619">आपल्‍या संगणकावरील दुसर्‍या प्रोग्रामने एक थीम जोडली जी Chrome ची कार्य करण्‍याची पद्धत कदाचित बदलू शकते.
<ph name="EXTENSION_NAME" /></translation>
<translation id="1587275751631642843">&amp;JavaScript कन्सोल</translation>
@@ -402,7 +402,7 @@
<translation id="1588870296199743671">यासह दुवा उघडा...</translation>
<translation id="1589055389569595240">शुद्धलेखन आणि व्याकरण दर्शवा</translation>
<translation id="1593594475886691512">स्वरूपन करत आहे...</translation>
-<translation id="159359590073980872">प्रतिमा कॅश </translation>
+<translation id="159359590073980872">इमेज कॅश </translation>
<translation id="1598233202702788831">आपल्‍या प्रशासकाने अपडेट अक्षम केली आहेत.</translation>
<translation id="1600857548979126453">पृष्‍ठ ‍डीबगर बॅकएंडवर प्रवेश करा</translation>
<translation id="1601560923496285236">लागू करा</translation>
@@ -505,7 +505,7 @@
<translation id="1745520510852184940">हे नेहमी करा</translation>
<translation id="174937106936716857">एकूण फाईल संख्या</translation>
<translation id="175196451752279553">पु&amp;न्हा बंद टॅब उघडा</translation>
-<translation id="1753682364559456262">प्रतिमा अवरोधित करणे व्यवस्थापित करा...</translation>
+<translation id="1753682364559456262">इमेज अवरोधित करणे व्यवस्थापित करा...</translation>
<translation id="1753905327828125965">सर्वाधिक भेट दिलेले</translation>
<translation id="1754582516739637364">मेमरी स्थिती</translation>
<translation id="1756681705074952506">इनपुट पद्धत</translation>
@@ -522,7 +522,7 @@
<translation id="1773212559869067373">प्रमाणीकरण प्रमाणपत्र स्थानिकपणे नाकारले</translation>
<translation id="177336675152937177">होस्ट केलेला अ‍ॅप डेटा</translation>
<translation id="1774349594977710164">सर्व आपोआप सिंक करण्यात आले असल्यामुळे तुमचा फोन तुमचे इतर <ph name="DEVICE_TYPE" /> सुद्धा अनलॉक करतो.</translation>
-<translation id="1774833706453699074">उघडी पृष्ठे बुकमार्क करा...</translation>
+<translation id="1774833706453699074">उघडी पेज बुकमार्क करा...</translation>
<translation id="1775381402323441512">व्हिडिओ माहिती</translation>
<translation id="1776883657531386793"><ph name="OID" />: <ph name="INFO" /></translation>
<translation id="177694132944350798">आपला डेटा <ph name="TIME" /> पर्यंत आपल्या Google संकेतशब्दासह कूटबद्ध केला होता. संकालन सुरु करण्यासाठी तो एंटर करा.</translation>
@@ -590,8 +590,8 @@
<translation id="1864756863218646478">फाइल आढळू शकली नाही.</translation>
<translation id="1865678028973512614">फायली हटवा</translation>
<translation id="1865769994591826607">केवळ समान-साइट वरील कनेक्शनसाठी</translation>
-<translation id="186612162884103683">"<ph name="EXTENSION" />" प्रतिमा, व्हिडिओ आणि चेक केलेल्या स्थानांमधील ध्वनी फायली वाचू आणि लिहू शकते.</translation>
-<translation id="1867780286110144690"><ph name="PRODUCT_NAME" /> आपली स्थापना पूर्ण करण्यासाठी तयार आहे</translation>
+<translation id="186612162884103683">"<ph name="EXTENSION" />" इमेज, व्हिडिओ आणि चेक केलेल्या स्थानांमधील ध्वनी फायली वाचू आणि लिहू शकते.</translation>
+<translation id="1867780286110144690"><ph name="PRODUCT_NAME" /> तुमची स्थापना पूर्ण करण्यासाठी तयार आहे</translation>
<translation id="1871615898038944731">आपले <ph name="DEVICE_TYPE" /> अद्ययावत आहे</translation>
<translation id="1875387611427697908">हे केवळ <ph name="CHROME_WEB_STORE" /> वरून जोडले जाऊ शकते</translation>
<translation id="1877520246462554164">प्रमाणीकरण टोकन मिळविण्यात अयशस्वी. कृपया साइन आउट करा नंतर पुन्हा प्रयत्न करण्यासाठी साइन इन करा.</translation>
@@ -631,7 +631,7 @@
<translation id="1933809209549026293">कृपया एक माउस किंवा एक कीबोर्ड कनेक्ट करा. आपण Bluetooth डिव्हाइस वापरत असल्यास, जोडण्यासाठी ते तयार असल्याचे सुनिश्चित करा.</translation>
<translation id="1936157145127842922">फोल्डरमध्ये दर्शवा</translation>
<translation id="1940546824932169984">कनेक्‍ट केलेले डिव्हाइस</translation>
-<translation id="1942765061641586207">प्रतिमा रिझोल्यूशन</translation>
+<translation id="1942765061641586207">इमेज रिझोल्यूशन</translation>
<translation id="1944921356641260203">अपडेट आढळले</translation>
<translation id="1951615167417147110">एक पृष्ठ वर स्क्रोल करा</translation>
<translation id="1956050014111002555">फाइलमध्ये एकाधिक प्रमाणपत्रे आहेत ज्यापैकी एकही आयात झालेले नाही: </translation>
@@ -660,14 +660,14 @@
<translation id="1992397118740194946">सेट नाही</translation>
<translation id="1994173015038366702">साइट URL</translation>
<translation id="1997484222658892567"><ph name="URL" /> ला तुमच्या स्थानिक काँप्युटरवर मोठ्या प्रमाणावर डेटा कायमचा स्टोअर करायचा आहे</translation>
-<translation id="1997616988432401742">आपली प्रमाणपत्रे</translation>
+<translation id="1997616988432401742">तुमची प्रमाणपत्रे</translation>
<translation id="1999115740519098545">स्टार्टअप वर</translation>
<translation id="2006638907958895361">लिंक <ph name="APP" /> मध्ये उघडा</translation>
<translation id="2007404777272201486">समस्या नोंदवा...</translation>
<translation id="2016430552235416146">पारंपारिक</translation>
<translation id="2017334798163366053">कार्यप्रदर्शन डेटा संकलन अक्षम करा</translation>
<translation id="2017836877785168846">अॅड्रेस बारमधील इतिहास आणि आपोआप पूर्ण केलेले साफ करते.</translation>
-<translation id="2018352199541442911">क्षमस्व, आपले बाह्य संचय डीव्हाइस आत्ता समर्थन करत नाही.</translation>
+<translation id="2018352199541442911">क्षमस्व, आपले बाह्य स्टोरेज डीव्हाइस आत्ता समर्थन करत नाही.</translation>
<translation id="2019718679933488176">नवीन टॅबमध्ये ऑडिओ &amp;उघडा</translation>
<translation id="2020183425253392403">नेटवर्क पत्ता सेटिंग्ज दर्शवा</translation>
<translation id="2023167225947895179">पिनचा अंदाज घेणे सोपे असू शकते</translation>
@@ -677,7 +677,7 @@
<translation id="2034346955588403444">इतर WiFi नेटवर्क जोडा</translation>
<translation id="203574396658008164">लॉक स्क्रीनवरून टीप घेणे चालू करा</translation>
<translation id="2039623879703305659">बोट खूप द्रुतपणे हलविले</translation>
-<translation id="2040460856718599782">अरेरे! आपल्याला प्रमाणीकृत करण्याचा प्रयत्न करताना काहीतरी चूक झाली. कृपया आपली साइन इन क्रेडेन्शियल दोनदा तपासा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="2040460856718599782">अरेरे! आपल्याला प्रमाणीकृत करण्याचा प्रयत्न करताना काहीतरी चूक झाली. कृपया तुमची साइन इन क्रेडेन्शियल दोनदा तपासा आणि पुन्हा प्रयत्न करा.</translation>
<translation id="2043818754674261542">फोनला हे <ph name="DEVICE_TYPE" /> अनलॉक करण्यासाठी अंतर ठेवण्याची आवश्यकता आहे</translation>
<translation id="204497730941176055">Microsoft Certificate Template Name</translation>
<translation id="2045117674524495717">कीबोर्ड शॉर्टकट मदतकर्ता</translation>
@@ -707,7 +707,7 @@
<translation id="2087822576218954668">प्रिंट: <ph name="PRINT_NAME" /></translation>
<translation id="2089566709556890888">Google Chrome ने सुरक्षितरित्या ब्राउझ करा</translation>
<translation id="2089795179672254991">साइटला तुम्ही क्लिपबोर्डवर कॉपी केलेला मजकूर आणि इमेज पाहायच्‍या असतील, तेव्हा विचारा (शिफारस केलेले)</translation>
-<translation id="2090165459409185032">आपली खाते माहिती पुनर्प्राप्त करण्यासाठी, यावर जा: google.com/accounts/recovery</translation>
+<translation id="2090165459409185032">तुमची खाते माहिती पुनर्प्राप्त करण्यासाठी, यावर जा: google.com/accounts/recovery</translation>
<translation id="2090876986345970080">सिस्टम सुरक्षा सेटिंग्ज</translation>
<translation id="2091887806945687916">ध्वनी</translation>
<translation id="2097372108957554726">नवीन डिव्हाइसेसची नोंदणी करण्यासाठी आपल्याला Chrome वर साइन इन करणे आवश्यक आहे</translation>
@@ -761,7 +761,7 @@
<translation id="2155931291251286316">नेहमी <ph name="HOST" /> कडील पॉप-अप ना परवानगी द्या</translation>
<translation id="215753907730220065">पूर्ण स्क्रीनमधून निर्गमन करा</translation>
<translation id="2157875535253991059">हे पृष्ठ आता फुल स्‍क्रीन असेल.</translation>
-<translation id="216169395504480358">Wi-Fi जोडा...</translation>
+<translation id="216169395504480358">वाय-फाय जोडा...</translation>
<translation id="2163470535490402084">कृपया आपल्‍या <ph name="DEVICE_TYPE" /> मध्‍ये साइन इन करण्‍यासाठी इंटरनेटशी कनेक्ट करा.</translation>
<translation id="2166369534954157698">चपळ तपकिरी कोल्ह्याने आळशी कुत्र्यावर उडी मारली</translation>
<translation id="2169062631698640254">तरीही साइन इन करा</translation>
@@ -916,7 +916,7 @@
<translation id="241082044617551207">अज्ञात प्लगिन</translation>
<translation id="2413749388954403953">बुकमार्क वापरकर्ता इंटरफेस बदला</translation>
<translation id="2422426094670600218">&lt;अनामित&gt;</translation>
-<translation id="2423578206845792524">म्हणून प्रतिमा ज&amp;तन करा...</translation>
+<translation id="2423578206845792524">म्हणून इमेज ज&amp;तन करा...</translation>
<translation id="2424091190911472304">नेहमी <ph name="ORIGIN" /> वर चालवा</translation>
<translation id="2425665904502185219">एकूण फाइल आकार</translation>
<translation id="2428510569851653187">टॅब क्रॅश झाला तेव्हा तुम्ही नेमके काय करत होता ते सांगा</translation>
@@ -983,7 +983,7 @@
<translation id="2512222046227390255">फॉर्म स्वयं-भरण करा</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="2517472476991765520">स्कॅन करा</translation>
-<translation id="2518024842978892609">आपली क्लायंट प्रमाणप‍त्रे वापरा</translation>
+<translation id="2518024842978892609">तुमची क्लायंट प्रमाणप‍त्रे वापरा</translation>
<translation id="2520644704042891903">उपलब्ध सॉकेटची प्रतीक्षा करत आहे...</translation>
<translation id="252219247728877310">घटक अद्ययावत केला नाही</translation>
<translation id="2522791476825452208">अगदी जवळ</translation>
@@ -1009,7 +1009,7 @@
<translation id="2558896001721082624">सिस्टम मेनूमध्ये नेहमी अॅक्सेसिबिलिटी पर्याय दाखवा</translation>
<translation id="2562685439590298522">दस्तऐवज</translation>
<translation id="2562743677925229011"><ph name="SHORT_PRODUCT_NAME" /> मध्‍ये साइन इन नाही</translation>
-<translation id="2563856802393254086">अभिनंदन! आपली '<ph name="NAME" />' डेटा सेवा सक्रिय केली गेली आहे आणि वापरण्यास तयार आहे.</translation>
+<translation id="2563856802393254086">अभिनंदन! तुमची '<ph name="NAME" />' डेटा सेवा सक्रिय केली गेली आहे आणि वापरण्यास तयार आहे.</translation>
<translation id="2566124945717127842">आपला <ph name="IDS_SHORT_PRODUCT_NAME" /> डिव्हाइस अगदी नवीन सारखे रीसेट करण्यासाठी Powerwash करा.</translation>
<translation id="2567257616420533738">पासवर्ड सेव्ह केला. सेव्ह केलेले पासवर्ड <ph name="SAVED_PASSWORDS_LINK" /> येथे पहा आणि व्यवस्थापित करा</translation>
<translation id="2568774940984945469">इंफोबार कंटेनर</translation>
@@ -1055,7 +1055,7 @@
<translation id="26224892172169984">कोणत्याही साइटला प्रोटोकॉल हाताळण्याची परवानगी देऊ नका</translation>
<translation id="2624142942574147739">हे पृष्‍ठ आपल्या कॅमेरा आणि मायक्रोफोनवर प्रवेश करत आहे.</translation>
<translation id="2626799779920242286">कृपया नंतर पुन्हा प्रयत्न करा.</translation>
-<translation id="2630681426381349926">सुरुवात करण्यासाठी Wi-Fi वर कनेक्ट करा</translation>
+<translation id="2630681426381349926">सुरुवात करण्यासाठी वाय-फाय वर कनेक्ट करा</translation>
<translation id="2631006050119455616">वाचवला</translation>
<translation id="2631498379019108537">शेल्फ मधील इनपुट पर्याय दर्शवा</translation>
<translation id="2633199387167390344"><ph name="NAME" /> <ph name="USAGE" /> MB डिस्क स्थान वापरत आहे.</translation>
@@ -1127,7 +1127,7 @@
<translation id="2718395828230677721">रात्रीचा प्रकाश</translation>
<translation id="2718998670920917754">अँटी-व्हायरस सॉफ्टवेअरला एक व्हायरस आढळला.</translation>
<translation id="2719936478972253983">पुढील कुकी ब्लॉक केल्या होत्‍या</translation>
-<translation id="2721037002783622288">प्रतिमा <ph name="SEARCH_ENGINE" /> वर शोधा</translation>
+<translation id="2721037002783622288">इमेज <ph name="SEARCH_ENGINE" /> वर शोधा</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">आपल्या प्रशासकाने पर्यवेक्षित वापरकर्ते अक्षम केले आहेत.</translation>
<translation id="2724841811573117416">WebRTC लॉग</translation>
@@ -1171,7 +1171,7 @@
<translation id="2783321960289401138">शॉर्टकट तयार करा...</translation>
<translation id="2783661497142353826">कियोस्क अॅप्लिकेशन व्यवस्थापित करा</translation>
<translation id="2783829359200813069">एंक्रिप्शन प्रकार निवडा</translation>
-<translation id="2784407158394623927">आपली मोबाइल डेटा सेवा सक्रिय करत आहे</translation>
+<translation id="2784407158394623927">तुमची मोबाइल डेटा सेवा सक्रिय करत आहे</translation>
<translation id="2785873697295365461">फाईल वर्णनकर्ते</translation>
<translation id="2787047795752739979">मूळवर खाडाखोड करा</translation>
<translation id="2788135150614412178">+</translation>
@@ -1188,7 +1188,7 @@
<ph name="BEGIN_LIST" />
<ph name="LIST_ITEM" />rootfs पडताळणी काढा जेणेकरून आपण OS फायली सुधारित करू शकता
<ph name="LIST_ITEM" />मानक चाचणी की वापरून डिव्हाइसवर SSH प्रवेश सक्षम करा जेणेकरून डिव्हाइसवर प्रवेश करण्यासाठी आपण <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> सारखी साधने वापरू शकता
- <ph name="LIST_ITEM" />USB वरून बूट करणे सक्षम करा जेणेकरून आपण USB ड्राइव्हवरून OS प्रतिमा इंस्टॉल करू शकता
+ <ph name="LIST_ITEM" />USB वरून बूट करणे सक्षम करा जेणेकरून आपण USB ड्राइव्हवरून OS इमेज इंस्टॉल करू शकता
<ph name="LIST_ITEM" />एका सानुकूल मूल्यावर आपले dev आणि सिस्टम दोन्ही मूळ लॉग इन पासवर्ड सेट करा जेणेकरून आपण डिव्हाइसवर व्यक्तिचलितपणे SSH करू शकता
<ph name="END_LIST" />
<ph name="BR" />
@@ -1207,7 +1207,7 @@
<translation id="2809586584051668049">आणि <ph name="NUMBER_ADDITIONAL_DISABLED" /> अधिक</translation>
<translation id="281133045296806353">विद्यमान ब्राउझर सत्रात नवीन विंडो तयार केली.</translation>
<translation id="2812944337881233323">साइन आउट केल्यानंतर पुन्हा साइन इन करून पहा.</translation>
-<translation id="2812989263793994277">कोणत्याही प्रतिमा दर्शवू नका</translation>
+<translation id="2812989263793994277">कोणत्याही इमेज दर्शवू नका</translation>
<translation id="2814489978934728345">हे पृष्ठ लोड करणे थांबवा</translation>
<translation id="2815500128677761940">बुकमार्क बार</translation>
<translation id="2815693974042551705">बुकमार्क फोल्डर</translation>
@@ -1215,7 +1215,7 @@
<translation id="2820957248982571256">स्कॅन होत आहे...</translation>
<translation id="2822634587701817431">संकुचित करा / विस्तृत करा</translation>
<translation id="2825758591930162672">विषयाची सार्वजनिक की</translation>
-<translation id="2828650939514476812">Wi-Fi नेटवर्कवर कनेक्ट करा</translation>
+<translation id="2828650939514476812">वाय-फाय नेटवर्कवर कनेक्ट करा</translation>
<translation id="2836269494620652131">क्रॅश</translation>
<translation id="2836635946302913370">या वापरकर्तानावासह साइन इन करणे आपल्या प्रशासकाद्वारे अक्षम केले गेले आहे.</translation>
<translation id="283669119850230892">नेटवर्क <ph name="NETWORK_ID" /> वापरण्‍यासाठी, प्रथम खालील इंटरनेटचे आपले कनेक्शन पूर्ण करा.</translation>
@@ -1245,7 +1245,7 @@
<translation id="2872353916818027657">प्राथमिक मॉनिटर स्वॅप करा</translation>
<translation id="287286579981869940"><ph name="PROVIDER_NAME" /> जोडा...</translation>
<translation id="2874343608108773609">तुमच्या सर्व डिव्हाइसवर तुमच्या सेटिंग्ज मिळवण्यासाठी, Chrome मध्ये साइन इन करा.</translation>
-<translation id="2875698561019555027">(Chrome एरर पृष्ठे)</translation>
+<translation id="2875698561019555027">(Chrome एरर पेज)</translation>
<translation id="288042212351694283">आपल्या सर्वंकष 2 रा घटक डिव्हाइसेसवर प्रवेश करा</translation>
<translation id="2881966438216424900"> अखेरचा प्रवेशः</translation>
<translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> रीस्टार्ट होईल आणि क्षणभरात रीसेट होईल</translation>
@@ -1259,7 +1259,7 @@
<translation id="2893168226686371498">डीफॉल्ट ब्राउझर</translation>
<translation id="289644616180464099">सिम कार्ड लॉक केले आहे</translation>
<translation id="289695669188700754">की आयडी: <ph name="KEY_ID" /></translation>
-<translation id="2897878306272793870">आपली खात्री आहे की आपण <ph name="TAB_COUNT" /> टॅब उघडू इच्छिता?</translation>
+<translation id="2897878306272793870">तुमची खात्री आहे की आपण <ph name="TAB_COUNT" /> टॅब उघडू इच्छिता?</translation>
<translation id="290105521672621980">फाइल अ‍समर्थित वैशिष्ट्यांचा वापर करीत आहे</translation>
<translation id="2902127500170292085"><ph name="EXTENSION_NAME" /> ला या प्रिंटरसह संवाद प्रस्थापित करणे शक्य झाले नाही. प्रिंटर प्लग इन केले आहे हे सुनिश्चित करा आणि पुन्हा प्रयत्न करा.</translation>
<translation id="2902312830803030883">आणखी क्रिया</translation>
@@ -1274,12 +1274,12 @@
<translation id="2908789530129661844">स्क्रीनची झूम कमी करा</translation>
<translation id="2910318910161511225">नेटवर्कशी कनेक्ट करा आणि पुन्हा प्रयत्न करा</translation>
<translation id="2911898792135283060">पासवर्ड जनरेट करा...</translation>
-<translation id="2913331724188855103">कुकी डेटा जतन करणे आणि वाचण्यासाठी साइटना अनुमती द्या (शिफारस केलेले)</translation>
+<translation id="2913331724188855103">कुकी डेटा सेव्ह करणे आणि वाचण्यासाठी साइटना अनुमती द्या (शिफारस केलेले)</translation>
<translation id="2916073183900451334">वेबपृष्ठावर टॅब दाबल्याने दुवे हायलाइट होतात, तसेच फील्ड तयार होतात</translation>
<translation id="2916745397441987255">शोध विस्तार</translation>
<translation id="2921081876747860777">कृपया आपला स्थानिक डेटा संरक्षित करण्‍यासाठी एक पासवर्ड तयार करा.</translation>
<translation id="2925966894897775835">पत्रके</translation>
-<translation id="2927017729816812676">कॅश संचय</translation>
+<translation id="2927017729816812676">कॅश स्टोरेज</translation>
<translation id="2932330436172705843"><ph name="PROFILE_DISPLAY_NAME" /> (मुलांसाठी खाते)</translation>
<translation id="2932483646085333864">साइन आउट करा नंतर संकालन सुरू करण्यासाठी पुन्हा साइन इन करा</translation>
<translation id="2932883381142163287">दुरुपयोगाची तक्रार नोंदवा</translation>
@@ -1300,7 +1300,7 @@
<translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (विस्तार प्रदान केला)</translation>
<translation id="2961695502793809356">पुढे जाण्यासाठी क्लिक करा, इतिहास पहाण्यासाठी होल्ड करा</translation>
<translation id="2963151496262057773">खालील प्लगिन असंवादी आहे: <ph name="PLUGIN_NAME" />आपण हे थांबवू इच्छिता?</translation>
-<translation id="2966449113954629791">आपण आपली मोबाईल डेटा सूट वापरली असू शकते. अधिक डेटा विकत घेण्यासाठी <ph name="NAME" /> सक्रियकरण पोर्टलला भेट द्या.</translation>
+<translation id="2966449113954629791">आपण तुमची मोबाईल डेटा सूट वापरली असू शकते. अधिक डेटा विकत घेण्यासाठी <ph name="NAME" /> सक्रियकरण पोर्टलला भेट द्या.</translation>
<translation id="2966937470348689686">Android प्राधान्ये व्यवस्थापित करा</translation>
<translation id="2971213274238188218">चकाकी कमी करा</translation>
<translation id="2972557485845626008">फर्मवेयर</translation>
@@ -1322,7 +1322,7 @@
<translation id="3003144360685731741">प्राधान्यीकृत नेटवर्क</translation>
<translation id="3003623123441819449">CSS कॅश </translation>
<translation id="3003633581067744647">थंबनेल व्ह्यू वर स्विच करा</translation>
-<translation id="3003967365858406397">आपले <ph name="PHONE_NAME" /> एक खाजगी Wi-Fi कनेक्शन तयार करेल.</translation>
+<translation id="3003967365858406397">आपले <ph name="PHONE_NAME" /> एक खाजगी वाय-फाय कनेक्शन तयार करेल.</translation>
<translation id="3004391367407090544">कृपया नंतर परत या</translation>
<translation id="3006881078666935414">वापराचा कोणताही डेटा नाही</translation>
<translation id="3007214526293698309">गुणोत्तराचे निराकरण करा</translation>
@@ -1453,9 +1453,9 @@
<translation id="3181110748548073003">पुढे जाण्यासाठी |<ph name="SHORTCUT" />| दाबा</translation>
<translation id="3182749001423093222">शब्दलेखन तपासणी</translation>
<translation id="3183139917765991655">प्रोफाईल आयातकर्ता</translation>
-<translation id="3184560914950696195">$1 वर जतन करु शकत नाही. संपादित प्रतिमा डाउलोड फोल्‍डरमध्‍ये जतन केल्या जातील.</translation>
+<translation id="3184560914950696195">$1 वर सेव्ह करु शकत नाही. संपादित इमेज डाउलोड फोल्‍डरमध्‍ये सेव्ह केल्या जातील.</translation>
<translation id="3188465121994729530">हलविण्याची सरासरी</translation>
-<translation id="3190558889382726167">पासवर्ड जतन केला</translation>
+<translation id="3190558889382726167">पासवर्ड सेव्ह केला</translation>
<translation id="3192947282887913208">ऑडिओ फायली</translation>
<translation id="3194737229810486521"><ph name="URL" /> ला तुमच्या डिव्हाइसवर डेटा कायमचा स्टोअर करायचा आहे</translation>
<translation id="3199127022143353223">सर्व्हर</translation>
@@ -1481,7 +1481,7 @@
<translation id="323803881985677942">विस्तार पर्याय उघडा</translation>
<translation id="3241680850019875542">पॅक करण्यासाठी विस्ताराची मूळ निर्देशिका निवडा. एक विस्तार अपडेट करण्याकरिता, पुनर्वापरासाठी खाजगी की फाइल देखील निवडा.</translation>
<translation id="3242765319725186192">पूर्व-सामायिक की:</translation>
-<translation id="3244294424315804309">आवाज म्युट करणे सुरू ठेवा</translation>
+<translation id="3244294424315804309">आवाज म्यूट करणे सुरू ठेवा</translation>
<translation id="3245321423178950146">अज्ञात कलाकार</translation>
<translation id="3246097286174000800">Smart Lock वापरून पहा</translation>
<translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवर्क एरर</translation>
@@ -1495,8 +1495,8 @@
<translation id="3265459715026181080">विंडो बंद करा</translation>
<translation id="3267726687589094446">एकाधिक फायलींच्या स्वयंचलित डाउनलोडिंगला अनुमती देणे सुरू ठेवा</translation>
<translation id="3268451620468152448">उघडे Tabs</translation>
-<translation id="3269069891205016797">आपण साइन आउट करता तेव्हा डिव्हाइस मधून आपली माहिती काढली जाईल.</translation>
-<translation id="3269093882174072735">प्रतिमा लोड करा</translation>
+<translation id="3269069891205016797">आपण साइन आउट करता तेव्हा डिव्हाइस मधून तुमची माहिती काढली जाईल.</translation>
+<translation id="3269093882174072735">इमेज लोड करा</translation>
<translation id="326999365752735949">फरक डाउनलोड करत आहे</translation>
<translation id="3270965368676314374">आपल्या संगणकावरील फोटो, संगीत आणि अन्य मीडिया वाचा, बदला आणि हटवा</translation>
<translation id="327147043223061465">सर्व कुकीज आणि साइट डेटा पहा</translation>
@@ -1511,7 +1511,7 @@
<translation id="3282568296779691940">Chrome वर साइन इन करा</translation>
<translation id="3285322247471302225">नवीन &amp;टॅब</translation>
<translation id="3288047731229977326">विकासक मोडमध्‍ये चालणारे विस्‍तार आपल्‍या संगणकास हानी पोहचवू शकतात. आपण विकासक नसल्‍यास, सुरक्षित राहाण्‍यासाठी विकासक मोडमध्‍ये चालणारे हे विस्‍तार आपण अक्षम करावे.</translation>
-<translation id="3289856944988573801">अपडेट तपासण्यासाठी, कृपया इथरनेट किंवा Wi-Fi वापरा.</translation>
+<translation id="3289856944988573801">अपडेट तपासण्यासाठी, कृपया इथरनेट किंवा वाय-फाय वापरा.</translation>
<translation id="3294437725009624529">अतिथी</translation>
<translation id="329650768420594634">Pack विस्तार चेतावणी</translation>
<translation id="329838636886466101">दुरुस्त करा</translation>
@@ -1554,7 +1554,7 @@
<translation id="3341703758641437857">फाइल URL मध्ये प्रवेशास अनुमती द्या</translation>
<translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ला हे एक्स्टेंशन काढायचे आहे.</translation>
<translation id="3345886924813989455">समर्थित ब्राउझर आढळला नाही</translation>
-<translation id="3347086966102161372">प्रतिमा पत्ता कॉपी करा</translation>
+<translation id="3347086966102161372">इमेज पत्ता कॉपी करा</translation>
<translation id="3348038390189153836">काढण्यायोग्य डिव्हाइस आढळले</translation>
<translation id="3348459612390503954">अभिनंदन</translation>
<translation id="3349933790966648062">मेमरी फुटप्रिंट</translation>
@@ -1697,10 +1697,10 @@
<translation id="3555812735919707620">विस्तार काढा</translation>
<translation id="3556000484321257665">आपले शोध इंजिन <ph name="URL" /> मध्‍ये बदलले.</translation>
<translation id="3563432852173030730">कियोस्क अॅप्लिकेशन डाउनलोड केला जाऊ शकला नाही.</translation>
-<translation id="3564334271939054422">आपण वापरत असलेल्या (<ph name="NETWORK_ID" />) Wi-Fi नेटवर्कला आपण त्याच्या लॉग इन पृष्ठास भेट देणे आवश्यक असू शकते.</translation>
+<translation id="3564334271939054422">आपण वापरत असलेल्या (<ph name="NETWORK_ID" />) वाय-फाय नेटवर्कला आपण त्याच्या लॉग इन पृष्ठास भेट देणे आवश्यक असू शकते.</translation>
<translation id="3564708465992574908">झूम स्तर</translation>
<translation id="3566721612727112615">कोणत्याही साइट जोडल्या नाहीत</translation>
-<translation id="3569382839528428029"><ph name="APP_NAME" /> नी आपली स्क्रीन सामायिक करावी असे आपण इच्छिता?</translation>
+<translation id="3569382839528428029"><ph name="APP_NAME" /> नी तुमची स्क्रीन सामायिक करावी असे आपण इच्छिता?</translation>
<translation id="3570985609317741174">वेब सामग्री</translation>
<translation id="3571734092741541777">सेट अप</translation>
<translation id="3574210789297084292">साइन इन करा</translation>
@@ -1719,14 +1719,14 @@
<translation id="3593965109698325041">प्रमाणपत्र नाव प्रतिबंध</translation>
<translation id="3596235046596950091">क्लाउड सेवा सक्षम करा</translation>
<translation id="3599863153486145794">साइन-इन केलेल्या सर्व डिव्हाइसमधून इतिहास साफ करते. तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर कदाचित ब्राउझिंगचे इतर फॉर्म असतील.</translation>
-<translation id="3600792891314830896">ध्वनी प्ले करणाऱ्या साइट म्युट करा</translation>
+<translation id="3600792891314830896">ध्वनी प्ले करणाऱ्या साइट म्यूट करा</translation>
<translation id="3602290021589620013">पूर्वावलोकन</translation>
<translation id="3603533104205588786">तुम्ही पेज बुकमार्क करण्यासाठी तारावर क्लिक करू शकता</translation>
<translation id="3603622770190368340">नेटवर्क प्रमाणपत्र प्राप्त करा</translation>
<translation id="3604048165392640554">कोणतेही मोबाइल कनेक्शन सापडले नाही. तुमच्या दुसऱ्या डीव्हाइसवर इन्स्टंट टेदरिंग चालू करा आणि पुन्हा प्रयत्न करा. &lt;a target="_blank" href="<ph name="URL" />"&gt;अधिक जाणून घ्या&lt;/a&gt;</translation>
<translation id="3605780360466892872">बटनडाउन</translation>
<translation id="3608454375274108141">F10</translation>
-<translation id="3608576286259426129">वापरकर्ता प्रतिमा पूर्वावलोकन</translation>
+<translation id="3608576286259426129">वापरकर्ता इमेज पूर्वावलोकन</translation>
<translation id="3609785682760573515">संकालन करत आहे...</translation>
<translation id="3609895557594655134">Android VPN जोडा...</translation>
<translation id="361106536627977100">फ्लॅश डेटा</translation>
@@ -1760,7 +1760,7 @@
<translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> आढळले</translation>
<translation id="3649138363871392317">फोटो कॅप्चर केला</translation>
<translation id="3650952250015018111">"<ph name="APP_NAME" />" ला अ‍ॅक्सेसची अनुमती द्या:</translation>
-<translation id="3651488188562686558">Wi-Fi वरून डिस्कनेक्ट करा</translation>
+<translation id="3651488188562686558">वाय-फाय वरून डिस्कनेक्ट करा</translation>
<translation id="3652817283076144888">सुरू होत आहे</translation>
<translation id="3653999333232393305">आपल्या मायक्रोफोनवर प्रवेश करण्यासाठी <ph name="HOST" /> ला अनुमती देणे सुरू ठेवा</translation>
<translation id="3654045516529121250">आपल्या प्रवेश योग्यता सेटिंग्ज वाचा</translation>
@@ -1774,7 +1774,7 @@
<translation id="3668823961463113931">हँडलर</translation>
<translation id="3670229581627177274">Bluetooth चालू करा</translation>
<translation id="3672681487849735243">एक फॅक्टरी एरर शोधली गेली</translation>
-<translation id="367645871420407123">आपण डीफॉल्ट चाचणी प्रतिमा मूल्यामध्ये मूळ पासवर्ड सेट करू इच्छित असल्यास रिक्त सोडा</translation>
+<translation id="367645871420407123">आपण डीफॉल्ट चाचणी इमेज मूल्यामध्ये मूळ पासवर्ड सेट करू इच्छित असल्यास रिक्त सोडा</translation>
<translation id="3678156199662914018">विस्तारः <ph name="EXTENSION_NAME" /></translation>
<translation id="3681311097828166361">आपल्या अभिप्रायाबद्दल धन्यवाद. आपण आता ऑफलाइन आहात आणि आपला अहवाल नंतर पाठविला जाईल.</translation>
<translation id="3683023058278427253">आम्ही तुमच्या डोमेनसाठी असलेले एकाधिक परवाने प्रकार शोधले आहेत. कृपया सुरू ठेवण्यासाठी एक निवडा.</translation>
@@ -1790,7 +1790,7 @@
<translation id="3697100740575341996">आपल्या IT प्रशासकाने आपल्या डिव्हाइससाठी Chrome Goodies अक्षम केल्या आहेत. <ph name="MORE_INFO_LINK" /></translation>
<translation id="3699624789011381381">ईमेल अॅड्रेस</translation>
<translation id="3700888195348409686">सादर करत आहे (<ph name="PAGE_ORIGIN" />)</translation>
-<translation id="3702500414347826004"><ph name="URL" /> समाविष्‍ट करण्‍यासाठी आपली प्रारंभ पृष्‍ठे बदलली.</translation>
+<translation id="3702500414347826004"><ph name="URL" /> समाविष्‍ट करण्‍यासाठी तुमची प्रारंभ पृष्‍ठे बदलली.</translation>
<translation id="370415077757856453">JavaScript ब्लॉक केले</translation>
<translation id="3704331259350077894">ऑपरेशनची समाप्ती</translation>
<translation id="3705722231355495246">-</translation>
@@ -1804,7 +1804,7 @@
<translation id="3719826155360621982">मुख्यपृष्ठ</translation>
<translation id="3720996970802414353">तरीही स्विच करा</translation>
<translation id="3723158278575423087">Chromium मधील कास्ट अनुभवावर आपले स्वागत आहे!</translation>
-<translation id="3725367690636977613">पृष्ठे</translation>
+<translation id="3725367690636977613">पेज</translation>
<translation id="3726463242007121105">हे डिव्हाइस उघडले जाऊ शकत नाही कारण त्याचे फाइलसिस्टम समर्थित नाही.</translation>
<translation id="3727148787322499904">हे सेटिंग बदलल्याने सर्व सामायिक केलेले नेटवर्क प्रभावित होतील</translation>
<translation id="3727187387656390258">पॉपअपची तपासणी करा</translation>
@@ -1837,7 +1837,7 @@
<translation id="3764583730281406327">{NUM_DEVICES,plural, =1{एका USB डिव्हाइससह संवाद प्रस्थापित करा}one{# USB डिव्हाइससह संवाद प्रस्थापित करा}other{# USB डिव्हाइसेससह संवाद प्रस्थापित करा}}</translation>
<translation id="3764986667044728669">नोंदणी करण्यात अक्षम</translation>
<translation id="3766223500670287046">रिमोट स्क्रीन</translation>
-<translation id="3768037234834996183">आपली प्राधान्ये संकालित करत आहे...</translation>
+<translation id="3768037234834996183">तुमची प्राधान्ये संकालित करत आहे...</translation>
<translation id="3771294271822695279">व्हिडिओ फायली</translation>
<translation id="3775432569830822555">SSL सर्व्हर प्रमाणप‍त्र</translation>
<translation id="3776796446459804932">हा विस्तार Chrome वेब स्टोअर धोरणाचे उल्लंघन करतो.</translation>
@@ -1962,7 +1962,7 @@
<translation id="3943582379552582368">&amp;मागील</translation>
<translation id="3943857333388298514">पेस्ट करा</translation>
<translation id="3945692323027177270">व्हॉइस सुरू करा</translation>
-<translation id="3948116654032448504">प्रतिमा <ph name="SEARCH_ENGINE" /> वर शोधा</translation>
+<translation id="3948116654032448504">इमेज <ph name="SEARCH_ENGINE" /> वर शोधा</translation>
<translation id="3949371968208420848">Hangouts Meetमध्ये तुमचे स्वागत आहे!</translation>
<translation id="3949790930165450333"><ph name="DEVICE_NAME" /> (<ph name="DEVICE_ID" />)</translation>
<translation id="394984172568887996">IE मधून आयातित</translation>
@@ -1987,7 +1987,7 @@
<translation id="3978267865113951599">(क्रॅश झाले)</translation>
<translation id="3979395879372752341">नवीन विस्तार जोडला (<ph name="EXTENSION_NAME" />)</translation>
<translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> सक्षम करा</translation>
-<translation id="3981760180856053153">अवैध जतन प्रकार एंटर केले.</translation>
+<translation id="3981760180856053153">अवैध सेव्ह प्रकार एंटर केले.</translation>
<translation id="3983586614702900908">अज्ञात विक्रेत्याकडील डिव्हाइसेस</translation>
<translation id="3985261842049607969">Google ड्राइव्हवर बॅक अप घ्या. तुमचा डेटा सहजपणे रिस्टोर करा किंवा कधीही डिव्हाइस स्विच करा. <ph name="BEGIN_LINK1" />अधिक जाणून घ्या<ph name="END_LINK1" /></translation>
<translation id="3987348946546879621">वाचवलेला डेटा</translation>
@@ -2091,7 +2091,7 @@
<translation id="4168015872538332605"><ph name="PRIMARY_EMAIL" /> च्या मालकीच्या काही सेटिंग्ज आपल्याशी सामायिक केल्या जात आहेत. एकाधिक साइन इन वापरताना या सेटिंग्ज फक्त आपल्या खात्यावर प्रभाव करतात.</translation>
<translation id="4170314459383239649">बाहेर पडताना साफ करा</translation>
<translation id="4172051516777682613">नेहमी दर्शवा</translation>
-<translation id="4175737294868205930">सातत्यपूर्ण संचय</translation>
+<translation id="4175737294868205930">सातत्यपूर्ण स्टोरेज</translation>
<translation id="4176463684765177261">अक्षम</translation>
<translation id="4180684688621252156">प्रिंटिंग सेवा</translation>
<translation id="4180788401304023883">CA प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" हटवायचे?</translation>
@@ -2143,7 +2143,7 @@
<translation id="4261901459838235729">Google सादरीकरण</translation>
<translation id="4262366363486082931">टूलबार वर लक्ष द्या</translation>
<translation id="4263757076580287579">प्रिंटर नोंदणी रद्द केली गेली आहे.</translation>
-<translation id="426564820080660648">अपडेट तपासण्यासाठी, कृपया इथरनेट, Wi-Fi किंवा मोबाईल डेटा सक्षम करा.</translation>
+<translation id="426564820080660648">अपडेट तपासण्यासाठी, कृपया इथरनेट, वाय-फाय किंवा मोबाईल डेटा सक्षम करा.</translation>
<translation id="4268025649754414643">की एनसिफरमेन्ट</translation>
<translation id="4270393598798225102">आवृत्ती <ph name="NUMBER" /></translation>
<translation id="4271396100647220620">कोणत्याही जुळण्या नाहीत</translation>
@@ -2152,7 +2152,7 @@
<translation id="4280864916190672950">लोड करणे थांबवा</translation>
<translation id="4281844954008187215">सेवा अटी</translation>
<translation id="4282196459431406533">Smart Lock चालू आहे</translation>
-<translation id="4284105660453474798">आपली खात्री आहे की आपण "$1" हटवू इच्छिता?</translation>
+<translation id="4284105660453474798">तुमची खात्री आहे की आपण "$1" हटवू इच्छिता?</translation>
<translation id="4285418559658561636">पासवर्ड अपडेट करा</translation>
<translation id="4285498937028063278">अनपिन</translation>
<translation id="428565720843367874">या फाईलचे स्कॅनिंग करताना अँटी-व्हायरस सॉफ्टवेअर अनपेक्षितपणे अयशस्वी झाले.</translation>
@@ -2209,7 +2209,7 @@
<translation id="4387004326333427325">प्रमाणीकरण प्रमाणपत्र दूरस्थपणे नाकारले</translation>
<translation id="4389091756366370506">वापरकर्ता <ph name="VALUE" /></translation>
<translation id="4394049700291259645">अक्षम करा</translation>
-<translation id="4400367121200150367">ज्या साइट पासवर्ड जतन करत नाहीत त्या येथे दिसून येतील</translation>
+<translation id="4400367121200150367">ज्या साइट पासवर्ड सेव्ह करत नाहीत त्या येथे दिसून येतील</translation>
<translation id="4400632832271803360">शीर्ष-पंक्ती की चे वर्तन स्विच करण्यासाठी लाँचर की धरून ठेवा.</translation>
<translation id="4408599188496843485">मदत</translation>
<translation id="4409697491990005945">समास</translation>
@@ -2242,11 +2242,11 @@
<translation id="4444304522807523469">USB द्वारा संलग्न केलेल्या किंवा स्थानिक नेटवर्कवरील दस्तऐवज स्कॅनरवर प्रवेश करा</translation>
<translation id="4444512841222467874">स्थान उपलब्ध केले नसल्यास, वापरकर्ते आणि डेटा स्वयंचलितपणे काढला जाऊ शकतो.</translation>
<translation id="4446933390699670756">मिरर केलेले</translation>
-<translation id="4448844063988177157">Wi-Fi नेटवर्कचा शोधत आहे...</translation>
+<translation id="4448844063988177157">वाय-फाय नेटवर्कचा शोधत आहे...</translation>
<translation id="4449996769074858870">हा टॅब ऑडिओ प्ले करत आहे.</translation>
<translation id="4450974146388585462">निदान करा</translation>
<translation id="4452426408005428395">काही हरकत नाही</translation>
-<translation id="445923051607553918">Wi-Fi नेटवर्कमध्ये सामील व्हा</translation>
+<translation id="445923051607553918">वाय-फाय नेटवर्कमध्ये सामील व्हा</translation>
<translation id="4462159676511157176">सानुकूल नाव सर्व्हर</translation>
<translation id="4467100756425880649">Chrome वेब स्टोअर गॅलरी</translation>
<translation id="4467101674048705704"><ph name="FOLDER_NAME" /> विस्तारित करा</translation>
@@ -2290,7 +2290,7 @@
<translation id="4544174279960331769">डीफॉल्ट निळा अवतार</translation>
<translation id="4545028762441890696">पुन्हा चालू करण्यासाठी, नवीन परवानग्या मंजूर करा:</translation>
<translation id="454547174531670764">दुसर्‍या खात्याशी सिंक करा</translation>
-<translation id="4545759655004063573">अपुर्‍या परवानग्यांमुळे जतन करु शकत नाही. कृपया दुसर्‍या स्‍थानावर सेव्ह करा.</translation>
+<translation id="4545759655004063573">अपुर्‍या परवानग्यांमुळे सेव्ह करु शकत नाही. कृपया दुसर्‍या स्‍थानावर सेव्ह करा.</translation>
<translation id="4546308221697447294">Google Chrome सह जलदगतीने ब्राउझ करा</translation>
<translation id="4547659257713117923">अन्य डिव्हाइसेसवरील कोणतेही टॅब नाहीत</translation>
<translation id="4547672827276975204">आपोआप सेट करा</translation>
@@ -2317,7 +2317,7 @@
<translation id="4576537685267142337">बोट उचला, नंतर पुन्हा सेन्सरला स्पर्श करा</translation>
<translation id="4576541033847873020">Bluetooth डिव्हाइस जोडा</translation>
<translation id="4579581181964204535"><ph name="HOST_NAME" /> कास्ट करण्यात अक्षम.</translation>
-<translation id="4580526846085481512">आपली खात्री आहे की आपण $1 आयटम हटवू इच्छिता?</translation>
+<translation id="4580526846085481512">तुमची खात्री आहे की आपण $1 आयटम हटवू इच्छिता?</translation>
<translation id="4582563038311694664">सर्व सेटिंग्ज रीसेट करा</translation>
<translation id="4585793705637313973">पृष्ठ संपादित करा</translation>
<translation id="4589268276914962177">नवीन टर्मिनल</translation>
@@ -2325,8 +2325,8 @@
<translation id="4593021220803146968"><ph name="URL" /> &amp;येथे जा</translation>
<translation id="4595560905247879544">अॅप्स आणि विस्तार केवळ (<ph name="CUSTODIAN_NAME" />) व्यवस्थापकाद्वारे सुधारित केले जाऊ शकतात.</translation>
<translation id="4596295440756783523">आपल्‍याकडे फाईलवर अशी प्रमाणपत्रे आहेत जी या सर्व्हरला ओळखतात</translation>
-<translation id="4598556348158889687">संचय व्यवस्थापन</translation>
-<translation id="4598776695426288251">एकाधिक डिव्हाइसद्वारे Wi-Fi उपलब्ध आहे</translation>
+<translation id="4598556348158889687">स्टोरेज व्यवस्थापन</translation>
+<translation id="4598776695426288251">एकाधिक डिव्हाइसद्वारे वाय-फाय उपलब्ध आहे</translation>
<translation id="4602466770786743961">नेहमी <ph name="HOST" /> ला आपल्या कॅमेरा आणि मायक्रोफोनवर प्रवेश करण्‍यास अनुमती द्या</translation>
<translation id="4603234488640507661">(Android)</translation>
<translation id="4608500690299898628">&amp;शोधा...</translation>
@@ -2376,7 +2376,7 @@
<translation id="4677585247300749148"><ph name="URL" /> ला अॅक्सेसिबिलिटी इव्‍हेंटना प्रतिसाद द्यायचा आहे</translation>
<translation id="4677692029604506169">तुमचे <ph name="DEVICE_TYPE" /> अनलॉक करण्यासाठी तुम्ही वापरलेल्या फोनला सुरक्षिततेसाठी स्क्रीन लॉकची आवश्यकता आहे. साधारणपणे तो पिन, पॅटर्न किंवा पासवर्ड असतो. आधीपासून स्क्रीन लॉक आहे का? पडताळणी करण्यासाठी आणि सेट अप करणे सुरू ठेवण्यासाठी पुन्हा तपासून पहा निवडा.</translation>
<translation id="4677772697204437347">GPU मेमरी</translation>
-<translation id="4680105648806843642">या पेजवर आवाज म्युट केला होता</translation>
+<translation id="4680105648806843642">या पेजवर आवाज म्यूट केला होता</translation>
<translation id="4681930562518940301">नवीन टॅबमध्‍ये मूळ &amp;प्रतिमा उघडा</translation>
<translation id="4682551433947286597">साइन-इन स्क्रीनवर दिसणारे वॉलपेपर.</translation>
<translation id="4684427112815847243">सर्वकाही संंकालित करा</translation>
@@ -2387,7 +2387,7 @@
<translation id="469230890969474295">OEM फोल्डर</translation>
<translation id="4692623383562244444">शोध इंजिने</translation>
<translation id="4697551882387947560">ब्राउझिंग सत्र समाप्त होते तेव्हा</translation>
-<translation id="4699172675775169585">कॅश प्रतिमा आणि फायली</translation>
+<translation id="4699172675775169585">कॅश इमेज आणि फायली</translation>
<translation id="4699357559218762027">(स्वयं-लाँच केलेले)</translation>
<translation id="4707302005824653064">chrome.com वरील व्यवस्थापकाद्वारे (<ph name="CUSTODIAN_EMAIL" />) वापर आणि इतिहासाचे पुनरावलोकन केले जाऊ शकते.</translation>
<translation id="4707579418881001319">L2TP/IPsec + वापरकर्ता प्रमाणपत्र</translation>
@@ -2401,7 +2401,7 @@
<translation id="4716483597559580346">अतिरिक्त सुरक्षिततेसाठी पॉवरवॉश</translation>
<translation id="4720113199587244118">डिव्हाइसेस जोडा</translation>
<translation id="4720185134442950733">मोबाइल डेटा नेटवर्क</translation>
-<translation id="4722920479021006856"><ph name="APP_NAME" /> आपली स्क्रीन सामायिक करत आहे.</translation>
+<translation id="4722920479021006856"><ph name="APP_NAME" /> तुमची स्क्रीन सामायिक करत आहे.</translation>
<translation id="4724450788351008910">सदस्यत्व बदलले</translation>
<translation id="4724850507808590449"><ph name="FILE_COUNT" /> फोटोंचा बॅकअप घेतला</translation>
<translation id="4726710629007580002">हा विस्तार स्‍थ‍ापित करण्याचा प्रयत्न करताना चेतावणी देण्यात आली:</translation>
@@ -2483,7 +2483,7 @@
<translation id="4850669014075537160">स्क्रोलिंग</translation>
<translation id="4850886885716139402">पहा</translation>
<translation id="4853020600495124913">&amp;नवीन विंडोमध्ये उघडा</translation>
-<translation id="4856478137399998590">आपली मोबाइल सेवा सक्रिय झाली आणि वापरण्यासाठी तयार आहे</translation>
+<translation id="4856478137399998590">तुमची मोबाइल सेवा सक्रिय झाली आणि वापरण्यासाठी तयार आहे</translation>
<translation id="4857506433977877623">{COUNT,plural, =0{सर्व गुप्त विंडोमध्ये उघडा}=1{गुप्त विंडोमध्ये उघडा}one{सर्व (#) गुप्त विंडोमध्ये उघडा}other{सर्व (#) गुप्त विंडोमध्ये उघडा}}</translation>
<translation id="4858913220355269194">फ्रिटझ</translation>
<translation id="4862050643946421924">डिव्हाइस जोडणे...</translation>
@@ -2531,7 +2531,7 @@
<translation id="49027928311173603">सर्व्हरवरून डाउनलोड केलेले धोरण अवैध आहे: <ph name="VALIDATION_ERROR" />.</translation>
<translation id="4905417359854579806"><ph name="FILE_COUNT" /> चा बॅकअप घेण्यास तयार</translation>
<translation id="4907161631261076876">ही फाईल सामान्यपणे डाउनलोड केली नाही आणि कदाचित धोकादायक असू शकते.</translation>
-<translation id="4907306957610201395">परवानगी श्रेणी</translation>
+<translation id="4907306957610201395">परवानगी वर्गवारी</translation>
<translation id="4907824805858067479">तुमच्या अॅडमिनिस्ट्रेटरने सेव्ह केलेली कार्डे बंद केली आहेत</translation>
<translation id="4908811072292128752">एकाच वेळी दोन साइट ब्राउझ करण्यासाठी एक नवीन टॅब उघडा</translation>
<translation id="4909038193460299775">हे खाते <ph name="DOMAIN" /> ने व्यवस्थापित केले असल्याने, आपले बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज या डिव्हाइस वरून साफ केल्या जातील. तथापि, आपला डेटा आपल्या Google खात्यामध्ये संचयित केलेला असेल आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वर व्यवस्थापित केला जाऊ शकतो.</translation>
@@ -2569,7 +2569,7 @@
<translation id="4964673849688379040">तपासत आहे...</translation>
<translation id="4965808351167763748">तुम्हाला हे डिव्हाइस Hangouts Meet वापरण्यासाठी खरोखर सेट अप करायचे आहे का?</translation>
<translation id="4967749818080339523">एक खाते निवडा</translation>
-<translation id="496888482094675990">फायली अॅप आपण Google ड्राइव्हवर, बाह्य संचयनावर किंवा आपल्या Chrome OS डिव्हाइसेसवर जतन केलेल्या फायलींना द्रुत प्रवेश प्रदान करतो.</translation>
+<translation id="496888482094675990">फायली अॅप आपण Google ड्राइव्हवर, बाह्य संचयनावर किंवा आपल्या Chrome OS डिव्हाइसेसवर सेव्ह केलेल्या फायलींना द्रुत प्रवेश प्रदान करतो.</translation>
<translation id="4969785127455456148">अल्बम</translation>
<translation id="4971412780836297815">पूर्ण झाल्यानंतर उघडा</translation>
<translation id="4972129977812092092">प्रिंटर संपादित करा</translation>
@@ -2581,7 +2581,7 @@
<translation id="4977942889532008999">प्रवेश पुष्टी करा</translation>
<translation id="4980805016576257426">या विस्तारामध्ये मालवेयर आहे.</translation>
<translation id="498294082491145744">कुकीज, JavaScript, प्लगिन, भौगोलिक स्थान, मायक्रोफोन, कॅमेरा इ. सारख्या वैशिष्ट्यांवरील वेबसाइटचे प्रवेश नियंत्रित करणार्‍या आपल्या सेटिंग्ज बदला.</translation>
-<translation id="4988526792673242964">पृष्ठे</translation>
+<translation id="4988526792673242964">पेज</translation>
<translation id="49896407730300355">घड्याळाच्या वि&amp;रूद्ध दिशेने फिरवा</translation>
<translation id="4989966318180235467">&amp;पार्श्वभूमी पृष्ठाचे निरीक्षण करा</translation>
<translation id="4990343175649730969">Chrome क्लीनअप साधन डाउनलोड करा</translation>
@@ -2665,7 +2665,7 @@
<translation id="5117625797180141189"><ph name="DOCUMENT_NAME" /> यशस्वीरित्या प्रिंट केला</translation>
<translation id="5117930984404104619">भेट दिलेल्या URL सह, अन्य विस्तारांच्या वर्तनाचे परीक्षण करा</translation>
<translation id="5119173345047096771">Mozilla Firefox</translation>
-<translation id="5121130586824819730">आपली हार्ड डिस्क पूर्ण भरली आहे. कृपया दुसर्‍या स्‍थानावर सेव्ह करा किंवा हार्ड डिस्कवर अधिक जागा तयार करा.</translation>
+<translation id="5121130586824819730">तुमची हार्ड डिस्क पूर्ण भरली आहे. कृपया दुसर्‍या स्‍थानावर सेव्ह करा किंवा हार्ड डिस्कवर अधिक जागा तयार करा.</translation>
<translation id="5125751979347152379">अवैध URL.</translation>
<translation id="5127881134400491887">नेटवर्क कनेक्शन व्यवस्थापित करा</translation>
<translation id="512903556749061217">संलग्न केले</translation>
@@ -2686,7 +2686,7 @@
<translation id="5154176924561037127">F8</translation>
<translation id="5154702632169343078">विषय</translation>
<translation id="5157635116769074044">हे पृष्ठ प्रारंभ स्क्रीनवर पिन करा...</translation>
-<translation id="5158593464696388225">प्रतिमा जतन करण्यात अक्षम.</translation>
+<translation id="5158593464696388225">इमेज सेव्ह करण्यात अक्षम.</translation>
<translation id="5158983316805876233">सर्व प्रोटोकॉलसाठी एकच प्रॉक्सी वापरा</translation>
<translation id="5159383109919732130"><ph name="BEGIN_BOLD" />आपला डिव्हाइस अद्याप काढू नका!<ph name="END_BOLD" />
<ph name="LINE_BREAKS" />
@@ -2773,7 +2773,7 @@
<translation id="528468243742722775">समाप्त</translation>
<translation id="5285635972691565180">डिस्‍प्‍ले <ph name="DISPLAY_ID" /></translation>
<translation id="5286252187236914003">L2TP/IPsec</translation>
-<translation id="5287425679749926365">आपली खाती</translation>
+<translation id="5287425679749926365">तुमची खाती</translation>
<translation id="5288481194217812690"><ph name="FILENAME" /></translation>
<translation id="5288678174502918605">बंद केलेले टॅब पु&amp;न्हा उघडा</translation>
<translation id="52912272896845572">खाजगी की फाइल अवैध आहे.</translation>
@@ -2836,7 +2836,7 @@
<translation id="5374359983950678924">चित्र बदला</translation>
<translation id="5376169624176189338">परत जाण्यासाठी क्लिक करा, इतिहास पहाण्यासाठी होल्ड करा</translation>
<translation id="5376931455988532197">फाईल खूप मोठी आहे</translation>
-<translation id="537813040452600081">या विंडोमध्ये आपण पाहत असलेली पृष्ठे ब्राउझर इतिहासात दिसणार नाहीत आणि आपण साइन आउट केल्यानंतर, संगणकावर कुकीज सारखे, अन्य ट्रेस ते सोडणार नाहीत. आपण डाउनलोड करता त्या फायली आणि आपण तयार करता ते बुकमार्क संरक्षित केले जाणार नाहीत.</translation>
+<translation id="537813040452600081">या विंडोमध्ये आपण पाहत असलेली पेज ब्राउझर इतिहासात दिसणार नाहीत आणि आपण साइन आउट केल्यानंतर, संगणकावर कुकीज सारखे, अन्य ट्रेस ते सोडणार नाहीत. आपण डाउनलोड करता त्या फायली आणि आपण तयार करता ते बुकमार्क संरक्षित केले जाणार नाहीत.</translation>
<translation id="5379140238605961210">मायक्रोफोन प्रवेश अवरोधित करणे सुरू ठेवा</translation>
<translation id="5379268888377976432">हटवणे पूर्ववत करा</translation>
<translation id="5380103295189760361">अशा सुधारकांचे कीबोर्ड शॉर्टकट पाहण्यासाठी Control, Alt, Shift, किंवा शोध दाबून ठेवा.</translation>
@@ -2844,7 +2844,7 @@
<translation id="5384883051496921101">ही साइट गुप्त मोडच्या बाहेरील एखाद्या अ‍ॅपबरोबर ही माहिती शेअर करणार आहे.</translation>
<translation id="5388588172257446328">वापरकर्तानाव:</translation>
<translation id="5388885445722491159">जोडलेले</translation>
-<translation id="5389237414310520250">नवीन वापरकर्ता तयार करणे शक्य झाले नाही. कृपया आपली हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="5389237414310520250">नवीन वापरकर्ता तयार करणे शक्य झाले नाही. कृपया तुमची हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation>
<translation id="5390100381392048184">साइटना ध्वनी प्ले करण्याची परवानगी द्या</translation>
<translation id="5390284375844109566">अनुक्रमित डेटाबेस</translation>
<translation id="5390743329570580756">यासाठी पाठवा</translation>
@@ -2862,7 +2862,7 @@
<translation id="5419294236999569767">प्रणाली वेळ</translation>
<translation id="5420438158931847627">मजकूर आणि इमेजचे शार्पनेस निर्धारित करते</translation>
<translation id="5422221874247253874">प्रवेश स्‍थान</translation>
-<translation id="5422781158178868512">क्षमस्व, आपले बाह्य संचय डीव्हाइस ओळखले जाऊ शकले नाही.</translation>
+<translation id="5422781158178868512">क्षमस्व, आपले बाह्य स्टोरेज डीव्हाइस ओळखले जाऊ शकले नाही.</translation>
<translation id="5423849171846380976">सक्रिय</translation>
<translation id="5425042808445046667">डाउनलोड करायला सुरुवात करा</translation>
<translation id="5425722269016440406">हे सेटिंग आपल्या फोनवर आणि अन्य डिव्हाइसेसवर संकालित केली असल्यामुळे Smart Lock बंद करण्यासाठी आपण ऑनलाइन असणे आवश्यक आहे. कृपया सर्वप्रथम एका नेटवर्कशी कनेक्ट करा.</translation>
@@ -2892,7 +2892,7 @@
<translation id="5449551289610225147">अवैध पासवर्ड</translation>
<translation id="5449588825071916739">सर्व टॅब बुकमार्क करा</translation>
<translation id="5449716055534515760">विं&amp;डो बंद करा</translation>
-<translation id="5451285724299252438">पृष्ठ श्रेणी मजकूर बॉक्स</translation>
+<translation id="5451285724299252438">पृष्ठ वर्गवारी मजकूर बॉक्स</translation>
<translation id="5453029940327926427">टॅब बंद करा</translation>
<translation id="5454166040603940656"><ph name="PROVIDER" /> सह</translation>
<translation id="5457113250005438886">अवैध</translation>
@@ -2913,7 +2913,7 @@
<translation id="5485102783864353244">अॅप्लिकेशन जोडा</translation>
<translation id="5485754497697573575">सर्व टॅब पुनर्संचयित करा</translation>
<translation id="5486261815000869482">संकेतशब्दाची पुष्टी करा</translation>
-<translation id="5486275809415469523"><ph name="APP_NAME" /> आपली स्क्रीन <ph name="TAB_NAME" /> सह सामायिक करत आहे.</translation>
+<translation id="5486275809415469523"><ph name="APP_NAME" /> तुमची स्क्रीन <ph name="TAB_NAME" /> सह सामायिक करत आहे.</translation>
<translation id="5486561344817861625">ब्राउझर रीस्टार्ट प्रतिकृती करा</translation>
<translation id="5487521232677179737">डेटा साफ करा</translation>
<translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' कॉपी केला</translation>
@@ -2966,23 +2966,23 @@
<translation id="5546865291508181392">शोधा</translation>
<translation id="5553089923092577885">प्रमाणपत्र धोरण मॅपिंग</translation>
<translation id="5554489410841842733">जेव्हा विस्तार वर्तमान पृष्ठावर कार्य करेल तेव्हा हे प्रतीक दृश्यमान होईल.</translation>
-<translation id="5554573843028719904">इतर Wi-Fi नेटवर्क...</translation>
+<translation id="5554573843028719904">इतर वाय-फाय नेटवर्क...</translation>
<translation id="5554720593229208774">ईमेल प्रमाणन अधिकृतता</translation>
<translation id="5556206011531515970">आपले डीफॉल्ट ब्राउझर निवडण्यासाठी पुढील क्लिक करा.</translation>
<translation id="5556459405103347317">रीलोड करा</translation>
<translation id="555746285996217175">लॉक / पॉवर</translation>
-<translation id="5557991081552967863">निष्क्रिय असताना Wi-Fi चालू ठेवा</translation>
+<translation id="5557991081552967863">निष्क्रिय असताना वाय-फाय चालू ठेवा</translation>
<translation id="5558129378926964177">झूम &amp;वाढवा</translation>
<translation id="55601339223879446">प्रदर्शनामध्ये आपल्या डेस्कटॉपच्या सीमा समायोजित करा</translation>
<translation id="5562781907504170924">हा टॅब Bluetooth डिव्हाइसशी कनेक्ट केला आहे.</translation>
<translation id="5565871407246142825">क्रेडिट कार्डे</translation>
<translation id="5567989639534621706">अॅप्लिकेशन कॅश </translation>
<translation id="5568069709869097550">साइन इन करणे शक्य नाही</translation>
-<translation id="5568144734023334204">Android संचय</translation>
+<translation id="5568144734023334204">Android स्टोरेज</translation>
<translation id="5569544776448152862"><ph name="BEGIN_BOLD" /><ph name="DOMAIN_NAME" /><ph name="END_BOLD" /> मध्‍ये नोंदणी करीत आहे...</translation>
<translation id="5572572070321843880">एरर: टर्मिना VM सुरू करता आले नाही.</translation>
<translation id="5575473780076478375">गुप्त विस्तार: <ph name="EXTENSION_NAME" /></translation>
-<translation id="557722062034137776">आपले डिव्हाइस रीसेट केल्याने या खात्यांवरील आपल्या Google खात्यांवर किंवा संकालित केलेल्या कोणत्याही डेटावर प्रभाव पडणार नाही. तथापि, आपल्या डिव्हाइसवर स्थानिकपणे जतन केलेल्या सर्व फायली हटविल्या जातील.</translation>
+<translation id="557722062034137776">आपले डिव्हाइस रीसेट केल्याने या खात्यांवरील आपल्या Google खात्यांवर किंवा संकालित केलेल्या कोणत्याही डेटावर प्रभाव पडणार नाही. तथापि, आपल्या डिव्हाइसवर स्थानिकपणे सेव्ह केलेल्या सर्व फायली हटविल्या जातील.</translation>
<translation id="5578059481725149024">स्वयं साइन-इन</translation>
<translation id="5581700288664681403">लोड करीत आहे <ph name="CLOUD_PRINT_NAME" /></translation>
<translation id="558170650521898289">Microsoft Windows Hardware Driver Verification</translation>
@@ -3077,7 +3077,7 @@
<translation id="572328651809341494">अलीकडील टॅब</translation>
<translation id="5723508132121499792">कोणतेही पार्श्वभूमी अॅप्लिकेशन चालत नाहीत</translation>
<translation id="572392919096807438">माझा निर्णय लक्षात ठेवा</translation>
-<translation id="5727728807527375859">विस्तार, अॅप्लिकेशन आणि थीम आपल्या संगणकास हानी पोहोचवू शकतात. आपली खात्री आहे की आपण सुरू ठेवू इच्छिता?</translation>
+<translation id="5727728807527375859">विस्तार, अॅप्लिकेशन आणि थीम आपल्या संगणकास हानी पोहोचवू शकतात. तुमची खात्री आहे की आपण सुरू ठेवू इच्छिता?</translation>
<translation id="5729712731028706266">&amp;दृश्य</translation>
<translation id="5729996640881880439">क्षमस्व, आम्ही या त्रुटीसाठी कोड दर्शवू शकत नाही.</translation>
<translation id="5731247495086897348">पे&amp;स्ट करा आणि जा</translation>
@@ -3197,7 +3197,7 @@
<translation id="5906655207909574370">अद्ययावत करणे जवळजवळ पूर्ण झाले! अपडेट करणे समाप्त करण्यासाठी आपले डिव्हाइस रीस्टार्ट करा.</translation>
<translation id="5906732635754427568">या डिव्हाइस वरून या अॅपसह संबद्ध असलेला डेटा काढला जाईल.</translation>
<translation id="5908769186679515905">साइटला फ्लॅश चालवण्यापासून अवरोधित करा</translation>
-<translation id="5910363049092958439">म्हणून प्रतिमा ज&amp;तन करा...</translation>
+<translation id="5910363049092958439">म्हणून इमेज ज&amp;तन करा...</translation>
<translation id="5911737117543891828">Google ड्राइव्ह ऑफलाइन फायली तात्पुरत्या हटविल्या जातील. ऑफलाइन उपलब्ध म्हणून आपण सेट केलेल्या फायली या डिव्हाइस मधून हटविल्या जाणार नाहीत.</translation>
<translation id="5912378097832178659">शोध इंजिन &amp;संपादित करा...</translation>
<translation id="5914724413750400082">मॉड्यूलस (<ph name="MODULUS_NUM_BITS" /> बिट):
@@ -3300,7 +3300,7 @@
<translation id="6077131872140550515">प्राधान्यीकृत मधून हटवा</translation>
<translation id="6078752646384677957">कृपया तुमचा मायक्रोफोन आणि ऑडिओ स्तर तपासा.</translation>
<translation id="6080515710685820702">शेअर केलेला काँप्युटर वापरत आहात का? गुप्त विंडो उघडण्याचा प्रयत्न करा.</translation>
-<translation id="6080689532560039067">आपली प्रणाली वेळ तपासा</translation>
+<translation id="6080689532560039067">तुमची प्रणाली वेळ तपासा</translation>
<translation id="6082651258230788217">टूलबारमध्ये दर्शवा</translation>
<translation id="6086814797483779854">क्लिक केल्यावर चालवा</translation>
<translation id="6086846494333236931">आपल्‍या प्रशासकाद्वारे इंस्टॉल केले</translation>
@@ -3345,7 +3345,7 @@
<translation id="6146563240635539929">व्हिडिओ</translation>
<translation id="6147020289383635445">प्रिंट पूर्वावलोकन अयशस्वी.</translation>
<translation id="614940544461990577">हे करून पहा:</translation>
-<translation id="6150853954427645995">ऑफलाइन वापराकरिता ही फाईल जतन करण्‍यासाठी, परत ऑनलाइन व्‍हा, फाईलवर उजवे-क्लिक करा आणि <ph name="OFFLINE_CHECKBOX_NAME" /> पर्याय निवडा.</translation>
+<translation id="6150853954427645995">ऑफलाइन वापराकरिता ही फाईल सेव्ह करण्‍यासाठी, परत ऑनलाइन व्‍हा, फाईलवर उजवे-क्लिक करा आणि <ph name="OFFLINE_CHECKBOX_NAME" /> पर्याय निवडा.</translation>
<translation id="6151323131516309312"><ph name="SITE_NAME" /> शोधण्यासाठी <ph name="SEARCH_KEY" /> दाबा</translation>
<translation id="6151771661215463137">फाइल तुमच्या डाउनलोड फोल्डरमध्ये आधीपासून आहे.</translation>
<translation id="615436196126345398">प्रोटोकॉल</translation>
@@ -3377,7 +3377,7 @@
<translation id="6198252989419008588">पिन बदला</translation>
<translation id="6199801702437275229">स्थान माहितीसाठी प्रतीक्षा करत आहे...</translation>
<translation id="6205710420833115353">काही ऑपरेशनला अपेक्षेपेक्षा जास्त वेळ लागत आहे. आपण त्यांना निरस्त करू इच्छिता?</translation>
-<translation id="6206311232642889873">प्रतिमा कॉ&amp;पी करा</translation>
+<translation id="6206311232642889873">इमेज कॉ&amp;पी करा</translation>
<translation id="6207200176136643843">झूम स्तर डीफॉल्टवर रीसेट करा</translation>
<translation id="620722923698527029">या प्रकारच्या लिंक नेहमी संबद्ध अ‍ॅपमध्ये उघडा</translation>
<translation id="6207937957461833379">देश/प्रदेश</translation>
@@ -3385,7 +3385,7 @@
<translation id="6212168817037875041">डिस्प्ले बंद करा</translation>
<translation id="6212752530110374741">ईमेल लिंक</translation>
<translation id="6220413761270491930">विस्तार लोड करताना एरर</translation>
-<translation id="6223447490656896591">सानुकूल प्रतिमा:</translation>
+<translation id="6223447490656896591">सानुकूल इमेज:</translation>
<translation id="62243461820985415">Chrome हा वॉलपेपर डाउनलोड करू शकत नाही.</translation>
<translation id="6224481128663248237">स्वरुपन यशस्वीरित्या समाप्त!</translation>
<translation id="6225475702458870625">आपल्या <ph name="PHONE_NAME" /> वरून डेटा कनेक्शन उपलब्ध आहे</translation>
@@ -3402,7 +3402,7 @@
<translation id="6239558157302047471">रीलोड आणि फ्रेम करा</translation>
<translation id="6241530762627360640">आपल्या सिस्टीमशी जोडलेल्या Bluetooth डिव्हाइसविषयीच्या माहितीवर प्रवेश करा आणि जवळपासचे Bluetooth डिव्हाइसेस शोधा.</translation>
<translation id="6243774244933267674">सर्व्हर अनुपलब्ध</translation>
-<translation id="6246413617632217567">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया आपली हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="6246413617632217567">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया तुमची हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation>
<translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation>
<translation id="6247802389331535091">सिस्टम: <ph name="ARC_PROCESS_NAME" /></translation>
<translation id="624789221780392884">अपडेट तयार</translation>
@@ -3441,7 +3441,7 @@
<translation id="6291949900244949761">साइटला केव्हा USB डिव्हाइस अॅक्सेस करायचे आहेत हे विचारा (शिफारस केलेले)</translation>
<translation id="6291953229176937411">फाइंडर मध्ये &amp;दर्शवा</translation>
<translation id="6295158916970320988">सर्व साइट</translation>
-<translation id="6295855836753816081">जतन करत आहे...</translation>
+<translation id="6295855836753816081">सेव्ह करत आहे...</translation>
<translation id="6298962879096096191">Android अॅप्स इंस्टॉल करण्‍यासाठी Google Play वापरा</translation>
<translation id="630065524203833229">नि&amp;र्गमन</translation>
<translation id="6305607932814307878">जागतिक धोरण:</translation>
@@ -3490,9 +3490,9 @@
<translation id="6380143666419481200">स्वीकारा आणि सुरू ठेवा</translation>
<translation id="6383051423892982287">स्वतःच्या <ph name="BEGIN_LINK" />संकालन वाक्यांशासह<ph name="END_LINK" /> संकालित केलेला डेटा कूटबद्ध करा</translation>
<translation id="6384275966486438344">आपल्या शोध सेटिंग्ज यावर बदला: <ph name="SEARCH_HOST" /></translation>
-<translation id="6385543213911723544">साइट कुकी डेटा जतन करू आणि वाचू शकतात</translation>
+<translation id="6385543213911723544">साइट कुकी डेटा सेव्ह करू आणि वाचू शकतात</translation>
<translation id="6388771388956873507">आपल्या डिव्हाइस वरील फिंगरप्रिंट सेन्सर शोधा आणि आपल्या बोटाने त्यास स्पर्श करा</translation>
-<translation id="6390799748543157332">या विंडोमध्ये आपण पाहत असलेली पृष्ठे ब्राउझर इतिहासात दिसणार नाहीत आणि आपण सर्व उघड्या अतिथी विंडो बंद केल्यानंतर संगणकावरील, कुकीज सारखे, अन्य ट्रेस ते सोडणार नाहीत. असे असले तरीही, आपण डाउनलोड करता त्या कोणत्याही फायली संरक्षित केल्या जातील.</translation>
+<translation id="6390799748543157332">या विंडोमध्ये आपण पाहत असलेली पेज ब्राउझर इतिहासात दिसणार नाहीत आणि आपण सर्व उघड्या अतिथी विंडो बंद केल्यानंतर संगणकावरील, कुकीज सारखे, अन्य ट्रेस ते सोडणार नाहीत. असे असले तरीही, आपण डाउनलोड करता त्या कोणत्याही फायली संरक्षित केल्या जातील.</translation>
<translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम माहिती<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> पाठवा</translation>
<translation id="6397592254427394018">सर्व बुकमार्क्स &amp;गुप्त विंडो मध्ये उघडा</translation>
<translation id="6398715114293939307">Google Play स्टोअर काढा</translation>
@@ -3504,7 +3504,7 @@
<translation id="6406506848690869874">Sync</translation>
<translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, आणि <ph name="WEBSITE_3" /> वर आपला डेटा वाचा आणि बदला</translation>
<translation id="6409731863280057959">पॉप-अप</translation>
-<translation id="6410257289063177456">प्रतिमा फायली</translation>
+<translation id="6410257289063177456">इमेज फायली</translation>
<translation id="6410328738210026208">चॅनेल बदला आणि Powerwash करा</translation>
<translation id="6410668567036790476">शोध इंजिन जोडा</translation>
<translation id="641081527798843608">जुळणारा विषय</translation>
@@ -3584,8 +3584,8 @@
<translation id="6513247462497316522">आपण इतर नेटवर्कशी कनेक्टेड नसल्यास Google Chrome मोबाइल डेटाचा वापर करेल.</translation>
<translation id="6514010653036109809">उपलब्ध डिव्हाइस:</translation>
<translation id="6514565641373682518">या पृष्‍ठाने आपला माऊस कर्सर अक्षम केला आहे.</translation>
-<translation id="6518014396551869914">प्रतिमा कॉ&amp;पी करा</translation>
-<translation id="651942933739530207">आपण <ph name="APP_NAME" /> नी आपली स्क्रीन आणि ऑडिओ इनपुट सामायिक करावी असे इच्छिता?</translation>
+<translation id="6518014396551869914">इमेज कॉ&amp;पी करा</translation>
+<translation id="651942933739530207">आपण <ph name="APP_NAME" /> नी तुमची स्क्रीन आणि ऑडिओ इनपुट सामायिक करावी असे इच्छिता?</translation>
<translation id="6519437681804756269">[<ph name="TIMESTAMP" />]
<ph name="FILE_INFO" />
<ph name="EVENT_NAME" /></translation>
@@ -3658,7 +3658,7 @@
<translation id="662080504995468778">यावर रहा</translation>
<translation id="6621639333161417145"><ph name="PROVIDER" /> सोबत साइन इन करा</translation>
<translation id="6621715389962683284">नेटवर्क कनेक्शन इंस्टॉल केले जाऊ शकत नाही.</translation>
-<translation id="6622980291894852883">प्रतिमा अवरोधित करणे सुरू ठेवा</translation>
+<translation id="6622980291894852883">इमेज अवरोधित करणे सुरू ठेवा</translation>
<translation id="6624687053722465643">गोडवा</translation>
<translation id="6628328486509726751">अपलोड केलेली <ph name="WEBRTC_LOG_UPLOAD_TIME" /></translation>
<translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google ड्राइव्ह!<ph name="END_LINK" /> वर सर्व बॅकअप घेतला</translation>
@@ -3667,7 +3667,7 @@
<translation id="6639554308659482635">SQLite मेमरी</translation>
<translation id="6641138807883536517">यादृच्छिकपणे तयार केलेला सुरक्षित मॉड्यूल पासवर्ड उपलब्ध नाही. पॉवरवॉशनंतर असे होणे स्‍वाभाविक आहे.</translation>
<translation id="6643016212128521049">साफ करा</translation>
-<translation id="6644512095122093795">पासवर्ड जतन करण्यासाठी विचारा</translation>
+<translation id="6644512095122093795">पासवर्ड सेव्ह करण्यासाठी विचारा</translation>
<translation id="6644846457769259194">आपले डिव्हाइस अपडेट करीत आहे (<ph name="PROGRESS_PERCENT" />)</translation>
<translation id="6647228709620733774">Netscape प्रमाणन अधिकृतता निरस्तीकरण URL</translation>
<translation id="6647838571840953560">सध्या <ph name="CHANNEL_NAME" /> वर</translation>
@@ -3676,7 +3676,7 @@
<translation id="6649563841575838401">या संग्रह फॉर्मेटला सपोर्ट करत नाही किंवा फाइल खंडित आहे.</translation>
<translation id="665061930738760572">&amp;नवीन विंडोमध्ये उघडा</translation>
<translation id="6651237644330755633">वेबसाइट ओळखण्‍यासाठी या प्रमाणपत्रावर विश्‍वास ठेवा</translation>
-<translation id="6653525630739667879">$1 वर जतन करु शकत नाही. सर्व संपादने डाउनलोड फोल्‍डरमधील $2 मध्ये जतन केली जातील.</translation>
+<translation id="6653525630739667879">$1 वर सेव्ह करु शकत नाही. सर्व संपादने डाउनलोड फोल्‍डरमधील $2 मध्ये सेव्ह केली जातील.</translation>
<translation id="665355505818177700">Chrome <ph name="MS_AD_NAME" /> संकलन फक्‍त x86_64 प्‍लॅटफॉर्मला सपोर्ट करते. कोणत्‍याही ARM किंवा x86 प्‍लॅटफॉर्मवर बनवलेले Chromebooks ही सुविधा देत नाही.</translation>
<translation id="6655190889273724601">विकसक मोड</translation>
<translation id="6655458902729017087">खाती लपवा</translation>
@@ -3754,7 +3754,7 @@
<translation id="6778959797435875428">साइट सशब्द करा</translation>
<translation id="677965093459947883">खूप लहान</translation>
<translation id="6780439250949340171">अन्य सेटिंग्ज व्यवस्थापित करा</translation>
-<translation id="6782111308708962316">तृतीय-पक्ष वेबसाइटना कुकी डेटा जतन करण्यास आणि वाचण्यास प्रतिबंधित करा</translation>
+<translation id="6782111308708962316">तृतीय-पक्ष वेबसाइटना कुकी डेटा सेव्ह करण्यास आणि वाचण्यास प्रतिबंधित करा</translation>
<translation id="6786747875388722282">विस्तार</translation>
<translation id="6787839852456839824">कीबोर्ड शॉर्टकट</translation>
<translation id="6788210894632713004">पॅक न केलेला विस्तार</translation>
@@ -3780,7 +3780,7 @@
<translation id="6817174620439930047">MIDI डिव्हाइसमध्‍ये प्रवेश करण्यासाठी जेव्हा एखादी साइट सिस्टम अनन्य संदेश वापरू इच्छिते तेव्हा विचारा (शिफारस केलेले)</translation>
<translation id="6820687829547641339">Gzip संकीर्ण tar संग्रहण</translation>
<translation id="682123305478866682">डेस्कटॉप कास्ट करा</translation>
-<translation id="6823506025919456619">आपली डिव्हाइसेस पाहण्यासाठी आपल्याला Chrome वर साइन इन करणे आवश्यक आहे</translation>
+<translation id="6823506025919456619">तुमची डिव्हाइसेस पाहण्यासाठी आपल्याला Chrome वर साइन इन करणे आवश्यक आहे</translation>
<translation id="6824564591481349393">&amp;ईमेल पत्ता कॉपी करा</translation>
<translation id="6825184156888454064">नावानुसार क्रमाने लावा</translation>
<translation id="6827236167376090743">हा व्हिडिओ प्रदीर्घ काळापर्यंत प्ले होत राहील.</translation>
@@ -3806,7 +3806,7 @@
<translation id="6856623341093082836">आपल्या टचस्क्रीनची अचूकता सेट करा आणि समायोजित करा</translation>
<translation id="6860097299815761905">प्रॉक्सी सेटिंग्ज...</translation>
<translation id="6860427144121307915">एका टॅबमध्ये उघडा</translation>
-<translation id="6862635236584086457">या फोल्डरमध्ये जतन केलेल्या सर्व फायलींचा स्वयंचलितपणे ऑनलाइन बॅक अप घेतला जातो</translation>
+<translation id="6862635236584086457">या फोल्डरमध्ये सेव्ह केलेल्या सर्व फायलींचा स्वयंचलितपणे ऑनलाइन बॅक अप घेतला जातो</translation>
<translation id="6865313869410766144">स्वयं-भरण फॉर्म डेटा</translation>
<translation id="686664946474413495">रंगाचे तापमान</translation>
<translation id="6867678160199975333"><ph name="NEW_PROFILE_NAME" /> वर स्विच करा</translation>
@@ -3814,8 +3814,8 @@
<translation id="6871644448911473373">OCSP प्रतिसादकर्ता: <ph name="LOCATION" /></translation>
<translation id="6872781471649843364">तुम्ही टाकलेला पासवर्ड सर्व्हरने नाकारला होता.</translation>
<translation id="687588960939994211">तसेच या डिव्हाइसवर संचयित केलेला आपला इतिहास, बुकमार्क, सेटिंग्ज आणि अन्य Chrome डेटा साफ करा.</translation>
-<translation id="6880587130513028875">या पृष्ठावरील प्रतिमा अवरोधित केलेल्या होत्या.</translation>
-<translation id="6883319974225028188">अरेरे! डिव्हाइस कॉन्फिगरेशन जतन करण्यात सिस्टम अयशस्वी झाले.</translation>
+<translation id="6880587130513028875">या पृष्ठावरील इमेज अवरोधित केलेल्या होत्या.</translation>
+<translation id="6883319974225028188">अरेरे! डिव्हाइस कॉन्फिगरेशन सेव्ह करण्यात सिस्टम अयशस्वी झाले.</translation>
<translation id="6885771755599377173">सिस्टम माहिती पूर्वावलोकन</translation>
<translation id="6886871292305414135">नवीन &amp;टॅबमध्ये दुवा उघडा</translation>
<translation id="6892812721183419409"><ph name="USER" /> म्हणून दुवा उघडा</translation>
@@ -3850,7 +3850,7 @@
<translation id="6943836128787782965">HTTP अयशस्वी झाले</translation>
<translation id="6945221475159498467">निवडा</translation>
<translation id="694592694773692225">या पेजवर रीडिरेक्‍ट ब्लॉक केले.</translation>
-<translation id="6949306908218145636">उघडी पृष्ठे बुकमार्क करा...</translation>
+<translation id="6949306908218145636">उघडी पेज बुकमार्क करा...</translation>
<translation id="6951153907720526401">पेमेंट हँडलर</translation>
<translation id="6955446738988643816">पॉपअपची तपासणी करा</translation>
<translation id="6957231940976260713">सेवेचे नाव</translation>
@@ -3861,7 +3861,7 @@
<translation id="6965978654500191972">डिव्हाइस</translation>
<translation id="6968288415730398122">स्क्रीन लॉक कॉन्फिगर करण्यासाठी आपला पासवर्ड एंटर करा</translation>
<translation id="6970480684834282392">प्रारंभ वेळ</translation>
-<translation id="6970856801391541997">विशिष्ट पृष्ठे प्रिंट करा</translation>
+<translation id="6970856801391541997">विशिष्ट पेज प्रिंट करा</translation>
<translation id="6972180789171089114">ऑडिओ/व्हिडिओ</translation>
<translation id="6973630695168034713">फोल्डर</translation>
<translation id="6976108581241006975">JavaScript कन्सोल</translation>
@@ -3873,12 +3873,12 @@
<translation id="6980462514016882061">शोध, जाहिरात आणि इतर Google सेवा वैयक्तीकृत करण्यासाठी Google आपल्या ब्राउझिंग इतिहासाचा वापर करू शकते</translation>
<translation id="6981982820502123353">प्रवेशयोग्यता</translation>
<translation id="6983783921975806247">नोंदणीकृत OID</translation>
-<translation id="6983991971286645866">सर्व संपादने $1 वर जतन केली जातील.</translation>
+<translation id="6983991971286645866">सर्व संपादने $1 वर सेव्ह केली जातील.</translation>
<translation id="6984299437918708277">साइन-इन स्क्रीनवर आपल्या खात्यासाठी प्रदर्शित करण्याकरिता एक चित्र निवडा</translation>
<translation id="6985235333261347343">Microsoft Key Recovery Agent</translation>
<translation id="6985276906761169321">आयडी:</translation>
<translation id="6985607387932385770">प्रिंटर</translation>
-<translation id="6990081529015358884">आपली जागा समाप्त झाली आहे</translation>
+<translation id="6990081529015358884">तुमची जागा समाप्त झाली आहे</translation>
<translation id="6990778048354947307">गडद थीम</translation>
<translation id="6991665348624301627">एक गंतव्य निवडा</translation>
<translation id="699220179437400583">Google कडे संभाव्य सुरक्षितता घटनांच्या तपशीलांचा स्वयंचलितपणे अहवाल द्या</translation>
@@ -3891,7 +3891,7 @@
<translation id="7003339318920871147">वेब डेटाबेस</translation>
<translation id="7003723821785740825">आपले डिव्हाइस अनलॉक करण्‍यासाठी एक द्रुत मार्ग सेट करा</translation>
<translation id="7004499039102548441">अलीकडील टॅब</translation>
-<translation id="7005848115657603926">अवैध पृष्ठ श्रेणी, <ph name="EXAMPLE_PAGE_RANGE" /> वापरा</translation>
+<translation id="7005848115657603926">अवैध पृष्ठ वर्गवारी, <ph name="EXAMPLE_PAGE_RANGE" /> वापरा</translation>
<translation id="7006634003215061422">तळाचा समास</translation>
<translation id="7006844981395428048">$1 ऑडिओ</translation>
<translation id="7007648447224463482">सर्व नवीन विंडोमध्ये उघडा</translation>
@@ -3940,7 +3940,7 @@
<translation id="7072443932141968602"><ph name="PLUGIN_NAME" /> केवळ डेस्कटॉपवर काम करते</translation>
<translation id="707392107419594760">आपला कीबोर्ड निवडा:</translation>
<translation id="7075513071073410194">PKCS #1 MD5 With RSA कूटबद्धीकरण</translation>
-<translation id="7075625805486468288">आपली HTTPS/SSL प्रमाणपत्रे आणि सेटिंग्ज व्यवस्थापित करा</translation>
+<translation id="7075625805486468288">तुमची HTTPS/SSL प्रमाणपत्रे आणि सेटिंग्ज व्यवस्थापित करा</translation>
<translation id="7076293881109082629">साइन इन करीत आहे</translation>
<translation id="7077829361966535409">वर्तमान प्रॉक्सी सेटिंग्ज वापरून साइन-इन पृष्ठ लोड करण्यास अयशस्वी झाले. कृपया <ph name="GAIA_RELOAD_LINK_START" />पुन्हा साइन इन करण्याचा प्रयत्न करा<ph name="GAIA_RELOAD_LINK_END" />, किंवा भिन्न <ph name="PROXY_SETTINGS_LINK_START" />प्रॉक्सी सेटिंग्ज<ph name="PROXY_SETTINGS_LINK_END" /> वापरा.</translation>
<translation id="7078120482318506217">सर्व नेटवर्क</translation>
@@ -3956,7 +3956,7 @@
<translation id="7093434536568905704">GTK+</translation>
<translation id="7093866338626856921">या नावाच्या डिव्हाइसेससह डेटा अदलाबदल करा: <ph name="HOSTNAMES" /></translation>
<translation id="7096108453481049031">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया आपले नेटवर्क कनेक्शन तपासा आणि नंतर पुन्हा प्रयत्न करा.</translation>
-<translation id="7098447629416471489">इतर जतन शोध इंजिन येथे दिसून येतील</translation>
+<translation id="7098447629416471489">इतर सेव्ह शोध इंजिन येथे दिसून येतील</translation>
<translation id="7099337801055912064">मोठ्या PPD लोड करू शकत नाही. कमाल आकार 250kB आहे.</translation>
<translation id="7100897339030255923"><ph name="COUNT" /> आयटम निवडले</translation>
<translation id="7102687220333134671">स्वयंचलित अपडेट चालू केली आहेत</translation>
@@ -3996,7 +3996,7 @@
<translation id="7155171745945906037">कॅमेरा किंवा फाईल मधील विद्यमान फोटो</translation>
<translation id="7156235233373189579">ही फाईल Windows सॉफ्टवेअर वापरून एका PC साठी डीझाइन केली आहे. ही Chrome OS चालविणार्‍या आपल्या डिव्हाइसशी सुसंगत नाही. कृपया एका सोयीस्कर प्रतिस्थापन अॅप साठी <ph name="BEGIN_LINK" />Chrome वेब स्टोअर<ph name="END_LINK" /> शोधा.<ph name="BEGIN_LINK_HELP" />अधिक जाणून घ्या<ph name="END_LINK_HELP" /></translation>
<translation id="7165320105431587207">नेटवर्क कॉन्फिगर करण्यात अयशस्वी</translation>
-<translation id="716640248772308851">"<ph name="EXTENSION" />" प्रतिमा, व्हिडिओ आणि चेक केलेल्या स्थानांमधील ध्वनी फायली वाचू शकते.</translation>
+<translation id="716640248772308851">"<ph name="EXTENSION" />" इमेज, व्हिडिओ आणि चेक केलेल्या स्थानांमधील ध्वनी फायली वाचू शकते.</translation>
<translation id="7167486101654761064">&amp;नेहमी या प्रकारच्या फाइल्स उघडा</translation>
<translation id="716810439572026343"><ph name="FILE_NAME" /> डाउनलोड करीत आहे</translation>
<translation id="7168109975831002660">किमान फॉन्ट आकार</translation>
@@ -4082,7 +4082,7 @@
<translation id="729583233778673644">AES आणि RC4 एंक्रिप्‍शनला अनुमती द्या. हा पर्याय वापरल्याने तुमचा धोका वाढतो, कारण RC4 सायफर असुरक्षित आहेत.</translation>
<translation id="7296774163727375165"><ph name="DOMAIN" /> अटी</translation>
<translation id="7297443947353982503">वापरकर्तानाव/पासवर्ड चुकीचा किंवा EAP-प्रमाणीकरण अयशस्वी</translation>
-<translation id="729761647156315797">आपली भाषा आणि कीबोर्ड निवडा</translation>
+<translation id="729761647156315797">तुमची भाषा आणि कीबोर्ड निवडा</translation>
<translation id="7299337219131431707">अतिथी ब्राउझिंग सक्षम करा</translation>
<translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{हे अ‍ॅप्लिकेशन Chrome ला योग्यरीत्या कार्य करण्यापासून रोखू शकते.}one{हे अ‍ॅप्लिकेशन Chrome ला योग्यरीत्या कार्य करण्यापासून रोखू शकते.}other{ही अ‍ॅप्लिकेशन Chrome ला योग्यरीत्या कार्य करण्यापासून रोखू शकतात.}}</translation>
<translation id="7303900363563182677">या साइटला क्लिपबोर्डवर कॉपी केलेला मजकूर आणि इमेज पाहण्यापासून ब्लॉक केले आहे</translation>
@@ -4108,7 +4108,7 @@
<translation id="7340650977506865820">साइट तुमची स्क्रीन शेअर करत आहे</translation>
<translation id="7345706641791090287">आपल्या संकेतशब्दाची पुष्टी करा</translation>
<translation id="7346909386216857016">ठीक आहे, समजले</translation>
-<translation id="7347751611463936647">हा विस्तार वापरण्यासाठी, "<ph name="EXTENSION_KEYWORD" />", नंतर TAB, नंतर आपली आज्ञा किंवा शोध टाइप करा.</translation>
+<translation id="7347751611463936647">हा विस्तार वापरण्यासाठी, "<ph name="EXTENSION_KEYWORD" />", नंतर TAB, नंतर तुमची आज्ञा किंवा शोध टाइप करा.</translation>
<translation id="7348093485538360975">ऑन-स्क्रीन कीबोर्ड</translation>
<translation id="7352651011704765696">काहीतरी चूक झाली</translation>
<translation id="735745346212279324">VPN डिस्कनेक्ट केले</translation>
@@ -4240,7 +4240,7 @@
<translation id="7544853251252956727">शफल करा</translation>
<translation id="7545415673537747415"><ph name="BEGIN_LINK" />Google क्रियाकलाप नियंत्रणे<ph name="END_LINK" /> मधून शोध, जाहिरात आणि इतर Google सेवा वैयक्तीकृत करण्यासाठी Google आपला ब्राउझिंग इतिहास कसा वापरते ते नियंत्रित करा.</translation>
<translation id="7545809182698428577">येथे सूचीबद्ध केलेली वैशिष्ट्ये सुरू करते. तुमची ब्राउझर अ‍ॅक्टिव्हिटी तुम्ही भेट दिलेल्या काही साइटवरील आशय आणि पर्सनलायझेशनसाठी अन्य ब्राउझर सुसंवाद वापरते.</translation>
-<translation id="7547317915858803630">चेतावणी: आपली <ph name="PRODUCT_NAME" /> सेटिंग्ज एका नेटवर्क ड्राइव्हवर संचयित करण्यात आली आहेत. यामुळे वेग मंदावणे, क्रॅश किंवा डेटा गमावणे हे परिणाम देखील होऊ शकतात.</translation>
+<translation id="7547317915858803630">चेतावणी: तुमची <ph name="PRODUCT_NAME" /> सेटिंग्ज एका नेटवर्क ड्राइव्हवर संचयित करण्यात आली आहेत. यामुळे वेग मंदावणे, क्रॅश किंवा डेटा गमावणे हे परिणाम देखील होऊ शकतात.</translation>
<translation id="7547483330017600937">तुमच्या <ph name="DEVICE_TYPE" /> वर डेव्हलप करा. तुमची स्थानिक अॅप्स आणि कमांड लाइन साधने अखंड आणि सुरक्षितपणे चालवू शकता.
<ph name="APP_NAME" /> इंस्टॉल केल्याने <ph name="DOWNLOAD_SIZE" /> डेटा डाउनलोड होईल</translation>
<translation id="7548856833046333824">लेमोनेड</translation>
@@ -4298,7 +4298,7 @@
<translation id="7632948528260659758">खालील कियोस्‍क अ‍ॅप्स अद्यतनांसाठी अयशस्‍वी झाले आहेत:</translation>
<translation id="763632859238619983">कोणत्याही साइटला पेमेंट हँडलर इंस्टॉल करण्याची अनुमती देऊ नका</translation>
<translation id="7639178625568735185">समजले!</translation>
-<translation id="764017888128728">आपण जतन केलेल्या संकेतशब्दासह <ph name="PASSWORD_MANAGER_BRAND" /> स्वयंचलितपणे आपल्याला पात्र असलेल्या साइटमध्ये साइन इन करते.</translation>
+<translation id="764017888128728">आपण सेव्ह केलेल्या संकेतशब्दासह <ph name="PASSWORD_MANAGER_BRAND" /> स्वयंचलितपणे आपल्याला पात्र असलेल्या साइटमध्ये साइन इन करते.</translation>
<translation id="7645176681409127223"><ph name="USER_NAME" /> (मालक)</translation>
<translation id="7648992873808071793">या डिव्हाइसवर फायली संचयित करा</translation>
<translation id="7649070708921625228">मदत</translation>
@@ -4308,7 +4308,7 @@
<translation id="7654941827281939388">हे खाते या संगणकावर याआधीच वापरण्‍यात येत आहे.</translation>
<translation id="7658239707568436148">रद्द करा</translation>
<translation id="7659584679870740384">आपण हे डिव्हाइस वापरण्यासाठी प्राधिकृत नाही. कृपया साइन इन करण्याच्या परवानगीसाठी प्रशासकाशी संपर्क साधा.</translation>
-<translation id="7661259717474717992">कुकी डेटा जतन करण्यास आणि वाचण्यास साइटना अनुमती द्या</translation>
+<translation id="7661259717474717992">कुकी डेटा सेव्ह करण्यास आणि वाचण्यास साइटना अनुमती द्या</translation>
<translation id="7661451191293163002">नोंदणी प्रमाणपत्र प्राप्त करणे शक्य झाले नाही.</translation>
<translation id="7662283695561029522">कॉन्फिगर करण्यासाठी टॅप करा</translation>
<translation id="7663719505383602579">प्राप्तकर्ता: <ph name="ARC_PROCESS_NAME" /></translation>
@@ -4360,7 +4360,7 @@
<translation id="774465434535803574">Pack विस्तार एरर</translation>
<translation id="7748528009589593815">मागील टॅब</translation>
<translation id="7751260505918304024">सर्व दर्शवा</translation>
-<translation id="7754704193130578113">डाउनलोड करण्यापूर्वी प्रत्येक फाइल कोठे जतन करावी ते विचारा</translation>
+<translation id="7754704193130578113">डाउनलोड करण्यापूर्वी प्रत्येक फाइल कोठे सेव्ह करावी ते विचारा</translation>
<translation id="7758450972308449809">आपल्या प्रदर्शनाच्या सीमा समायोजित करा</translation>
<translation id="7760004034676677601">आपण अपेक्षा करत होता हे तेच प्रारंभ पृष्ठ आहे?</translation>
<translation id="7764225426217299476">पत्ता जोडा</translation>
@@ -4383,7 +4383,7 @@
<translation id="7786889348652477777">&amp;अ‍ॅप रीलोड करा</translation>
<translation id="7787129790495067395">आपण सध्या सांकेतिक वाक्यांश वापरत आहात. आपण आपला सांकेतिक वाक्यांश विसरल्यास, आपण Google च्या सर्व्हरवरून आपला डेटा साफ करण्यासाठी Google Dashboard वापरून समक्रमण रीसेट करू शकता.</translation>
<translation id="7787308148023287649">दुसऱ्या स्क्रीनवर प्रदर्शित करा</translation>
-<translation id="7788080748068240085">"<ph name="FILE_NAME" />" फाइल ऑफलाइन जतन करण्यासाठी आपण अतिरिक्त <ph name="TOTAL_FILE_SIZE" /> जागा मोकळी करणे आवश्‍यक आहे:<ph name="MARKUP_1" />
+<translation id="7788080748068240085">"<ph name="FILE_NAME" />" फाइल ऑफलाइन सेव्ह करण्यासाठी आपण अतिरिक्त <ph name="TOTAL_FILE_SIZE" /> जागा मोकळी करणे आवश्‍यक आहे:<ph name="MARKUP_1" />
<ph name="MARKUP_2" />आपल्याला ऑफलाइन प्रवेश करण्‍याची यापुढे आवश्यकता नसलेल्या फायली अनपिन करा<ph name="MARKUP_3" />
<ph name="MARKUP_4" />आपल्या डाउनलोड फोल्डरमधून फायली हटवा<ph name="MARKUP_5" /></translation>
<translation id="7788298548579301890">आपल्‍या संगणकावरील दुसर्‍या प्रोग्रामने एक अ‍ॅप जोडला जो Chrome ची कार्य करण्‍याची पद्धत कदाचित बदलू शकतो.
@@ -4415,7 +4415,7 @@
तुमचा Google ड्राइव्ह कोटा पुरेसा मोठा नाही. अतिरिक्त <ph name="FILE_SIZE" /> आवश्यक आहे.
<ph name="LINE_BREAK2" />
अगदी थोडे फोटो निवडण्याचा प्रयत्न करा.</translation>
-<translation id="782590969421016895">वर्तमान पृष्ठे वापरा</translation>
+<translation id="782590969421016895">वर्तमान पेज वापरा</translation>
<translation id="7829298379596169484">ऑडिओ इनपुटमध्‍ये प्रवेश करीत आहे</translation>
<translation id="7831491651892296503">नेटवर्क कॉन्फिगर करताना एरर आली</translation>
<translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
@@ -4432,7 +4432,7 @@
<translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" /> वर स्विच करण्यासाठी Ctrl + Alt + S दाबा</translation>
<translation id="7847644661628718598">चटकन नोंदणी करण्यासाठी बूटस्ट्रॅपिंग अ‍ॅप वापरा</translation>
<translation id="7849264908733290972">नवीन टॅबमध्ये &amp;प्रतिमा उघडा</translation>
-<translation id="784934925303690534">वेळ श्रेणी</translation>
+<translation id="784934925303690534">वेळ वर्गवारी</translation>
<translation id="7850851215703745691">या ड्राइव्ह फायली अद्याप सामायिक केल्या नाहीत</translation>
<translation id="7851457902707056880">साइन इन केवळ मालकाच्या खात्यावर प्रतिबंधित आहे. कृपया रिबूट करा आणि मालक खात्यासह साइन इन करा. मशीन 30 सेकंदांमध्ये स्वयं रिबूट होईल.</translation>
<translation id="7851716364080026749">नेहमी कॅमेरा आणि मायक्रोफोन प्रवेश अवरोधित करा</translation>
@@ -4486,7 +4486,7 @@
<translation id="7925686952655276919">समक्रमणासाठी मोबाइल डेटा वापरु नका</translation>
<translation id="7926423016278357561">ही व्यक्ती मी नाही.</translation>
<translation id="7928710562641958568">डिव्हाइस काढून टाका</translation>
-<translation id="79312157130859720"><ph name="APP_NAME" /> आपली स्क्रीन आणि ऑडिओ सामायिक करीत आहे</translation>
+<translation id="79312157130859720"><ph name="APP_NAME" /> तुमची स्क्रीन आणि ऑडिओ सामायिक करीत आहे</translation>
<translation id="7931318309563332511">अनोळखी</translation>
<translation id="7934414805353235750"><ph name="URL" /> ला संरक्षित आशय चालू करायचा आहे. तुमच्या डिव्हाइसची ओळख Google द्वारे पडताळली जाईल</translation>
<translation id="7938594894617528435">सध्या ऑफलाइन</translation>
@@ -4507,7 +4507,7 @@
<translation id="7957615753207896812">कीबोर्ड डिव्हाइस सेटिंग्ज उघडा</translation>
<translation id="7959074893852789871">फाइलमध्ये एकाधिक प्रमाणपत्रे आहेत, यापैकी काही आयात झाली नाहीत: </translation>
<translation id="7961015016161918242">कधीही नाही</translation>
-<translation id="7966241909927244760">प्रतिमा पत्ता कॉपी करा</translation>
+<translation id="7966241909927244760">इमेज पत्ता कॉपी करा</translation>
<translation id="7968742106503422125">आपण कॉपी आणि पेस्ट करता तो डेटा वाचा आणि सुधारित करा</translation>
<translation id="7968833647796919681">कार्यप्रदर्शन डेटा संकलन सक्षम करा</translation>
<translation id="7972714317346275248">PKCS #1 RSA कूटबद्धीकरणासह SHA-384</translation>
@@ -4525,7 +4525,7 @@
<translation id="7982789257301363584">नेटवर्क</translation>
<translation id="7984068253310542383">मिरर <ph name="DISPLAY_NAME" /></translation>
<translation id="7984180109798553540">जोडलेल्या सुरक्षिततेसाठी, <ph name="PRODUCT_NAME" /> आपला डेटा कूटबद्ध करेल.</translation>
-<translation id="7986295104073916105">जतन केलेल्या पासवर्ड सेटिंग्ज वाचा आणि बदला</translation>
+<translation id="7986295104073916105">सेव्ह केलेल्या पासवर्ड सेटिंग्ज वाचा आणि बदला</translation>
<translation id="798749371774946697">मशीन नाव खूप मोठे आहे</translation>
<translation id="7988355189918024273">प्रवेश वैशिष्ट्ये सक्षम करा</translation>
<translation id="7994702968232966508">EAP पद्धत</translation>
@@ -4537,7 +4537,7 @@
विस्तार: <ph name="EXTENSION_FILE" />
की फाइल: <ph name="KEY_FILE" />
-आपली की फाइल एका सुरक्षित ठिकाणी ठेवा. आपल्या विस्ताराच्या नवीन आवृत्या तयार करण्यासाठी आपल्‍याला त्याची आवश्यकता असेल.</translation>
+तुमची की फाइल एका सुरक्षित ठिकाणी ठेवा. आपल्या विस्ताराच्या नवीन आवृत्या तयार करण्यासाठी आपल्‍याला त्याची आवश्यकता असेल.</translation>
<translation id="799923393800005025">पाहू शकते</translation>
<translation id="8000066093800657092">कोणतेही नेटवर्क नाही</translation>
<translation id="8001504501378762252">एका साइटने कदाचित तुमचा पासवर्ड चोरला असेल</translation>
@@ -4549,7 +4549,7 @@
<translation id="8012382203418782830">हे पृष्ठ भाषांतरित केले गेले आहे.</translation>
<translation id="8014154204619229810">अद्यतनकर्ता सध्या चालू आहे. पुन्हा तपासण्यासाठी एक मिनिटात रिफ्रेश करा.</translation>
<translation id="8014206674403687691"><ph name="IDS_SHORT_PRODUCT_NAME" /> पूर्वी इंस्टॉल केलेल्या आवृत्तीवर परत करण्यात अक्षम आहे. कृपया आपले डिव्हाइस Powerwash करण्यासाठी पुन्हा प्रयत्न करा.</translation>
-<translation id="8016266267177410919">तात्पुरता संचय</translation>
+<translation id="8016266267177410919">तात्पुरता स्टोरेज</translation>
<translation id="8017335670460187064"><ph name="LABEL" /></translation>
<translation id="8018313076035239964">वेबसाइट कोणती माहिती वापरू शकतात आणि कोणती सामग्री आपल्याला दर्शवू शकतात ते नियंत्रित करा</translation>
<translation id="8023801379949507775">त्वरित विस्तार अपडेट करा</translation>
@@ -4593,7 +4593,7 @@
<translation id="806812017500012252">शीर्षकानुसार पुन्हा क्रमवारी लावा</translation>
<translation id="8068253693380742035">साइन इन साठी स्पर्श करा</translation>
<translation id="8069615408251337349">Google क्लाउड प्रिंट</translation>
-<translation id="8071432093239591881">प्रतिमा म्हणून प्रिंट करा</translation>
+<translation id="8071432093239591881">इमेज म्हणून प्रिंट करा</translation>
<translation id="8072988827236813198">पिन टॅब</translation>
<translation id="8074127646604999664">अलीकडे बंद केलेल्या साइटना डेटा पाठविणे आणि प्राप्त करणे समाप्त करण्याची अनुमती द्या</translation>
<translation id="8075191520954018715">मेमरी स्थिती</translation>
@@ -4619,7 +4619,7 @@
<translation id="8111155949205007504">आपल्या iPhone सह हा पासवर्ड शेअर करा</translation>
<translation id="8113043281354018522">परवाना प्रकार निवडा</translation>
<translation id="8116190140324504026">अधिक माहिती...</translation>
-<translation id="8116925261070264013">म्युट केले</translation>
+<translation id="8116925261070264013">म्यूट केले</translation>
<translation id="8116972784401310538">&amp;बुकमार्क व्यवस्थापक</translation>
<translation id="8117620576188476503">स्थिती ट्रेने कनेक्शन, अपडेट आणि सेटिंग्ज व्यवस्थापित करा. येथे कीबोर्डने येण्यासाठी, Alt + Shift + S दाबा.</translation>
<translation id="8118362518458010043">Chrome ने बंद केले आहे. हा विस्तार असुरक्षित असू शकतो.</translation>
@@ -4657,7 +4657,7 @@
<translation id="8177196903785554304">नेटवर्क तपशील</translation>
<translation id="8179976553408161302">Enter</translation>
<translation id="8180239481735238521">पृष्ठ</translation>
-<translation id="8180786512391440389">"<ph name="EXTENSION" />" चेक केलेल्या स्थानांमधील प्रतिमा, व्हिडिओ आणि ध्वनी फायली वाचू आणि हटवू शकते.</translation>
+<translation id="8180786512391440389">"<ph name="EXTENSION" />" चेक केलेल्या स्थानांमधील इमेज, व्हिडिओ आणि ध्वनी फायली वाचू आणि हटवू शकते.</translation>
<translation id="8184288427634747179"><ph name="AVATAR_NAME" /> वर स्विच करा</translation>
<translation id="8185331656081929126">नेटवर्कवर नवीन प्रिंटर आढळतात तेव्हा सूचना दर्शवा</translation>
<translation id="8186609076106987817">सर्व्हर फाइल शोधू शकले नाही.</translation>
@@ -4680,7 +4680,7 @@
<translation id="8214489666383623925">फाइल उघडा...</translation>
<translation id="8214962590150211830">या व्यक्तीस काढा</translation>
<translation id="8217399928341212914">एकाधिक फायलींचे स्वयंचलित डाउनलोड अवरोधित करणे सुरू ठेवा</translation>
-<translation id="8223479393428528563">ऑफलाइन वापराकरिता या फायली जतन करण्यासाठी, परत ऑनलाइन व्‍हा, फायलींवर उजवे-क्लिक करा आणि <ph name="OFFLINE_CHECKBOX_NAME" /> पर्याय निवडा.</translation>
+<translation id="8223479393428528563">ऑफलाइन वापराकरिता या फायली सेव्ह करण्यासाठी, परत ऑनलाइन व्‍हा, फायलींवर उजवे-क्लिक करा आणि <ph name="OFFLINE_CHECKBOX_NAME" /> पर्याय निवडा.</translation>
<translation id="8226222018808695353">निषिद्ध केलेले</translation>
<translation id="8226619461731305576">रांग</translation>
<translation id="8226742006292257240">खाली यादृच्छिकपणे व्युत्पन्न केलेला TPM पासवर्ड आहे जो आपल्‍या संगणकासाठी नियुक्त केला गेला आहे:</translation>
@@ -4739,7 +4739,7 @@
<translation id="8312871300878166382">फोल्डरमध्ये पेस्ट करा</translation>
<translation id="8317671367883557781">नेटवर्क कनेक्शन जोडा</translation>
<translation id="8319414634934645341">विस्तारित की वापर</translation>
-<translation id="8320459152843401447">आपली संपूर्ण स्क्रीन</translation>
+<translation id="8320459152843401447">तुमची संपूर्ण स्क्रीन</translation>
<translation id="8322814362483282060">या पृष्ठाला आपल्या मायक्रोफोनवर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
<translation id="8326478304147373412">PKCS #7, प्रमाणपत्र श्रृंखला</translation>
<translation id="8329978297633540474">साधा मजकूर</translation>
@@ -4756,10 +4756,10 @@
<translation id="8353683614194668312">ते करू शकते:</translation>
<translation id="8356197132883132838"><ph name="TITLE" /> - <ph name="COUNT" /></translation>
<translation id="8357224663288891423">विस्तार आणि अॅप्स साठी कीबोर्ड शॉर्टकट</translation>
-<translation id="8358685469073206162">पृष्ठे पुनर्संचयित करायची?</translation>
+<translation id="8358685469073206162">पेज पुनर्संचयित करायची?</translation>
<translation id="8363095875018065315">स्थिर</translation>
<translation id="8363142353806532503">मायक्रोफोन ब्लॉक केला आहे</translation>
-<translation id="8366396658833131068">आपली नेटवर्क कनेक्टिव्हिटी पुनर्संचयित झाली आहे. कृपया एक भिन्न नेटवर्क निवडा किंवा आपला कियोस्क अॅप लाँच करण्यासाठी खालील 'सुरु ठेवा' बटण दाबा.</translation>
+<translation id="8366396658833131068">तुमची नेटवर्क कनेक्टिव्हिटी पुनर्संचयित झाली आहे. कृपया एक भिन्न नेटवर्क निवडा किंवा आपला कियोस्क अॅप लाँच करण्यासाठी खालील 'सुरु ठेवा' बटण दाबा.</translation>
<translation id="8366947248864804596">तुमचा फोन अनलॉक आणि जवळपास असताना फक्त अनलॉक निवडा. अन्यथा तुमचा पासवर्ड किंवा पिन टाका.</translation>
<translation id="8368859634510605990">सर्व बुकमार्क &amp;उघडा</translation>
<translation id="8369547389711988632">लोड करणे थांबवा</translation>
@@ -4769,7 +4769,7 @@
<translation id="8381179624334829711">कॅमेरा सेटिंग्ज व्यवस्थापित करा...</translation>
<translation id="8382913212082956454">&amp;ईमेल पत्ता कॉपी करा</translation>
<translation id="8386903983509584791">स्कॅन पूर्ण झाले</translation>
-<translation id="8390029840652165810">कृपया आपले नेटवर्क कनेक्शन कार्यरत असल्याचे सुनिश्चित करा आणि समस्या कायम राहिल्यास, कृपया साइन आउट करा आणि आपली क्रेडेन्शियल रिफ्रेश करण्यासाठी पुन्हा साइन इन करा.</translation>
+<translation id="8390029840652165810">कृपया आपले नेटवर्क कनेक्शन कार्यरत असल्याचे सुनिश्चित करा आणि समस्या कायम राहिल्यास, कृपया साइन आउट करा आणि तुमची क्रेडेन्शियल रिफ्रेश करण्यासाठी पुन्हा साइन इन करा.</translation>
<translation id="8390449457866780408">सर्व्हर अनुपलब्ध.</translation>
<translation id="8392234662362215700">कीबोर्ड लेआउट वरून स्विच करण्यासाठी Control-Shift-Space दाबा.</translation>
<translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> साठी पर्याय मेनू</translation>
@@ -4780,7 +4780,7 @@
<translation id="839736845446313156">नोंदणी</translation>
<translation id="8398790343843005537">आपला फोन शोधा</translation>
<translation id="8398877366907290961">तरीही पुढे चला</translation>
-<translation id="8399276228600040370"><ph name="PASSWORD_MANAGER_BRAND" /> सह जतन केलेल्या आपल्या खात्यासह साइन इन करा</translation>
+<translation id="8399276228600040370"><ph name="PASSWORD_MANAGER_BRAND" /> सह सेव्ह केलेल्या आपल्या खात्यासह साइन इन करा</translation>
<translation id="8400146488506985033">लोकांना व्यवस्थापित करा</translation>
<translation id="8410073653152358832">हा फोन वापरा</translation>
<translation id="8410775397654368139">Google Play</translation>
@@ -4801,12 +4801,12 @@
<translation id="8437331208797669910">पृष्ठ प्रवेश</translation>
<translation id="843760761634048214">क्रेडिट कार्ड सेव्ह करा</translation>
<translation id="8438328416656800239">स्मार्ट ब्राउझरवर बदला</translation>
-<translation id="8439506636278576865">या भाषेमध्ये पृष्ठे भाषांतरीत करण्यासाठी ऑफर</translation>
+<translation id="8439506636278576865">या भाषेमध्ये पेज भाषांतरीत करण्यासाठी ऑफर</translation>
<translation id="8446884382197647889">अधिक जाणून घ्या</translation>
<translation id="8447409163267621480">एकतर Ctrl किंवा Alt समाविष्‍ट करा</translation>
<translation id="8448729345478502352">तुमच्या स्क्रीनवर आयटम लहान किंवा मोठे करा</translation>
<translation id="8449008133205184768">पेस्ट करा आणि शैली जुळवा</translation>
-<translation id="8449036207308062757">संचय व्यवस्थापित करा</translation>
+<translation id="8449036207308062757">स्टोरेज व्यवस्थापित करा</translation>
<translation id="8451512073679317615">साहाय्यक</translation>
<translation id="8452135315243592079">गहाळ सिम कार्ड</translation>
<translation id="8453482423012550001">$1 आयटम कॉपी करत आहे...</translation>
@@ -4823,7 +4823,7 @@
<translation id="8463955938112983119"><ph name="PLUGIN_NAME" /> अक्षम केले.</translation>
<translation id="8464132254133862871">हे वापरकर्ता खाते सेवेसाठी आदेय नाही.</translation>
<translation id="8465252176946159372">वैध नाही</translation>
-<translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> ला चालविण्यासाठी आपली परवानगी आवश्यक आहे.</translation>
+<translation id="8465444703385715657"><ph name="PLUGIN_NAME" /> ला चालविण्यासाठी तुमची परवानगी आवश्यक आहे.</translation>
<translation id="8466234950814670489">Tar संग्रहण</translation>
<translation id="8468750959626135884">Android फोनसह आपले <ph name="DEVICE_TYPE" /> अनलॉक करा.</translation>
<translation id="8470028084415844044">तुमच्या सर्व डिव्हाइसवर सर्व पासवर्ड मिळवण्यासाठी, सिंक सुरू करा.</translation>
@@ -4849,7 +4849,7 @@
<translation id="850875081535031620">कोणतेही हानिकारक सॉफ्टवेअर आढळले नाही</translation>
<translation id="8509646642152301857">शब्दलेखन तपासणी शब्दकोश डाउनलोड करणे अयशस्वी.</translation>
<translation id="8512476990829870887">प्रक्रिया समाप्त करा</translation>
-<translation id="851263357009351303"> <ph name="HOST" /> ना प्रतिमा दर्शविण्यासाठी नेहमी परवानगी द्या </translation>
+<translation id="851263357009351303"> <ph name="HOST" /> ना इमेज दर्शविण्यासाठी नेहमी परवानगी द्या </translation>
<translation id="8521475323816527629">तुमच्या अ‍ॅप्सवर पटकन जा</translation>
<translation id="8523493869875972733">बदल राहू द्या</translation>
<translation id="8523849605371521713">धोरणाने जोडले</translation>
@@ -4865,7 +4865,7 @@
<translation id="8545107379349809705">माहिती लपवा...</translation>
<translation id="8545575359873600875">क्षमस्व, आपला पासवर्ड सत्यापित केला जाऊ शकला नाही. या पर्यवेक्षी वापरकर्त्याच्या व्यवस्थापकाने अलीकडे संकेतश्द बदलला असू शकतो. तसे असल्यास, आपण पुढील वेळी साइन इन कराल तेव्हा नवीन पासवर्ड लागू केला जाईल. आपला जुना पासवर्ड वापरून पहा.</translation>
<translation id="8546186510985480118">डिव्हाइसवर स्थान कमी आहे</translation>
-<translation id="8546306075665861288">प्रतिमा कॅश </translation>
+<translation id="8546306075665861288">इमेज कॅश </translation>
<translation id="8546541260734613940">[*.]example.com</translation>
<translation id="854655314928502177">वेब प्रॉक्सी स्वयं शोध URL:</translation>
<translation id="8546930481464505581">स्पर्श बार कस्टमाइझ करा</translation>
@@ -4876,7 +4876,7 @@
<translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation>
<translation id="855773602626431402">या पृष्ठावर चालण्यापासून सॅन्डबॉक्स न केलेल्या प्लगिनला प्रतिबंधित करण्यात आले.</translation>
<translation id="8557930019681227453">मॅनिफेस्ट</translation>
-<translation id="8559694214572302298">प्रतिमा डीकोडर</translation>
+<translation id="8559694214572302298">इमेज डीकोडर</translation>
<translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation>
<translation id="8565650234829130278">अ‍ॅप श्रेणीअवनत करण्याचा प्रयत्न.</translation>
<translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> प्रिंट करत आहे</translation>
@@ -4927,14 +4927,14 @@
<translation id="8650543407998814195">जरी तुम्ही आता तुमची जुनी प्रोफाइल अ‍ॅक्सेस करू शकत नसलात, तरीही तुम्ही ती काढून टाकू शकता.</translation>
<translation id="8651585100578802546">सक्तीने हे पृष्ठ रीलोड करा</translation>
<translation id="8652400352452647993">पॅक विस्तार एरर</translation>
-<translation id="8652487083013326477">पृष्ठ श्रेणी रेडिओ बटण</translation>
+<translation id="8652487083013326477">पृष्ठ वर्गवारी रेडिओ बटण</translation>
<translation id="8654151524613148204">आपल्या संगणकाला हाताळण्‍यासाठी ही फाइल खूप मोठी आहे. क्षमस्व.</translation>
<translation id="8655295600908251630">खाडी</translation>
<translation id="8655319619291175901">अरेरे, काहीतरी चूक झाली.</translation>
<translation id="8655972064210167941">साइन-इन अयशस्वी झाले कारण आपला पासवर्ड सत्यापित करणे शक्य झाले नाही. कृपया आपल्‍या प्रशासकास संपर्क साधा किंवा पुन्हा प्रयत्न करा.</translation>
<translation id="8656768832129462377">तपासू नका</translation>
<translation id="8658595122208653918">प्रिंटर पर्याय बदला...</translation>
-<translation id="8658645149275195032"><ph name="APP_NAME" /> आपली स्क्रीन आणि ऑडिओ <ph name="TAB_NAME" /> सह सामायिक करीत आहे.</translation>
+<translation id="8658645149275195032"><ph name="APP_NAME" /> तुमची स्क्रीन आणि ऑडिओ <ph name="TAB_NAME" /> सह सामायिक करीत आहे.</translation>
<translation id="8659875081143553823">एकच सेकंद</translation>
<translation id="8661290697478713397">गु&amp;प्त विंडोमध्ये दुवा उघडा</translation>
<translation id="8662671328352114214"><ph name="TYPE" /> नेटवर्कमध्‍‍‍‍ये सामील व्‍हा</translation>
@@ -4976,7 +4976,7 @@
<translation id="8700934097952626751">व्हिडिओ शोध प्रारंभ करण्यासाठी क्लिक करा</translation>
<translation id="8704521619148782536">यास नेहमीपेक्षा जास्त वेळ लागत आहे. आपण प्रतीक्षा करु शकता किंवा रद्द करा आणि नंतर पुन्हा प्रयत्न करा.</translation>
<translation id="8705331520020532516">अनुक्रमांक</translation>
-<translation id="8705580154597116082">फोनद्वारे Wi-Fi उपलब्ध आहे</translation>
+<translation id="8705580154597116082">फोनद्वारे वाय-फाय उपलब्ध आहे</translation>
<translation id="8708000541097332489">बाहर पडताना साफ करा</translation>
<translation id="870805141700401153">Microsoft Individual Code Signing</translation>
<translation id="8708671767545720562">&amp;अधिक माहिती</translation>
@@ -5009,11 +5009,11 @@
<translation id="8743864605301774756">1 तासापूर्वी अपडेट करण्यात आले</translation>
<translation id="874689135111202667">{0,plural, =1{या साइटवर एक फाइल अपलोड करायची?}one{या साइटवर # फाइल अपलोड करायची?}other{या साइटवर # फायली अपलोड करायच्या?}}</translation>
<translation id="8749863574775030885">अज्ञात विक्रेत्याकडील USB डिव्हाइसेसवर प्रवेश करा</translation>
-<translation id="8754200782896249056">&lt;p&gt;समर्थित डेस्कटॉप परिस्थिती अंतर्गत <ph name="PRODUCT_NAME" /> चालविताना, सिस्टम प्रॉक्सी सेटिंग्ज वापरल्या जातील. तथापि, एकतर आपली सिस्टम समर्थित नसते किंवा आपले सिस्टम कॉन्फिगरेशन लाँच करताना समस्या आली.&lt;/p&gt;
+<translation id="8754200782896249056">&lt;p&gt;समर्थित डेस्कटॉप परिस्थिती अंतर्गत <ph name="PRODUCT_NAME" /> चालविताना, सिस्टम प्रॉक्सी सेटिंग्ज वापरल्या जातील. तथापि, एकतर तुमची सिस्टम समर्थित नसते किंवा आपले सिस्टम कॉन्फिगरेशन लाँच करताना समस्या आली.&lt;/p&gt;
&lt;/p&gt;परंतु आपण अद्याप आज्ञा रेखेद्वारे कॉन्फिगर करू शकता. कृपया ध्वजांकन आणि परिस्थिती चलांवरील अधिक माहितीसाठी &lt;code&gt;man <ph name="PRODUCT_BINARY_NAME" />&lt;/code&gt; पहा.&lt;/p&gt;</translation>
<translation id="8755376271068075440">&amp;विशाल</translation>
-<translation id="8757090071857742562">डेस्कटॉप कास्ट करण्यात अक्षम. आपली स्क्रीन सामायिक करणे प्रारंभ करण्यासाठी आपण सूचनेची पुष्टी केली किंवा नाही ते पाहण्यासाठी तपासा.</translation>
+<translation id="8757090071857742562">डेस्कटॉप कास्ट करण्यात अक्षम. तुमची स्क्रीन सामायिक करणे प्रारंभ करण्यासाठी आपण सूचनेची पुष्टी केली किंवा नाही ते पाहण्यासाठी तपासा.</translation>
<translation id="8757640015637159332">सार्वजनिक सत्र एंटर करा</translation>
<translation id="8757742102600829832">याच्याशी कनेक्ट करण्यासाठी एक Chromebox निवडा</translation>
<translation id="8757803915342932642">Google क्लाउड डिव्हाइसेसवरील डिव्हाइस</translation>
@@ -5024,7 +5024,7 @@
<translation id="8770507190024617908">लोकांना व्यवस्थापित करा</translation>
<translation id="8774934320277480003">शीर्ष समास</translation>
<translation id="8775144690796719618">अवैध URL</translation>
-<translation id="8775404590947523323">आपली संपादने स्वयंचलितपणे जतन केली जातात.<ph name="BREAKS" /> मूळ प्रतिमेची प्रत ठेवण्यासाठी ''मूळवर खाडाखोड करा'' अनचेक करा</translation>
+<translation id="8775404590947523323">तुमची संपादने स्वयंचलितपणे सेव्ह केली जातात.<ph name="BREAKS" /> मूळ प्रतिमेची प्रत ठेवण्यासाठी ''मूळवर खाडाखोड करा'' अनचेक करा</translation>
<translation id="8777628254805677039">मूळ संकतेशब्द</translation>
<translation id="8780443667474968681">व्हॉइस शोध बंद केले गेले आहे.</translation>
<translation id="878069093594050299">हे प्रमाणपत्र खालील वापरासाठी सत्यापित केलेले आहे:</translation>
@@ -5050,7 +5050,7 @@
<translation id="8808686172382650546">मांजर</translation>
<translation id="8813698869395535039"><ph name="USERNAME" /> मध्ये साइन इन करू शकत नाही</translation>
<translation id="8813811964357448561">कागदी पत्रक</translation>
-<translation id="8814190375133053267">Wi-Fi</translation>
+<translation id="8814190375133053267">वाय-फाय</translation>
<translation id="8814687660896548945">कृपया वाट पाहा, संग्रहण स्कॅन केले जात आहे...</translation>
<translation id="881799181680267069">अन्य लपवा</translation>
<translation id="8818152010000655963">वॉलपेपर</translation>
@@ -5066,14 +5066,14 @@
सेटिंग्ज<ph name="PROXY_SETTINGS_LINK_END" /> समायोजित करा.</translation>
<translation id="8834039744648160717"><ph name="USER_EMAIL" /> ने नेटवर्क कॉन्फिगरेशन नियंत्रित केले आहे.</translation>
<translation id="8834164572807951958">या आयटमच्या कॉपीवर '<ph name="DESTINATION_NAME" />' चे सदस्य अॅक्सेस मिळवतील.</translation>
-<translation id="8837103518490433332">आपण <ph name="PASSWORD_MANAGER_BRAND" /> नी <ph name="ORIGIN" /> साठी आपला पासवर्ड जतन करावा असे इच्छिता ?</translation>
+<translation id="8837103518490433332">आपण <ph name="PASSWORD_MANAGER_BRAND" /> नी <ph name="ORIGIN" /> साठी आपला पासवर्ड सेव्ह करावा असे इच्छिता ?</translation>
<translation id="8838770651474809439">हॅमबर्गर</translation>
<translation id="883911313571074303">प्रतिमेवर भाष्य करा</translation>
<translation id="8845001906332463065">मदत मिळवा</translation>
<translation id="8846141544112579928">कीबोर्डचा शोध घेत आहे...</translation>
<translation id="8847988622838149491">USB</translation>
<translation id="8858798938034909167">कोणत्याही डिव्हाइसवरून <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /> वर आपल्या संकेतशब्दांमध्ये प्रवेश करा</translation>
-<translation id="8859057652521303089">आपली भाषा निवडा:</translation>
+<translation id="8859057652521303089">तुमची भाषा निवडा:</translation>
<translation id="8859174528519900719">सबफ्रेम: <ph name="SUBFRAME_SITE" /></translation>
<translation id="8860454412039442620">Excel स्प्रेडशीट</translation>
<translation id="8862003515646449717">वेगवान ब्राउझरवर बदला</translation>
@@ -5105,7 +5105,7 @@
<translation id="8908902564709148335">चेतावणी: आपण या संगणकावर --स्क्रिप्‍ट-आवश्‍यक-क्रिया ध्वज सक्षम केला आहे, जो या विस्‍ताराच्या क्षमता मर्यादित करतो. तथापि, अन्य डिव्‍हाइसेस कदाचित या ध्वजास समर्थन देत नाही किंवा त्यांच्यावर तो सक्षम केलेला नसेल. या डिव्‍हाइसेसवर, हा विस्तार हे देखील करू शकतो:</translation>
<translation id="8909233240676134608">मशीन डोमेनशी जोडू शकत नाही. सर्व्हर नमूद केलेल्या Kerberos एंक्रिप्शन प्रकारांना सपोर्ट करत नाही. एंक्रिप्शन सेटिंग्जसाठी "अधिक पर्याय" पहा.</translation>
<translation id="8909833622202089127">साइट तुमचे स्थान ट्रॅक करत आहे</translation>
-<translation id="8910146161325739742">आपली स्क्रीन शेअर करा</translation>
+<translation id="8910146161325739742">तुमची स्क्रीन शेअर करा</translation>
<translation id="8910222113987937043">आपल्या बुकमार्क, इतिहास आणि अन्य सेटिंग्जसाठी बदल यापुढे आपल्या Google खात्यासह संकालित केले जाणार नाहीत. तथापि, आपला विद्यमान डेटा आपल्या Google खात्यामध्ये संग्रहित केलेला असेल आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वर व्यवस्थापित केला जाऊ शकतो.</translation>
<translation id="8912793549644936705">पसरवा</translation>
<translation id="8915370057835397490">सूचना लोड करीत आहे</translation>
@@ -5132,7 +5132,7 @@
<translation id="894871326938397531">गुप्त मोड सोडायचा?</translation>
<translation id="895347679606913382">प्रारंभ करीत आहे...</translation>
<translation id="8954952943849489823">हलविणे अयशस्वी अनपेक्षित एरर: $1</translation>
-<translation id="895586998699996576">$1 प्रतिमा</translation>
+<translation id="895586998699996576">$1 इमेज</translation>
<translation id="8957423540740801332">उजवे</translation>
<translation id="895944840846194039">JavaScript मेमरी</translation>
<translation id="8959810181433034287">साइन इन करण्यासाठी पर्यवेक्षी वापरकर्त्यास हा पासवर्ड वापरण्याची आवश्यकता असेल, म्हणून एक सुरक्षित पासवर्ड निवडा आणि पर्यवेक्षी वापरकर्त्यासह त्याची चर्चा करण्याचे लक्षात ठेवा.</translation>
@@ -5188,7 +5188,7 @@
<translation id="9037008143807155145">https://www.google.com/calendar/render?cid=%s</translation>
<translation id="9037965129289936994">मूळ दर्शवा</translation>
<translation id="9038430547971207796">पुढील वेळेस तुमचा फोन तुमचे <ph name="DEVICE_TYPE" /> अनलॉक करेल. सेटिंग्जमधून Smart Lock बंद करा.</translation>
-<translation id="9038649477754266430">पृष्ठे अधिक द्रुतपणे लोड करण्यासाठी पूर्वानुमान सेवेचा वापर करा</translation>
+<translation id="9038649477754266430">पेज अधिक द्रुतपणे लोड करण्यासाठी पूर्वानुमान सेवेचा वापर करा</translation>
<translation id="9039663905644212491">PEAP</translation>
<translation id="9039890312082871605">टॅब निःशब्द करा</translation>
<translation id="9041692268811217999">तुमच्या अॅडमिनिस्ट्रेटरने तुमच्या मशीनवरील स्थानिक फायलींचा अ‍ॅक्सेस बंद केला आहे</translation>
@@ -5214,7 +5214,7 @@
<translation id="9070219033670098627">व्यक्ती स्विच करा</translation>
<translation id="907148966137935206">कोणत्याही साइटला पॉप-अप दर्शविण्याची परवानगी देऊ नका (शिफारस केलेले)</translation>
<translation id="9071637495340542136"><ph name="APP_NAME" /> इंस्टॉल करत आहे…</translation>
-<translation id="9072550133391925347">आपण जतन केलेल्या संकेतशब्दासह <ph name="PASSWORD_MANAGER_BRAND" /> स्वयंचलितपणे आपल्याला पात्र असलेल्या साइट आणि अॅप्समध्ये साइन इन करते.</translation>
+<translation id="9072550133391925347">आपण सेव्ह केलेल्या संकेतशब्दासह <ph name="PASSWORD_MANAGER_BRAND" /> स्वयंचलितपणे आपल्याला पात्र असलेल्या साइट आणि अॅप्समध्ये साइन इन करते.</translation>
<translation id="9073281213608662541">PAP</translation>
<translation id="9074739597929991885">Bluetooth</translation>
<translation id="9074836595010225693">USB माउस कनेक्ट केला</translation>
@@ -5267,7 +5267,7 @@
<translation id="9153341767479566106">लोड करण्यात अयशस्वी झालेले अन्य विस्तार:</translation>
<translation id="9153934054460603056">ओळख आणि पासवर्ड सेव्ह करा</translation>
<translation id="9154194610265714752">अपडेट केलेले</translation>
-<translation id="9154418932169119429">ही प्रतिमा ऑफलाइन उपलब्ध नाही.</translation>
+<translation id="9154418932169119429">ही इमेज ऑफलाइन उपलब्ध नाही.</translation>
<translation id="91568222606626347">शॉर्टकट तयार करा...</translation>
<translation id="9157697743260533322">सर्व वापरकर्त्यांसाठी स्वयंचलित अपडेट सेट करण्यात अयशस्वी झाले (पूर्वफ्लाइट लाँच एरर: <ph name="ERROR_NUMBER" />)</translation>
<translation id="9158715103698450907">अरेरे! प्रमाणीकरणादरम्यान एक नेटवर्क संवाद प्रस्थापित समस्या आली. कृपया आपले नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation>
@@ -5297,7 +5297,7 @@
<translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" जोडले</translation>
<translation id="9215934040295798075">वॉलपेपर सेट करा</translation>
<translation id="9218430445555521422">डीफॉल्ट म्हणून सेट करा</translation>
-<translation id="9219103736887031265">प्रतिमा</translation>
+<translation id="9219103736887031265">इमेज</translation>
<translation id="9220525904950070496">खाते काढा</translation>
<translation id="923467487918828349">सर्व दर्शवा</translation>
<translation id="930268624053534560">तपशीलवार टाइमस्टॅम्प</translation>
@@ -5310,12 +5310,12 @@
<translation id="93766956588638423">विस्तार दुरुस्त करा</translation>
<translation id="938470336146445890">कृपया वापरकर्ता प्रमाणपत्र इंस्टॉल करा.</translation>
<translation id="938582441709398163">कीबोर्ड आच्छादन</translation>
-<translation id="939252827960237676">स्क्रीनशॉट जतन करण्यात अयशस्वी</translation>
+<translation id="939252827960237676">स्क्रीनशॉट सेव्ह करण्यात अयशस्वी</translation>
<translation id="939519157834106403">SSID</translation>
<translation id="939598580284253335">सांकेतिक वाक्यांश एंटर करा</translation>
<translation id="939736085109172342">नवीन फोल्‍डर</translation>
<translation id="942532530371314860"><ph name="APP_NAME" /> Chrome टॅब आणि ऑडिओ सामायिक करीत आहे.</translation>
-<translation id="942954117721265519">या निर्देशिकेमध्ये कोणत्याही प्रतिमा नाहीत.</translation>
+<translation id="942954117721265519">या निर्देशिकेमध्ये कोणत्याही इमेज नाहीत.</translation>
<translation id="943972244133411984">ने सुधारित केली</translation>
<translation id="945522503751344254">अभिप्राय पाठवा</translation>
<translation id="952992212772159698">सक्रिय नाही</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_nl.xtb b/chromium/chrome/app/resources/generated_resources_nl.xtb
index 853ccc0688c..2277866dc0b 100644
--- a/chromium/chrome/app/resources/generated_resources_nl.xtb
+++ b/chromium/chrome/app/resources/generated_resources_nl.xtb
@@ -487,7 +487,7 @@
<translation id="1712349894969001173">Dit wachtwoord gebruiken op je iPhone</translation>
<translation id="1712552549805331520"><ph name="URL" /> vraagt toestemming om permanent gegevens op je lokale computer op te slaan</translation>
<translation id="1718835860248848330">Afgelopen uur</translation>
-<translation id="1719312230114180055">Opmerking: Je vingerafdruk is mogelijk minder veilig dan een sterk wachtwoord of sterke pincode.</translation>
+<translation id="1719312230114180055">Opmerking: Je vingerafdruk is mogelijk minder beveiligd dan een sterk wachtwoord of sterke pincode.</translation>
<translation id="1720318856472900922">TLS WWW-serververificatie</translation>
<translation id="1721937473331968728">Je kunt klassieke printers die zijn aangesloten op je computer, toevoegen aan <ph name="CLOUD_PRINT_NAME" />.</translation>
<translation id="1723824996674794290">&amp;Nieuw venster</translation>
@@ -706,7 +706,7 @@
<translation id="2084108471225856927">Apparaatinstellingen</translation>
<translation id="2085470240340828803">Er bestaat al een bestand met de naam '<ph name="FILENAME" />'. Wat wil je doen?</translation>
<translation id="2087822576218954668">Afdrukken: <ph name="PRINT_NAME" /></translation>
-<translation id="2089566709556890888">Veilig browsen met Google Chrome</translation>
+<translation id="2089566709556890888">Beveiligd browsen met Google Chrome</translation>
<translation id="2089795179672254991">Vragen wanneer een site de tekst en afbeeldingen wil bekijken die naar het klembord zijn gekopieerd (aanbevolen)</translation>
<translation id="2090165459409185032">Als je je accountgegevens wilt herstellen, ga je naar: google.com/accounts/recovery</translation>
<translation id="2090876986345970080">Instelling voor systeembeveiliging</translation>
@@ -995,7 +995,7 @@ Ik denk niet dat deze site moet worden geblokkeerd.</translation>
<translation id="2532026602297547439">Vuil op sensor</translation>
<translation id="2532589005999780174">Modus voor hoog contrast</translation>
<translation id="253434972992662860">&amp;Onderbreken</translation>
-<translation id="2534460670861217804">Veilige HTTP-proxy</translation>
+<translation id="2534460670861217804">Beveiligde HTTP-proxy</translation>
<translation id="253557089021624350">Aantal keepalive-activiteiten</translation>
<translation id="2540384386570049483">Advertenties op deze site toestaan</translation>
<translation id="2541423446708352368">Alle downloads weergeven</translation>
@@ -1293,7 +1293,7 @@ Ik denk niet dat deze site moet worden geblokkeerd.</translation>
<translation id="2946119680249604491">Verbinding toevoegen</translation>
<translation id="2948300991547862301">Ga naar <ph name="PAGE_TITLE" /></translation>
<translation id="2948320633360386059">Geblokkeerd op sites die opdringerige advertenties weergeven</translation>
-<translation id="29488703364906173">Een snelle, eenvoudige en veilige webbrowser voor het moderne internet.</translation>
+<translation id="29488703364906173">Een snelle, eenvoudige en beveiligde webbrowser voor het moderne internet.</translation>
<translation id="2949037475046662832">Hiermee worden cookies en sitegegevens voor alle sites gewist, waaronder</translation>
<translation id="2951247061394563839">Venster centreren</translation>
<translation id="2956763290572484660"><ph name="COOKIES" /> cookies</translation>
@@ -1627,7 +1627,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="3450157232394774192">Bezettingspercentage van inactieve status</translation>
<translation id="3453612417627951340">Autorisatie vereist</translation>
<translation id="3454157711543303649">Activering voltooid</translation>
-<translation id="3454224730401036106">Je verbinding is overgeschakeld naar een veiliger netwerk</translation>
+<translation id="3454224730401036106">Je verbinding is overgeschakeld op een beter beveiligd netwerk</translation>
<translation id="345693547134384690">&amp;Afbeelding openen in nieuw tabblad</translation>
<translation id="3459509316159669723">Afdrukken</translation>
<translation id="3459697287128633276">Als je je account wilt inschakelen voor toegang tot de Google Play Store, moet je verifiëren via je identiteitsprovider.</translation>
@@ -2026,7 +2026,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="4042863763121826131">{NUM_PAGES,plural, =1{Pagina afsluiten}other{Pagina's afsluiten}}</translation>
<translation id="4044612648082411741">Geef je certificaatwachtwoord op</translation>
<translation id="404493185430269859">Standaard­zoekmachine</translation>
-<translation id="4047112090469382184">Waarom dit veilig is</translation>
+<translation id="4047112090469382184">Waarom dit beveiligd is</translation>
<translation id="4052120076834320548">Heel klein</translation>
<translation id="4055023634561256217">Opnieuw starten is vereist voordat je apparaat opnieuw kan worden ingesteld met Powerwash.</translation>
<translation id="4057041477816018958"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" /></translation>
@@ -2542,7 +2542,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="4909038193460299775">Omdat dit account wordt beheerd door <ph name="DOMAIN" />, worden je bladwijzers, geschiedenis, wachtwoorden en andere instellingen gewist van dit apparaat. Je gegevens blijven opgeslagen in je Google-account en kunnen worden beheerd via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
<translation id="4911714727432509308">Er zijn geen sneltoetsen aan extensies toegewezen.</translation>
<translation id="4912643508233590958">Activeringen vanuit inactief</translation>
-<translation id="491691592645955587">Overschakelen naar een veilige browser</translation>
+<translation id="491691592645955587">Overschakelen naar een beveiligde browser</translation>
<translation id="4917385247580444890">Sterk</translation>
<translation id="4918021164741308375"><ph name="ORIGIN" /> wil communiceren met de extensie '<ph name="EXTENSION_NAME" />'</translation>
<translation id="4918086044614829423">Accepteren</translation>
@@ -3795,7 +3795,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="682971198310367122">Privacybeleid van Google</translation>
<translation id="6829772336900667075"><ph name="APP_NAME" /> openen</translation>
<translation id="6831043979455480757">Vertalen</translation>
-<translation id="683373380308365518">Overschakelen naar een slimme, veilige browser</translation>
+<translation id="683373380308365518">Overschakelen naar een slimme, beveiligde browser</translation>
<translation id="6835762382653651563">Maak verbinding met internet om je <ph name="DEVICE_TYPE" /> te updaten.</translation>
<translation id="6839225236531462745">Fout tijdens verwijderen van certificaat</translation>
<translation id="6840155290835956714">Vragen vóór verzenden</translation>
@@ -4245,7 +4245,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="7545415673537747415">Beheer via <ph name="BEGIN_LINK" />Google-activiteitsopties<ph name="END_LINK" /> hoe Google je browsegeschiedenis mag gebruiken om Google Zoeken, advertenties en andere Google-services te personaliseren.</translation>
<translation id="7545809182698428577">Hiermee worden de hier vermelde functies ingeschakeld. Maakt gebruik van je browseractiviteit, de content van bepaalde sites die je bezoekt en andere browserinteracties voor personalisatie.</translation>
<translation id="7547317915858803630">Waarschuwing: je instellingen voor <ph name="PRODUCT_NAME" /> zijn opgeslagen op een netwerkschijf. Dit kan leiden tot vertragingen, crashes of zelfs gegevensverlies.</translation>
-<translation id="7547483330017600937">Ontwikkel op je <ph name="DEVICE_TYPE" />. Je kunt probleemloos en veilig je favoriete systeemeigen apps en opdrachtregeltools uitvoeren.
+<translation id="7547483330017600937">Ontwikkel op je <ph name="DEVICE_TYPE" />. Je kunt probleemloos en beveiligd je favoriete systeemeigen apps en opdrachtregeltools uitvoeren.
Als je <ph name="APP_NAME" /> installeert, wordt er <ph name="DOWNLOAD_SIZE" /> aan gegevens gedownload.</translation>
<translation id="7548856833046333824">Cocktail</translation>
@@ -4615,7 +4615,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie
<translation id="8093832608898425674"><ph name="DOMAIN" /> wil dat de identiteit van je apparaat wordt geverifieerd door Google om te bepalen of het apparaat in aanmerking komt voor uitgebreide afspeelfunctionaliteit voor beveiligde content. <ph name="LEARN_MORE" />.</translation>
<translation id="80974698889265265">De pincodes komen niet overeen</translation>
<translation id="8101987792947961127">Powerwash vereist bij volgende keer opnieuw opstarten</translation>
-<translation id="8102535138653976669"><ph name="PRODUCT_NAME" /> synchroniseert je gegevens veilig met je Google-account. Houd alles gesynchroniseerd of pas gesynchroniseerde gegevenstypen en coderingsinstellingen aan.</translation>
+<translation id="8102535138653976669"><ph name="PRODUCT_NAME" /> synchroniseert je gegevens beveiligd met je Google-account. Houd alles gesynchroniseerd of pas gesynchroniseerde gegevenstypen en coderingsinstellingen aan.</translation>
<translation id="8104696615244072556">Powerwash je <ph name="IDS_SHORT_PRODUCT_NAME" />-apparaat en zet de vorige versie terug.</translation>
<translation id="8105368624971345109">Uitschakelen</translation>
<translation id="8106045200081704138">Gedeeld met mij</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_pl.xtb b/chromium/chrome/app/resources/generated_resources_pl.xtb
index cd6beb07ea2..3b460e2b8cf 100644
--- a/chromium/chrome/app/resources/generated_resources_pl.xtb
+++ b/chromium/chrome/app/resources/generated_resources_pl.xtb
@@ -1895,7 +1895,7 @@ Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy
<translation id="3835522725882634757">O nie! Ten serwer wysyła dane, których aplikacja <ph name="PRODUCT_NAME" /> nie rozumie. <ph name="BEGIN_LINK" />Zgłoś błąd<ph name="END_LINK" /> i dołącz <ph name="BEGIN2_LINK" />nieprzetworzony wykaz<ph name="END2_LINK" />.</translation>
<translation id="3838085852053358637">Nie udało się wczytać rozszerzenia</translation>
<translation id="3838486795898716504">Więcej o <ph name="PAGE_TITLE" /></translation>
-<translation id="3838543471119263078">Pliki cookie oraz inne dane stron i wtyczek</translation>
+<translation id="3838543471119263078">Pliki cookie oraz inne dane witryn i wtyczek</translation>
<translation id="383891835335927981">Żadna strona nie jest powiększana ani pomniejszana</translation>
<translation id="3839516600093027468">Zawsze blokuj stronie <ph name="HOST" /> dostęp do schowka</translation>
<translation id="3840053866656739575">Połączenie z Chromeboxem zostało utracone. Przysuń się bliżej lub sprawdź urządzenie – spróbujemy połączyć się ponownie.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sw.xtb b/chromium/chrome/app/resources/generated_resources_sw.xtb
index f260b98c27e..0e6fc7eef41 100644
--- a/chromium/chrome/app/resources/generated_resources_sw.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sw.xtb
@@ -55,7 +55,7 @@
<translation id="1076818208934827215">Microsoft Internet Explorer</translation>
<translation id="1077946062898560804">Weka Masasisho ya Kiotomatiki kwa Watumiaji Wote</translation>
<translation id="1079766198702302550">Zuia ufikiaji wa kamera kila wakati</translation>
-<translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> inataka kurejesha Mipangilio yako ya Chrome katika hali yake ya chaguo-msingi. Hii itaweka upya ukurasa wako wa kwanza, ukurasa mpya wa kichupo na mtambo wa kutafuta, izime viendelezi vyako na kubanua vichupo vyote. Pia itafuta data nyingine iliyohifadhiwa kwa muda na iliyoakibishwa, kama vile vidakuzi, maudhui na data ya tovuti.</translation>
+<translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> inataka kurejesha Mipangilio yako ya Chrome katika hali yake ya chaguo msingi. Hii itaweka upya ukurasa wako wa kwanza, ukurasa mpya wa kichupo na mtambo wa kutafuta, izime viendelezi vyako na kubanua vichupo vyote. Pia itafuta data nyingine iliyohifadhiwa kwa muda na iliyoakibishwa, kama vile vidakuzi, maudhui na data ya tovuti.</translation>
<translation id="1082725763867769612">Faili za nje ya mtandao</translation>
<translation id="1084824384139382525">Nakili &amp;anwani ya kiungo</translation>
<translation id="1089439967362294234">Badilisha Nenosiri</translation>
@@ -259,7 +259,7 @@
<translation id="1383861834909034572">Itafunguliwa baada ya kukamilika</translation>
<translation id="1383876407941801731">Tafuta</translation>
<translation id="1386387014181100145">Hujambo.</translation>
-<translation id="138784436342154190">Ungependa kurejesha ukurasa unaoanza chaguo-msingi?</translation>
+<translation id="138784436342154190">Ungependa kurejesha ukurasa unaoanza chaguo msingi?</translation>
<translation id="1390548061267426325">Fungua kama Kichupo cha Kawaida</translation>
<translation id="1393283411312835250">Jua na mawingu</translation>
<translation id="1395262318152388157">Tafuta Kitelezi</translation>
@@ -388,7 +388,7 @@
<translation id="1571313460229786892">na Mipangilio ya Tovuti</translation>
<translation id="1572266655485775982">Washa Wi-Fi</translation>
<translation id="1572876035008611720">Weka anwani yako ya barua pepe</translation>
-<translation id="1576594961618857597">Ishara chaguo-msingi nyeupe</translation>
+<translation id="1576594961618857597">Ishara chaguo msingi nyeupe</translation>
<translation id="1580652505892042215">Muktadha:</translation>
<translation id="1581962803218266616">Onyesha katika Kipataji</translation>
<translation id="1584990664401018068">Mtandao wa Wi-Fi unaotumia (<ph name="NETWORK_ID" />) huenda ukahitaji uidhinishaji.</translation>
@@ -596,7 +596,7 @@
<translation id="1877520246462554164">Imeshindwa kupata tokeni ya uthibitishaji. Tafadhali ondoka na uingie katika akaunti ili ujaribu tena.</translation>
<translation id="1878524442024357078">Usiruhusu tovuti yoyote kutumia programu-jalizi kufikia kompyuta yako</translation>
<translation id="1880905663253319515">Futa cheti "<ph name="CERTIFICATE_NAME" />"?</translation>
-<translation id="1886996562706621347">Ruhusu tovuti kutuma ombi la kuwa vishikizi chaguo-msingi vya itifaki (inapendekezwa)</translation>
+<translation id="1886996562706621347">Ruhusu tovuti kutuma ombi la kuwa vishikizi chaguo msingi vya itifaki (inapendekezwa)</translation>
<translation id="1887442540531652736">Hitilafu ya kuingia katika akaunti</translation>
<translation id="1887850431809612466">Sahihisho la maunzi</translation>
<translation id="1889984860246851556">Fungua mipangilio ya seva mbadala</translation>
@@ -613,7 +613,7 @@
<translation id="1910721550319506122">Karibu!</translation>
<translation id="1914326953223720820">Huduma ya Kufungua Faili za Zip</translation>
<translation id="1915073950770830761">jaribio</translation>
-<translation id="1916502483199172559">Ishara chaguo-msingi nyekundu</translation>
+<translation id="1916502483199172559">Ishara chaguo msingi nyekundu</translation>
<translation id="1918141783557917887">&amp;Ndogo zaidi</translation>
<translation id="1919345977826869612">Matangazo</translation>
<translation id="1919814239594435008">Ufikiaji wa programu jalizi isiyo na utaratibu wa kuwekea vikwazo umeruhusiwa</translation>
@@ -868,7 +868,7 @@
<translation id="2327492829706409234">Washa programu</translation>
<translation id="2329597144923131178">Ingia katika akaunti ili upate alamisho, historia, manenosiri, na mipangilio yako mingine kwenye vifaa vyako vyote.</translation>
<translation id="2332131598580221120">Angalia katika Duka la Wavuti</translation>
-<translation id="2332742915001411729">Rejesha kwenye chaguo-msingi</translation>
+<translation id="2332742915001411729">Rejesha kwenye chaguo msingi</translation>
<translation id="2335122562899522968">Ukurasa huu unaweka vidakuzi.</translation>
<translation id="2336228925368920074">Alamisha Vichupo Vyote...</translation>
<translation id="2336381494582898602">Powerwash</translation>
@@ -1023,7 +1023,7 @@ Sidhani ikiwa tovuti hii inapaswa kuzuiwa!</translation>
<translation id="2580924999637585241">Jumla: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
<translation id="258095186877893873">Muda mrefu</translation>
<translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Jukwaa <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
-<translation id="2585300050980572691">Mipangilio chaguo-msingi ya utafutaji</translation>
+<translation id="2585300050980572691">Mipangilio chaguo msingi ya utafutaji</translation>
<translation id="2586657967955657006">Ubao wa kunakili</translation>
<translation id="2586672484245266891">Tafadhali weka URL fupi</translation>
<translation id="2587922270115112871">Kuongeza mtumiaji anayesimamiwa hakufungui Akaunti ya Google, na mipangilio na data yake haitamfuata kwenye vifaa vingine vilivyo na Usawazishaji wa Chrome. Mtumiaji anayesimamiwa ameongezwa kwenye kifaa hiki tu.</translation>
@@ -1038,7 +1038,7 @@ Sidhani ikiwa tovuti hii inapaswa kuzuiwa!</translation>
<translation id="2606246518223360146">Unganisha Data</translation>
<translation id="2607101320794533334">Maelezo ya Ufunguo wa Umma wa Mhusika</translation>
<translation id="2607459012323956820">Historia ya mipangilio na kuvinjari kwa mtumiaji huyu anayesimamiwa bado inaweza kuonekana na msimamizi kwenye <ph name="BEGIN_LINK" /><ph name="DISPLAY_LINK" /><ph name="END_LINK" />.</translation>
-<translation id="2608770217409477136">Tumia mipangilio chaguo-msingi</translation>
+<translation id="2608770217409477136">Tumia mipangilio chaguo msingi</translation>
<translation id="2609896558069604090">Unda Njia mikato...</translation>
<translation id="2610157865375787051">Hali tuli</translation>
<translation id="2610260699262139870">Ukubwa Halisi</translation>
@@ -1219,7 +1219,7 @@ Sidhani ikiwa tovuti hii inapaswa kuzuiwa!</translation>
<translation id="283669119850230892">Ili kutumia mtandao <ph name="NETWORK_ID" />, kwanza kamilisha muunganisho wako katika Mtandao hapo chini.</translation>
<translation id="2838379631617906747">Inasakinisha</translation>
<translation id="2841837950101800123">Mtoa huduma</translation>
-<translation id="2843806747483486897">Badilisha chaguo-msingi...</translation>
+<translation id="2843806747483486897">Badilisha chaguo msingi...</translation>
<translation id="2844111009524261443">Tekeleza kwa kubofya</translation>
<translation id="2845382757467349449">Onyesha Upau wa Alamisho Kila Wakati</translation>
<translation id="2847759467426165163">Tuma kwenye</translation>
@@ -1254,7 +1254,7 @@ Sidhani ikiwa tovuti hii inapaswa kuzuiwa!</translation>
<translation id="2889064240420137087">Fungua kiungo kwa...</translation>
<translation id="2889925978073739256">Endelea kuzuia programu-jalizi zisizo kwenye sandbox</translation>
<translation id="2890678560483811744">Ukurasa wa marejeleo ambao huruhusiwi kuingia</translation>
-<translation id="2893168226686371498">Kivinjari chaguo-msingi</translation>
+<translation id="2893168226686371498">Kivinjari chaguo msingi</translation>
<translation id="289644616180464099">SIM Kadi imefungwa</translation>
<translation id="289695669188700754">Utambulisho wa Ufunguo: <ph name="KEY_ID" /></translation>
<translation id="2897878306272793870">Je, una hakika kuwa ungependa kufungua vichupo <ph name="TAB_COUNT" />?</translation>
@@ -1422,7 +1422,7 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="313205617302240621">Umesahau nenosiri?</translation>
<translation id="3135204511829026971">Zungusha skrini</translation>
<translation id="313963229645891001">Inapakua, <ph name="STATUS" /></translation>
-<translation id="3139925690611372679">Ishara chaguo-msingi manjano</translation>
+<translation id="3139925690611372679">Ishara chaguo msingi manjano</translation>
<translation id="3140353188828248647">Lenga upau anwani</translation>
<translation id="3141318088920353606">Inasikiliza...</translation>
<translation id="3141917231319778873">Ombi hili maalum halitumiki kwenye: "<ph name="DEVICE_NAME" />".</translation>
@@ -1471,7 +1471,7 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="3220586366024592812">Mchakato wa kiunganishi cha <ph name="CLOUD_PRINT_NAME" /> umeharibika. Ungetaka kuzima na uwashe tena?</translation>
<translation id="3221634914176615296">Gundua maudhui ya kifaa katika programu ya Faili.</translation>
<translation id="3222066309010235055">Kionyeshi awali: <ph name="PRERENDER_CONTENTS_NAME" /></translation>
-<translation id="3225084153129302039">Ishara chaguo-msingi ya zambarau</translation>
+<translation id="3225084153129302039">Ishara chaguo msingi ya zambarau</translation>
<translation id="3225319735946384299">Utiaji Sahihi wa Misimbo</translation>
<translation id="3227137524299004712">Maikrofoni</translation>
<translation id="32279126412636473">Pakia upya (⌘R)</translation>
@@ -1489,7 +1489,7 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Hitilafu ya mtandao</translation>
<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
<translation id="3251759466064201842">&lt;Sio Sehemu Ya Cheti&gt;</translation>
-<translation id="3254434849914415189">Chagua programu chaguo-msingi ya faili <ph name="FILE_TYPE" />:</translation>
+<translation id="3254434849914415189">Chagua programu chaguo msingi ya faili <ph name="FILE_TYPE" />:</translation>
<translation id="3254516606912442756">Utambuzi wa kiotomatiki wa saa za eneo umezimwa</translation>
<translation id="3264544094376351444">Fonti ya Sans-serif</translation>
<translation id="3264547943200567728">Haijaweza kuweka mipangilio ya mtandao wa Chromebox yako</translation>
@@ -1594,7 +1594,7 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="3423463006624419153">Kwenye '<ph name="PHONE_NAME_1" />' na '<ph name="PHONE_NAME_2" />' yako:</translation>
<translation id="3423858849633684918">Tafadhali Zindua upya <ph name="PRODUCT_NAME" /></translation>
<translation id="3424969259347320884">Eleza Shughuli Ulizokuwa Ukifanya Kichupo Kilipoacha Kufanya Kazi</translation>
-<translation id="3427092606871434483">Ruhusu (chaguo-msingi)</translation>
+<translation id="3427092606871434483">Ruhusu (chaguo msingi)</translation>
<translation id="3428419049384081277">Umeingia katika akaunti!</translation>
<translation id="3429275422858276529">Alamisha ukurasa huu ili uupate kwa urahisi baadaye</translation>
<translation id="3429599832623003132">Vipengee $1</translation>
@@ -1754,7 +1754,7 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="3640214691812501263">Ungependa kuongeza "<ph name="EXTENSION_NAME" />" kwa <ph name="USER_NAME" />?</translation>
<translation id="3643225892037417978">Udhibiti wa viendelezi haupatikani kwa Watumiaji walioalikwa. Tafadhali ingia katika akaunti ili udhibiti viendelezi.</translation>
<translation id="3644896802912593514">Upana</translation>
-<translation id="3646789916214779970">Rejesha mandhari chaguo-msingi</translation>
+<translation id="3646789916214779970">Rejesha mandhari chaguo msingi</translation>
<translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> kimegunduliwa</translation>
<translation id="3649138363871392317">Picha ilipigwa</translation>
<translation id="3650952250015018111">Ruhusu "<ph name="APP_NAME" />" ifikie:</translation>
@@ -1772,12 +1772,12 @@ Tembelea <ph name="BEGIN_LINK" />Kituo chetu cha Usaidizi<ph name="END_LINK" />
<translation id="3668823961463113931">Vishikilizi</translation>
<translation id="3670229581627177274">Washa Bluetooth</translation>
<translation id="3672681487849735243">Hitilafu ya kiwanda imegunduliwa</translation>
-<translation id="367645871420407123">acha tupu ukitaka kuweka nenosiri msingi kwenye thamani ya picha ya jaribio la chaguo-msingi</translation>
+<translation id="367645871420407123">acha tupu ukitaka kuweka nenosiri msingi kwenye thamani ya picha ya jaribio la chaguo msingi</translation>
<translation id="3678156199662914018">Kiendelezi: <ph name="EXTENSION_NAME" /></translation>
<translation id="3681311097828166361">Asante sana kwa maoni yako. Sasa uko nje ya mtandao, na ripoti yako itatumwa baadaye.</translation>
<translation id="3683023058278427253">Tumegundua aina nyingi za leseni za kikoa chako. Tafadhali chagua moja ili uendelee.</translation>
<translation id="3683524264665795342">Ombi la <ph name="APP_NAME" /> la Kushiriki Skirini</translation>
-<translation id="3685122418104378273">Usawazishaji wa Hifadhi ya Google umezimwa kwa chaguo-msingi wakati wa kutumia data ya kifaa cha mkononi.</translation>
+<translation id="3685122418104378273">Usawazishaji wa Hifadhi ya Google umezimwa kwa chaguo msingi wakati wa kutumia data ya kifaa cha mkononi.</translation>
<translation id="368789413795732264">Kulikuwa na hitilafu wakati wa kujaribu kuandika faili: <ph name="ERROR_TEXT" />.</translation>
<translation id="3688507211863392146">Andika kwenye faili na folda unazofungua katika programu hii.</translation>
<translation id="3688526734140524629">Badili kituo</translation>
@@ -2019,7 +2019,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="4042264909745389898">Sheria na masharti ya Mfumo wa Uendeshaji wa Chrome</translation>
<translation id="4042863763121826131">{NUM_PAGES,plural, =1{Funga Ukurasa}other{Funga Kurasa}}</translation>
<translation id="4044612648082411741">Weka nenosiri la cheti chako</translation>
-<translation id="404493185430269859">Injini tafuti chaguo-msingi</translation>
+<translation id="404493185430269859">Injini tafuti chaguo msingi</translation>
<translation id="4047112090469382184">Namna hiki kilivyo salama</translation>
<translation id="4052120076834320548">Ndogo sana</translation>
<translation id="4055023634561256217">Uwashaji upya unahitajika kabla ya kifaa chako kuwekwa upya na Powerwash.</translation>
@@ -2053,7 +2053,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="409579654357498729">Ongeza kwenye Printa ya Wingu</translation>
<translation id="4096508467498758490">Zima viendelezi vya hali ya msanidi programu</translation>
<translation id="4096824249111507322">Sehemu salama inaandaliwa, tafadhali subiri (huenda hatua hii ikachukua dakika chache)...</translation>
-<translation id="4099060993766194518">Ungependa kurejesha mtambo wa kutafuta chaguo-msingi?</translation>
+<translation id="4099060993766194518">Ungependa kurejesha mtambo wa kutafuta chaguo msingi?</translation>
<translation id="4100733287846229632">Hifadhi ya kifaa ni ndogo sana</translation>
<translation id="4103091233824664032">Andika nenosiri lako ili uweke mipangilio ya kufunga skrini na kuingia katika akaunti</translation>
<translation id="4104163789986725820">&amp;Hamisha...</translation>
@@ -2166,7 +2166,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="4309915981827077375">Maelezo ya jumla</translation>
<translation id="4310139701823742692">Muundo wa faili si sahihi. Angalia faili na PPD kisha ujaribu tena.</translation>
<translation id="431076611119798497">&amp;Maelezo</translation>
-<translation id="4312866146174492540">Zuia (chaguo-msingi)</translation>
+<translation id="4312866146174492540">Zuia (chaguo msingi)</translation>
<translation id="4316850752623536204">Tovuti ya Wasanidi Programu</translation>
<translation id="4320177379694898372">Hakuna muunganisho wa intaneti</translation>
<translation id="4321179778687042513">ctrl</translation>
@@ -2277,14 +2277,14 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="4530494379350999373">Asili</translation>
<translation id="4532499992208253975">inapakia</translation>
<translation id="4533985347672295764">Muda wa Kuchakata</translation>
-<translation id="4535127706710932914">Wasifu Chaguo-msingi</translation>
+<translation id="4535127706710932914">Wasifu Chaguo msingi</translation>
<translation id="4538417792467843292">Futa neno</translation>
<translation id="4538684596480161368">Zuia programu-jalizi zisizo kwenye sanbox kwenye <ph name="HOST" /> wakati wowote</translation>
<translation id="4538792345715658285">Imesanidiwa na sera ya biashara.</translation>
<translation id="4542520061254486227">Soma data yako kwenye <ph name="WEBSITE_1" /> na <ph name="WEBSITE_2" /></translation>
<translation id="4543733025292526486">esc</translation>
<translation id="4543778593405494224">Kidhibiti cha cheti</translation>
-<translation id="4544174279960331769">Ishara chaguo-msingi ya samawati</translation>
+<translation id="4544174279960331769">Ishara chaguo msingi ya samawati</translation>
<translation id="4545028762441890696">Ili ukiwashe upya, kubali ruhusa mpya:</translation>
<translation id="454547174531670764">Sawazisha katika akaunti nyingine</translation>
<translation id="4545759655004063573">Haiwezi kuhifadhi kwa sababu ya idhini isiyotosha. Tafadhali hifadhi katika eneo jingine.</translation>
@@ -2364,7 +2364,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="4663373278480897665">Kamera imeruhusiwa</translation>
<translation id="4664482161435122549">Hitilafu ya Kuhamisha ya PKCS #12</translation>
<translation id="4665014895760275686">Mtengenezaji</translation>
-<translation id="466506872045057845">Chrome itabadilisha ruhusa kuwa chaguo-msingi</translation>
+<translation id="466506872045057845">Chrome itabadilisha ruhusa kuwa chaguo msingi</translation>
<translation id="4667176955651319626">Zuia vidakuzi vya mtu mwingine na data ya tovuti</translation>
<translation id="4668721319092543482">Bofya ili uruhusu <ph name="PLUGIN_NAME" /></translation>
<translation id="4669606053856530811">Wanachama wa '<ph name="SOURCE_NAME" />' hawataweza kuifikia isipokuwa vipengee hivi viwe vinashirikiwa nao.</translation>
@@ -2557,7 +2557,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="494286511941020793">Msaada wa Usanidi wa Proksi</translation>
<translation id="494660967831069720">Sehemu ya data</translation>
<translation id="4953689047182316270">Kushughulikia Matukio ya Zana za Walio na Matatizo ya Kuona au Kusikia</translation>
-<translation id="4953808748584563296">Ishara chaguo-msingi ya rangi ya machungwa</translation>
+<translation id="4953808748584563296">Ishara chaguo msingi ya rangi ya machungwa</translation>
<translation id="4955814292505481804">Kila mwaka</translation>
<translation id="495931528404527476">Katika Chrome</translation>
<translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation>
@@ -2586,7 +2586,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="499165176004408815">Tumia hali ya juu ya utofautishaji</translation>
<translation id="4992066212339426712">Rejesha sauti</translation>
<translation id="4992458225095111526">Thibitisha Powerwash</translation>
-<translation id="4994474651455208930">Ruhusu tovuti kutuma ombi la kuwa vidhibiti chaguo-msingi vya itifaki</translation>
+<translation id="4994474651455208930">Ruhusu tovuti kutuma ombi la kuwa vidhibiti chaguo msingi vya itifaki</translation>
<translation id="4994754230098574403">Inaweka mipangilio</translation>
<translation id="4996978546172906250">Shiriki kupitia</translation>
<translation id="4997086284911172121">Hakuna muunganisho wa Intaneti.</translation>
@@ -2636,7 +2636,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="5084230410268011727">Ruhusu tovuti kutumia vitambuzi vya mwendo na mwangaza</translation>
<translation id="5085162214018721575">Inatafuta visasishi</translation>
<translation id="5086082738160935172">HID</translation>
-<translation id="5086874064903147617">Ungependa kurejesha ukurasa wa kwanza chaguo-msingi?</translation>
+<translation id="5086874064903147617">Ungependa kurejesha ukurasa wa kwanza chaguo msingi?</translation>
<translation id="5087249366037322692">Kimeongezwa na mhusika mwingine</translation>
<translation id="5087580092889165836">Ongeza kadi</translation>
<translation id="5087864757604726239">nyuma</translation>
@@ -2674,7 +2674,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="5143374789336132547">Kiendelezi "<ph name="EXTENSION_NAME" />" kimebadilisha ukurasa unaoonyeshwa unapobofya kitufe cha Mwanzo.</translation>
<translation id="5143712164865402236">Ingia Skrini Kamili</translation>
<translation id="5145331109270917438">Tarehe ilipobadilishwa</translation>
-<translation id="514575469079499857">Tumia anwani yako ya IP kubainisha mahali (chaguo-msingi)</translation>
+<translation id="514575469079499857">Tumia anwani yako ya IP kubainisha mahali (chaguo msingi)</translation>
<translation id="5150254825601720210">Jina la Seva ya SSL ya Cheti cha Netscape</translation>
<translation id="5151354047782775295">Futa maudhui katika hifadhi ya diski au data iliyochaguliwa itafutwa kiotomatiki</translation>
<translation id="5153297660536091054">Kipengele cha Kufungua kwa Kutumia PIN</translation>
@@ -2716,7 +2716,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="52232769093306234">Imeshindwa kupakia faili.</translation>
<translation id="5225324770654022472">Onyesha mkato wa programu</translation>
<translation id="5225360179303283478">Weka upya mipangilio ya tovuti</translation>
-<translation id="5227679487546032910">Ishara chaguo-msingi ya kijani kiwiti</translation>
+<translation id="5227679487546032910">Ishara chaguo msingi ya kijani kiwiti</translation>
<translation id="5227808808023563348">Tafuta maandishi ya awali</translation>
<translation id="5228076606934445476">Kuna tatizo fulani katika kifaa. Ili kurekebisha hitilafu hii itakubidi uzime na kuwasha tena kifaa chako na ujaribu tena.</translation>
<translation id="5229189185761556138">Dhibiti mbinu za kuingiza data</translation>
@@ -2774,7 +2774,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="5288678174502918605">Fungua Kichupo Kilichofungwa &amp;Tena</translation>
<translation id="52912272896845572">Ufunguo wako binafsi sio halali.</translation>
<translation id="529175790091471945">Futa kifaa hiki</translation>
-<translation id="5293170712604732402">Rejesha mipangilio kwenye chaguo-msingi halisi</translation>
+<translation id="5293170712604732402">Rejesha mipangilio kwenye chaguo msingi halisi</translation>
<translation id="5298219193514155779">Mandhari imeunda na</translation>
<translation id="5299109548848736476">Usifuatilie</translation>
<translation id="5299682071747318445">Data yote imesimbwa kwa njia fiche kwa kaulisiri yako ya usawazishaji</translation>
@@ -2964,7 +2964,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="5554489410841842733">Aikoni hii itaonekana kiendelezi kitakapoanza kufanya kazi kwenye ukurasa huu.</translation>
<translation id="5554573843028719904">Mtandao mwingine wa Wi-Fi...</translation>
<translation id="5554720593229208774">Mamlaka ya Uthibitishaji wa Barua pepe</translation>
-<translation id="5556206011531515970">Bofya ifuatayo ili kuchagua kivinjari chako chaguo-msingi.</translation>
+<translation id="5556206011531515970">Bofya ifuatayo ili kuchagua kivinjari chako chaguo msingi.</translation>
<translation id="5556459405103347317">Pakia upya</translation>
<translation id="555746285996217175">Funga/washa</translation>
<translation id="5557991081552967863">Washa Wi-Fi wakati wa Hali tuli</translation>
@@ -3067,7 +3067,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="5708171344853220004">Jina la Microsoft Principal</translation>
<translation id="5711983031544731014">Haiwezi kufungua. Weka nenosiri lako.</translation>
<translation id="5715711091495208045">Dalali wa Programu-jalizi: <ph name="PLUGIN_NAME" /></translation>
-<translation id="5719603411793408026">Mitambo chaguo-msingi ya kutafuta</translation>
+<translation id="5719603411793408026">Mitambo chaguo msingi ya kutafuta</translation>
<translation id="5720705177508910913">Mtumiaji wa sasa</translation>
<translation id="572155275267014074">Mipangilio ya Android</translation>
<translation id="572328651809341494">Vichupo vya hivi majuzi</translation>
@@ -3374,7 +3374,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="6199801702437275229">Inasubiri maelezo ya nafasi...</translation>
<translation id="6205710420833115353">Vitendo vingine vinachukua muda zaidi ya ilivyotarajiwa. Unataka kuvighairi?</translation>
<translation id="6206311232642889873">&amp;Nakili Picha</translation>
-<translation id="6207200176136643843">Rejesha kiwango cha kukuza kuwa chaguo-msingi</translation>
+<translation id="6207200176136643843">Rejesha kiwango cha kukuza kuwa chaguo msingi</translation>
<translation id="620722923698527029">Fungua aina hizi za viungo katika programu husika wakati wowote</translation>
<translation id="6207937957461833379">Nchi/Eneo</translation>
<translation id="6212039847102026977">Onyesha sifa za kina za mtandao</translation>
@@ -3976,7 +3976,7 @@ Ungependa kuanza <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
<translation id="7131040479572660648">Soma data yako kwenye <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, na <ph name="WEBSITE_3" /></translation>
<translation id="713122686776214250">Ongeza ukura&amp;sa...</translation>
<translation id="7134098520442464001">Fanya Matini Madogo</translation>
-<translation id="7136694880210472378">Fanya iwe chaguo-msingi</translation>
+<translation id="7136694880210472378">Fanya iwe chaguo msingi</translation>
<translation id="7136984461011502314">Karibu kwenye <ph name="PRODUCT_NAME" /></translation>
<translation id="7138678301420049075">Nyingine</translation>
<translation id="713888829801648570">Samahani, nenosiri lako halikuweza kuthibitishwa kwa sababu uko nje ya mtandao.</translation>
@@ -4287,7 +4287,7 @@ Kusakinisha <ph name="APP_NAME" /> kutapakua data ya <ph name="DOWNLOAD_SIZE" />
<translation id="7622114377921274169">Inachaji.</translation>
<translation id="7624337243375417909">kitufe cha herufi kubwa kimezimwa</translation>
<translation id="7627790789328695202">Lo, <ph name="FILE_NAME" /> tayari ipo. Ibadili jina na ujaribu tena.</translation>
-<translation id="7628127343934101653">Fungua faili za PDF katika programu chaguo-msingi ya kusoma PDF.</translation>
+<translation id="7628127343934101653">Fungua faili za PDF katika programu chaguo msingi ya kusoma PDF.</translation>
<translation id="7629827748548208700">Kichupo: <ph name="TAB_NAME" /></translation>
<translation id="7631887513477658702">Fungua Faili za Aina Hii Kil&amp;a Wakati</translation>
<translation id="7632948528260659758">Programu zifuatazo za kioski zimeshindwa kusasisha:</translation>
@@ -4565,9 +4565,9 @@ Weka faili yako ya funguo mahali salama. Utaihitaji kuunda matoleo mapya ya kien
<translation id="8032244173881942855">Imeshindwa kutuma kichupo.</translation>
<translation id="803435727213847625">{COUNT,plural, =0{Fungua zote &amp;katika dirisha fiche}=1{Fungua &amp;katika dirisha fiche}other{Fungua zote (#) &amp;katika dirisha fiche}}</translation>
<translation id="8037117027592400564">Soma maandishi yote yaliyotamkwa ukitumia matamshi yaliyounganishwa</translation>
-<translation id="8037357227543935929">Uliza (chaguo-msingi)</translation>
+<translation id="8037357227543935929">Uliza (chaguo msingi)</translation>
<translation id="803771048473350947">Faili</translation>
-<translation id="8038111231936746805">(chaguo-msingi)</translation>
+<translation id="8038111231936746805">(chaguo msingi)</translation>
<translation id="8041535018532787664">Ongeza programu ya kioski:</translation>
<translation id="8044899503464538266">Polepole</translation>
<translation id="8045253504249021590">Usawazishaji umekomeshwa kupitia Dashibodi ya Google.</translation>
@@ -4586,7 +4586,7 @@ Weka faili yako ya funguo mahali salama. Utaihitaji kuunda matoleo mapya ya kien
<translation id="8059178146866384858">Faili iitwayo "$1" tayari ipo. Tafadhali chagua jina tofauti.</translation>
<translation id="8059417245945632445">Kagua vifaa</translation>
<translation id="8061298200659260393">Usiruhusu tovuti zozote kutuma ujumbe wa programu hata wakati huitumii</translation>
-<translation id="8063235345342641131">Ishara chaguo-msingi ya kijani</translation>
+<translation id="8063235345342641131">Ishara chaguo msingi ya kijani</translation>
<translation id="8064671687106936412">Ufunguo:</translation>
<translation id="806812017500012252">Panga tena kwa vichwa</translation>
<translation id="8068253693380742035">Gusa ili uingie katika akaunti</translation>
@@ -5294,7 +5294,7 @@ Huenda watu wengine wenye miunganisho ya polepole hawataona maudhui yako.</trans
<translation id="9214695392875603905">Keki dogo</translation>
<translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" limeongezwa</translation>
<translation id="9215934040295798075">Weka mandhari</translation>
-<translation id="9218430445555521422">Weka iwe chaguo-msingi</translation>
+<translation id="9218430445555521422">Weka iwe chaguo msingi</translation>
<translation id="9219103736887031265">Picha</translation>
<translation id="9220525904950070496">Ondoa akaunti</translation>
<translation id="923467487918828349">Onyesha Yote</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_zh-CN.xtb b/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
index 99074ebbb4c..e4bb9401c73 100644
--- a/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1852,7 +1852,7 @@
<translation id="3786301125658655746">您处于离线状态</translation>
<translation id="3788401245189148511">该扩展程序想要:</translation>
<translation id="3789841737615482174">安装</translation>
-<translation id="379082410132524484">您的卡片已过期</translation>
+<translation id="379082410132524484">您的卡已过期</translation>
<translation id="3792890930871100565">断开打印机连接</translation>
<translation id="379422718204375917">使用 Smart Lock 登录您的帐号</translation>
<translation id="3796648294839530037">收藏的网络:</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_zh-TW.xtb b/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
index ff0ac3f7ada..c13d3a5d7ae 100644
--- a/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1046,7 +1046,7 @@
<translation id="2610157865375787051">休眠</translation>
<translation id="2610260699262139870">實際大小(&amp;C)</translation>
<translation id="2610780100389066815">Microsoft 信任清單簽署</translation>
-<translation id="2612676031748830579">卡片號碼</translation>
+<translation id="2612676031748830579">卡號</translation>
<translation id="2616366145935564096">讀取以及變更你在 <ph name="WEBSITE_1" /> 網站上的資料</translation>
<translation id="2617342710774726426">SIM 卡已鎖定</translation>
<translation id="2619052155095999743">Insert 鍵</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_de.xtb b/chromium/chrome/app/resources/google_chrome_strings_de.xtb
index 0ccbe68f92a..e431c463d87 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_de.xtb
@@ -125,7 +125,7 @@ Weitere Informationen wurden per E-Mail an <ph name="ACCOUNT_EMAIL" /> gesendet.
<translation id="4293420128516039005">Wenn Sie sich anmelden, wird Chrome auf allen Ihren Geräten synchronisiert und personalisiert</translation>
<translation id="4328355335528187361">Google Chrome Dev (mDNS-In)</translation>
<translation id="4331809312908958774">Chrome OS</translation>
-<translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> wurde Chrome hinzugefügt</translation>
+<translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> wurde zu Chrome hinzugefügt</translation>
<translation id="4407807842708586359">Google Chrome OS</translation>
<translation id="4458462641685292929">In Google Chrome wird eine andere Aktion durchgeführt. Bitte versuchen Sie es später noch einmal.</translation>
<translation id="4480040274068703980">Chrome OS konnte Ihre Daten aufgrund eines Fehlers bei der Anmeldung nicht synchronisieren.</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_mr.xtb b/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
index 33d7ce6718e..c983a7f475e 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -4,7 +4,7 @@
<translation id="1001534784610492198">इन्स्टॉलर संग्रहण भ्रष्ट किंवा अवैध आहे. कृपया Google Chrome पुन्हा डाउनलोड करा.</translation>
<translation id="102763973188675173">Google Chrome कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation>
<translation id="1035334672863811645">Chrome मध्ये साइन इन करा</translation>
-<translation id="1065672644894730302">आपली प्राधान्ये वाचता आली नाहीत.
+<translation id="1065672644894730302">तुमची प्राधान्ये वाचता आली नाहीत.
काही वैशिष्‍ट्ये अनुपलब्ध असू शकतात आणि प्राधान्यांमधील बदल सेव्ह केले जाणार नाहीत.</translation>
<translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> पूर्वी Chrome वापरत होते</translation>
<translation id="1104959162601287462">&amp;Chrome OS विषयी</translation>
@@ -30,7 +30,7 @@
<translation id="1682634494516646069">Google Chrome त्याची डेटा निर्देशिका वाचू किंवा लिहू शकत नाही:
<ph name="USER_DATA_DIRECTORY" /></translation>
-<translation id="1698376642261615901">Google Chrome एक वेब ब्राउझर आहे जो वेब पृष्ठे आणि अॅप्लिकेशन विजेच्या गतीने चालवितो. तो जलद, स्थिर आणि वापरण्यास सोपा आहे. Google Chrome मध्ये तयार केलेल्या मालवेयर आणि फिशिंग संरक्षणासह वेब अधिक सुरक्षितपणे ब्राउझ करा.</translation>
+<translation id="1698376642261615901">Google Chrome एक वेब ब्राउझर आहे जो वेब पेज आणि अॅप्लिकेशन विजेच्या गतीने चालवितो. तो जलद, स्थिर आणि वापरण्यास सोपा आहे. Google Chrome मध्ये तयार केलेल्या मालवेयर आणि फिशिंग संरक्षणासह वेब अधिक सुरक्षितपणे ब्राउझ करा.</translation>
<translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> निवडा</translation>
<translation id="174539241580958092">साइन इन करण्यात एरर आल्यामुळे Google Chrome आपला डेटा संकालित करू शकले नाही.</translation>
<translation id="1759842336958782510">Chrome</translation>
@@ -52,10 +52,10 @@
<translation id="2252923619938421629">वर्तमान सेटिंग्जचा अहवाल देऊन Google Chrome उत्कृष्ट बनविण्यास मदत करा</translation>
<translation id="2286950485307333924">आपण आता Chrome वर साइन इन केले आहे</translation>
<translation id="2290014774651636340">Google API की गहाळ आहेत. Google Chrome ची काही कार्यक्षमता अक्षम केली जाईल.</translation>
-<translation id="2290095356545025170">आपली खात्री आहे की आपण Google Chrome अनइंस्टॉल करू इच्छिता?</translation>
+<translation id="2290095356545025170">तुमची खात्री आहे की आपण Google Chrome अनइंस्टॉल करू इच्छिता?</translation>
<translation id="2309047409763057870">ही Google Chrome ची दुय्यम स्थापना असून त्यास आपला डीफॉल्ट ब्राउझर बनवू शकत नाही.</translation>
<translation id="2334084861041072223">Copyright <ph name="YEAR" /> Google Inc. सर्व हक्क राखीव.</translation>
-<translation id="2346876346033403680">कोणीतरी यापूर्वी या संगणकावरील Chrome मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> या रुपात साइन इन केले होते. ते आपले खाते नसल्यास, आपली माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.
+<translation id="2346876346033403680">कोणीतरी यापूर्वी या संगणकावरील Chrome मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> या रुपात साइन इन केले होते. ते आपले खाते नसल्यास, तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.
तरीही साइन इन करण्यामुळे <ph name="ACCOUNT_EMAIL_NEW" /> मध्ये बुकमार्क, इतिहास यासारखी Chrome माहिती आणि अन्य सेटिंग्ज विलीन होतील.</translation>
<translation id="2348335408836342058">या साइटसाठी Chrome ला तुमचा कॅमेरा आणि मायक्रोफोन अॅक्सेस करण्याची परवानगी हवी आहे</translation>
@@ -164,9 +164,9 @@
<translation id="532046782124376502">चेतावणी: Google Chrome हे एक्स्टेंशनना तुमचा ब्राउझिंग इतिहास रेकॉर्ड करून ठेवण्यापासून रोखू शकत नाही. हे एक्स्टेंशन बंद करण्यासाठी गुप्त मोडमधील या पर्यायाची निवड रद्द करा.</translation>
<translation id="5334545119300433702">हे मॉड्यूल Google Chrome सह विरोध असण्यासाठी ज्ञात आहे.</translation>
<translation id="5386244825306882791">आपण Chrome सुरू करता किंवा ओम्निबॉक्समधून शोध घेता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation>
-<translation id="5430073640787465221">आपली प्राधान्ये फाइल दूषित किंवा अवैध आहेत.
+<translation id="5430073640787465221">तुमची प्राधान्ये फाइल दूषित किंवा अवैध आहेत.
-Google Chrome आपली सेटिंग्ज पुर्नप्राप्त करण्‍यात अक्षम आहे.</translation>
+Google Chrome तुमची सेटिंग्ज पुर्नप्राप्त करण्‍यात अक्षम आहे.</translation>
<translation id="5495581687705680288">Google Chrome मध्ये लोड केलेली मॉड्यूल</translation>
<translation id="556024056938947818">Google Chrome पासवर्ड दर्शवण्याचा प्रयत्न करत आहे.</translation>
<translation id="5566025111015594046">Google Chrome (mDNS-मध्ये)</translation>
@@ -195,7 +195,7 @@ Google Chrome आपली सेटिंग्ज पुर्नप्रा
<translation id="6410540444482791104">धोकादायम अ‍ॅप्स आणि साइट शोधण्यात मदत करण्यासाठी Google ला काही सिस्टम माहिती आणि पृष्ठ सामग्री स्वयंचलितपणे पाठवून आपण Chromium सुरक्षित आणि वापरण्यास सुलभ बनविण्यात मदत करू शकता.</translation>
<translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome डेव्हलपर</translation>
<translation id="6566149418543181476">Google Chrome अपडेट करीत आहे (<ph name="PROGRESS_PERCENT" />)</translation>
-<translation id="6598387184982954187">आपण आपली Chrome सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खात्याशिवाय Chrome वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation>
+<translation id="6598387184982954187">आपण तुमची Chrome सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खात्याशिवाय Chrome वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation>
<translation id="6600954340915313787">Chrome वर कॉपी केले</translation>
<translation id="6634887557811630702">Google Chrome अद्ययावत आहे.</translation>
<translation id="6676384891291319759">इंटरनेटमध्ये प्रवेश करा</translation>
@@ -220,7 +220,7 @@ Google Chrome आपली सेटिंग्ज पुर्नप्रा
<translation id="7408085963519505752">Chrome OS अटी</translation>
<translation id="7419046106786626209">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chrome OS आपला डेटा संकालित करू शकले नाही.</translation>
<translation id="7437998757836447326">Chrome मधून साइन आउट करा</translation>
-<translation id="7459554271817304652">आपली वैयक्तीकृत केलेली ब्राउझर वैशिष्ट्ये जतन करण्यासाठी समक्रमण सेट करा आणि कोणत्याही संगणकावरील Google Chrome वरून त्यात प्रवेश करा.</translation>
+<translation id="7459554271817304652">तुमची वैयक्तीकृत केलेली ब्राउझर वैशिष्ट्ये सेव्ह करण्यासाठी समक्रमण सेट करा आणि कोणत्याही संगणकावरील Google Chrome वरून त्यात प्रवेश करा.</translation>
<translation id="7473136999113284234">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी सर्वात नवीन आवृत्ती असते.</translation>
<translation id="7494905215383356681">Chrome खुला स्त्रोत परवाने</translation>
<translation id="7535429826459677826">Google Chrome विकासक</translation>
@@ -238,7 +238,7 @@ Google Chrome आपली सेटिंग्ज पुर्नप्रा
<translation id="7855730255114109580">Google Chrome अद्ययावत झाले आहे</translation>
<translation id="7888186132678118370">Chrome ला आपल्या टास्कबार वर पिन करा</translation>
<translation id="7890208801193284374">आपण कॉंप्युटर सामायिक केल्यास, मित्र आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना पाहिजे तसे Chrome सेट अप करू शकतात.</translation>
-<translation id="7896673875602241923">कोणीतरी यापूर्वी <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून या संंगणकावरील Chrome मध्ये साइन इन केले आहे. कृपया आपली माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.</translation>
+<translation id="7896673875602241923">कोणीतरी यापूर्वी <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून या संंगणकावरील Chrome मध्ये साइन इन केले आहे. कृपया तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.</translation>
<translation id="7908168227788431038">जवळजवळ अद्ययावत पूर्ण झाले! अपडेट समाप्त करण्यासाठी Google Chrome रीलाँच करा.</translation>
<translation id="7962410387636238736">Windows XP आणि Windows Vista ला आता सपोर्ट नसल्याने या कॉंप्युटरला यापुढे Google Chrome अपडेट मिळणार नाहीत</translation>
<translation id="8005540215158006229">Chrome जवळजवळ तयार आहे.</translation>
@@ -254,7 +254,7 @@ Google Chrome आपली सेटिंग्ज पुर्नप्रा
<translation id="8342675569599923794">ही फाईल धोकादायक आहे, त्यामुळे Chrome ने ती अवरोधित केली आहे.</translation>
<translation id="840084489713044809">Google Chrome ला तुमचे पासवर्ड निर्यात करायचे आहेत.</translation>
<translation id="8406086379114794905">Chrome उत्कृष्ट बनविण्यात मदत करा</translation>
-<translation id="8439301513305169426">Chrome <ph name="SAVED_PASSWORD_LINK" /> सह हा पासवर्ड जतन करेल. आपल्याला हे लक्षात ठेवण्याची आवश्यकता नाही.</translation>
+<translation id="8439301513305169426">Chrome <ph name="SAVED_PASSWORD_LINK" /> सह हा पासवर्ड सेव्ह करेल. आपल्याला हे लक्षात ठेवण्याची आवश्यकता नाही.</translation>
<translation id="8455999171311319804">पर्यायी: निदान आणि वापर डेटा Google कडे स्वयंचलितपणे पाठवून Chrome OS ला आणखी चांगले बनविण्‍यात मदत करा.</translation>
<translation id="8478823064122749032">Chrome आपल्या फोनवर स्‍थापित करा. आम्ही आपल्या या खाते पुनर्प्राप्ती फोन नंबरवर एक SMS पाठवू: <ph name="PHONE_NUMBER" /></translation>
<translation id="8521348052903287641">Google Chrome विकासकाने mDNS रहदारीस अनुमती देण्यासाठी इनबाउंड नियम.</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_nl.xtb b/chromium/chrome/app/resources/google_chrome_strings_nl.xtb
index c6e937e0c2c..9941668cb13 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -248,7 +248,7 @@ Sommige functies zijn wellicht niet beschikbaar. Geef een andere profieldirector
<translation id="8032142183999901390">Nadat je je account uit Chrome hebt verwijderd, moet je je geopende tabbladen mogelijk opnieuw laden om de wijzigingen door te voeren.</translation>
<translation id="8129812357326543296">Over &amp;Google Chrome</translation>
<translation id="8179874765710681175">Installeer Chrome op je telefoon. We sturen een sms naar je telefoon.</translation>
-<translation id="8183957050892517584">Chrome slaat je persoonlijke gegevens veilig op, zodat je ze niet opnieuw hoeft op te geven.</translation>
+<translation id="8183957050892517584">Chrome slaat je persoonlijke gegevens beveiligd op, zodat je ze niet opnieuw hoeft op te geven.</translation>
<translation id="8255190535488645436">Google Chrome gebruikt je camera en microfoon.</translation>
<translation id="8286862437124483331">Google Chrome probeert wachtwoorden weer te geven. Geef je Windows-wachtwoord op om dit toe te staan.</translation>
<translation id="8290100596633877290">Oeps! Google Chrome is vastgelopen. Nu opnieuw starten?</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_sw.xtb b/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
index 6c8f38ecac1..c40109b794f 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -38,7 +38,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="1773601347087397504">Pata msaada wa kutumia Chrome OS</translation>
<translation id="1795405610103747296">Sakinisha Chrome kwenye simu yako. Tutatuma SMS kwenye simu yako: <ph name="PHONE_NUMBER" /></translation>
<translation id="1860536484129686729">Chrome inahitaji ruhusa ya kufikia kamera yako katika tovuti hii</translation>
-<translation id="1873233029667955273">Google Chrome si kivinjari chako chaguo-msingi</translation>
+<translation id="1873233029667955273">Google Chrome si kivinjari chako chaguo msingi</translation>
<translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
<translation id="1877026089748256423">Toleo hili la Chrome limepitwa na wakati</translation>
<translation id="2007150628464581396">{0,plural, =1{Chrome itawaka upya baada ya dakika 1}other{Chrome itawaka upya baada ya dakika #}}</translation>
@@ -54,7 +54,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi
<translation id="2286950485307333924">Sasa umeingia katika Chrome</translation>
<translation id="2290014774651636340">Funguo za API za Google zinakosekana. Baadhi ya utendaji wa Google Chrome utazimwa.</translation>
<translation id="2290095356545025170">Je, una hakika kuwa ungependa kusanidua Google Chrome?</translation>
-<translation id="2309047409763057870">Huu ni usakinishaji wa pili wa Google Chrome, na haiwezi kufanywa kuwa kivinjari chako chaguo-msingi.</translation>
+<translation id="2309047409763057870">Huu ni usakinishaji wa pili wa Google Chrome, na haiwezi kufanywa kuwa kivinjari chako chaguo msingi.</translation>
<translation id="2334084861041072223">Hakimiliki <ph name="YEAR" /> Google Inc. Haki zote zimehifadhiwa.</translation>
<translation id="2346876346033403680">Awali mtu aliingia katika Chrome kwenye kompyuta hii kama <ph name="ACCOUNT_EMAIL_LAST" />. Iwapo hiyo sio akaunti yako, weka mtumiaji mwengine wa Chrome ili utenganishe maelezo yako.
@@ -88,7 +88,7 @@ Kuingia bila kujali kutaunganisha maelezo ya Chrome kama vile alamisho, historia
<translation id="3089968997497233615">Kuna toleo jipya na salama la Google Chrome.</translation>
<translation id="3149510190863420837">Programu za Chrome</translation>
<translation id="3180085900771989961">Lazima msimamizi wako akuondoe na kukuongeza tena kwenye Chrome.</translation>
-<translation id="3251381707915721925">Ili uweke tovuti ambazo <ph name="NEW_PROFILE_NAME" /> anaweza kuona, unaweza kuweka vizuizi na mipangilio kwa kutembelea <ph name="BEGIN_LINK_1" /><ph name="DISPLAY_LINK" /><ph name="END_LINK_1" />. Usipobadilisha mipangilio chaguo-msingi <ph name="NEW_PROFILE_NAME" /> anaweza kuvinjari kila kitu kwenye wavuti.
+<translation id="3251381707915721925">Ili uweke tovuti ambazo <ph name="NEW_PROFILE_NAME" /> anaweza kuona, unaweza kuweka vizuizi na mipangilio kwa kutembelea <ph name="BEGIN_LINK_1" /><ph name="DISPLAY_LINK" /><ph name="END_LINK_1" />. Usipobadilisha mipangilio chaguo msingi <ph name="NEW_PROFILE_NAME" /> anaweza kuvinjari kila kitu kwenye wavuti.
Ili uzuie <ph name="NEW_PROFILE_NAME" /> asifikie akaunti yako, hakikisha kuwa umefunga wasifu wako wakati hutumii Chrome. Ili ufunge wasifu wako, bofya jina lako la wasifu katika upande wa juu kulia mwa kivinjari, kisha uchague "Ondoka kwenye wasifu wa sasa."
<ph name="BEGIN_LINK_2" />Pata maelezo zaidi<ph name="END_LINK_2" />
@@ -151,7 +151,7 @@ Tafadhali angalia barua pepe yako katika <ph name="ACCOUNT_EMAIL" /> upate maagi
<translation id="4891791193823137474">Ruhusu Google Chrome iendeshe katika mandharinyuma</translation>
<translation id="4895437082222824641">Fungua kiungo katika kichupo kipya cha Chrome</translation>
<translation id="4921569541910214635">Ungependa kushiriki kompyuta? Sasa unaweza kusanidi Chrome kama tu unavyoipenda.</translation>
-<translation id="4953650215774548573">Weka Google Chrome iwe kivinjari chako chaguo-msingi</translation>
+<translation id="4953650215774548573">Weka Google Chrome iwe kivinjari chako chaguo msingi</translation>
<translation id="495931528404527476">Katika Chrome</translation>
<translation id="4990567037958725628">Kanari ya Google Chrome</translation>
<translation id="5028489144783860647">Google Chrome haikuweza kusawazisha data yako. Tafadhali sasisha kauli siri yako ya Usawazishaji.</translation>
@@ -183,7 +183,7 @@ Google Chrome haiwezi kufufua mipangilio yako.</translation>
<translation id="5895138241574237353">Zzima na uwashe</translation>
<translation id="5906655207909574370">Inakaribia kukamilisha kusasishwa! Zima na uwashe kifaa chako ili ukamilishe kusasisha.</translation>
<translation id="5940385492829620908">Wavuti, alamisho, na vitu vyako vingine vya Chrome vinapatikana hapa.</translation>
-<translation id="5941830788786076944">Fanya Google Chrome iwe kivinjari chaguo-msingi</translation>
+<translation id="5941830788786076944">Fanya Google Chrome iwe kivinjari chaguo msingi</translation>
<translation id="6014844626092547096">Sasa umeingia kwenye Chrome! Usawazishaji umezimwa na msimamizi wako.</translation>
<translation id="6070348360322141662">Kwa usalama wa ziada, Google Chrome itasimba data yako kwa njia fiche</translation>
<translation id="6113794647360055231">Chrome imeboreshwa zaidi</translation>
@@ -272,7 +272,7 @@ Google Chrome haiwezi kufufua mipangilio yako.</translation>
<translation id="8669527147644353129">Msaidizi wa Google Chrome</translation>
<translation id="8679801911857917785">Pia inadhibiti ukurasa unaoonyeshwa unapoanzisha Chrome.</translation>
<translation id="870251953148363156">Sasisha &amp;Google Chrome</translation>
-<translation id="873133009373065397">Google Chrome haijafaulu kubainisha wala kuweka kivinjari chaguo-msingi</translation>
+<translation id="873133009373065397">Google Chrome haijafaulu kubainisha wala kuweka kivinjari chaguo msingi</translation>
<translation id="8736674169840206667">Msimamizi wako anakushauri uwashe Chrome upya ili utumie sasisho</translation>
<translation id="8796108026289707191">Unapaswa kuzima na kuwasha Google Chrome sasa.</translation>
<translation id="8823341990149967727">Toleo hili la Chrome Limepitwa na Wakati</translation>
@@ -284,6 +284,6 @@ Google Chrome haiwezi kufufua mipangilio yako.</translation>
<translation id="9084668267983921457">Cheti hakijathibitishwa. Tafadhali ingia katika Google Chrome tena au uwasiliane na msimamizi wako kwa maelezo zaidi. <ph name="ADDITIONAL_EXPLANATION" /></translation>
<translation id="911206726377975832">Futa historia yako ya kuvinjari pia?</translation>
<translation id="919706545465235479">Sasisha Chrome ili uanze kusawazisha</translation>
-<translation id="924447568950697217">Fanya Chrome iwe kivinjari chako chaguo-msingi</translation>
-<translation id="989369509083708165">Google Chrome ni kivinjari chako chaguo-msingi</translation>
+<translation id="924447568950697217">Fanya Chrome iwe kivinjari chako chaguo msingi</translation>
+<translation id="989369509083708165">Google Chrome ni kivinjari chako chaguo msingi</translation>
</translationbundle> \ No newline at end of file
diff --git a/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc
index 319125a0f89..47413054d45 100644
--- a/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -68,8 +68,12 @@ bool IsPrivilegedCrosSetting(const std::string& pref_name) {
#endif
bool IsSettingReadOnly(const std::string& pref_name) {
+ // download.default_directory is used to display the directory location and
+ // for policy indicators, but should not be changed directly.
+ if (pref_name == prefs::kDownloadDefaultDirectory)
+ return true;
#if defined(OS_CHROMEOS)
- // System timezone is never directly changable by the user.
+ // System timezone is never directly changeable by the user.
if (pref_name == chromeos::kSystemTimezone)
return chromeos::system::PerUserTimezoneEnabled();
// enable_screen_lock must be changed through the quickUnlockPrivate API.
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
index 9d4b50b6b41..6b59385b7ae 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
@@ -1,5 +1,5 @@
{
- "x-version": 28,
+ "x-version": 30,
"google-talk": {
"mime_types": [
],
@@ -80,9 +80,9 @@
],
"versions": [
{
- "version": "28.0.0.161",
+ "version": "29.0.0.171",
"status": "up_to_date",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-03.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-16.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
index 5a7f063708f..f305b16a88d 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
@@ -1,5 +1,5 @@
{
- "x-version": 34,
+ "x-version": 36,
"google-talk": {
"mime_types": [
],
@@ -115,9 +115,9 @@
],
"versions": [
{
- "version": "28.0.0.161",
+ "version": "29.0.0.171",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-03.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-16.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
index 4d356b256f0..aaea0f38b2b 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
@@ -1,5 +1,5 @@
{
- "x-version": 43,
+ "x-version": 45,
"google-talk": {
"mime_types": [
],
@@ -137,9 +137,9 @@
],
"versions": [
{
- "version": "28.0.0.161",
+ "version": "29.0.0.171",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-03.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb18-16.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 1d14df0f557..6ee8837135b 100644
--- a/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -65,7 +65,11 @@
#if defined(OS_WIN)
#include "chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h"
+
+#if defined(GOOGLE_CHROME_BUILD)
+#include "base/metrics/field_trial_params.h"
#endif
+#endif // defined(OS_WIN)
#if defined(USE_NSS_CERTS)
#include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h"
@@ -917,10 +921,17 @@ void AddIncompatibleApplicationsStrings(content::WebUIDataSource* html_source) {
};
AddLocalizedStringsBulk(html_source, localized_strings,
arraysize(localized_strings));
- // TODO(pmonette): Add the help URL when available.
- base::string16 learn_how_text = l10n_util::GetStringFUTF16(
- IDS_SETTINGS_INCOMPATIBLE_APPLICATIONS_SUBPAGE_LEARN_HOW,
- base::ASCIIToUTF16("chrome://placeholder"));
+
+ // The help URL is provided via Field Trial param. If none is provided, the
+ // "Learn How" text is left empty so that no link is displayed.
+ base::string16 learn_how_text;
+ std::string help_url = GetFieldTrialParamValueByFeature(
+ features::kIncompatibleApplicationsWarning, "HelpURL");
+ if (!help_url.empty()) {
+ learn_how_text = l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_INCOMPATIBLE_APPLICATIONS_SUBPAGE_LEARN_HOW,
+ base::UTF8ToUTF16(help_url));
+ }
html_source->AddString("incompatibleApplicationsSubpageLearnHow",
learn_how_text);
}
diff --git a/chromium/chrome/test/BUILD.gn b/chromium/chrome/test/BUILD.gn
index 22e025b3c1b..130e3619f2c 100644
--- a/chromium/chrome/test/BUILD.gn
+++ b/chromium/chrome/test/BUILD.gn
@@ -1666,6 +1666,7 @@ test("browser_tests") {
"../browser/extensions/chromeos_component_extensions_browsertest.cc",
"../browser/mash_service_registry_browsertest.cc",
"../browser/notifications/chrome_ash_message_center_client_browsertest.cc",
+ "../browser/notifications/notification_platform_bridge_chromeos_browsertest.cc",
"../browser/resources/chromeos/zip_archiver/test/zip_archiver_jstest.cc",
"../browser/signin/chromeos_mirror_account_consistency_browsertest.cc",
"../browser/ui/app_list/app_list_browsertest.cc",
@@ -2417,6 +2418,7 @@ test("unit_tests") {
"../browser/notifications/metrics/notification_metrics_logger_unittest.cc",
"../browser/notifications/notification_channels_provider_android_unittest.cc",
"../browser/notifications/notification_permission_context_unittest.cc",
+ "../browser/notifications/notification_platform_bridge_chromeos_unittest.cc",
"../browser/notifications/notification_platform_bridge_mac_unittest.mm",
"../browser/notifications/platform_notification_service_unittest.cc",
"../browser/notifications/stub_alert_dispatcher_mac.h",
diff --git a/chromium/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc b/chromium/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc
index becc1289c2b..afa749b6d1b 100644
--- a/chromium/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc
+++ b/chromium/components/autofill/core/browser/autofill_save_card_infobar_delegate_mobile.cc
@@ -8,6 +8,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
+#include "components/autofill/core/browser/autofill_experiments.h"
#include "components/autofill/core/browser/credit_card.h"
#include "components/autofill/core/browser/legal_message_line.h"
#include "components/autofill/core/common/autofill_constants.h"
@@ -95,8 +96,11 @@ base::string16 AutofillSaveCardInfoBarDelegateMobile::GetTitleText() const {
base::string16 AutofillSaveCardInfoBarDelegateMobile::GetDescriptionText()
const {
- return l10n_util::GetStringUTF16(
- IDS_AUTOFILL_SAVE_CARD_PROMPT_UPLOAD_EXPLANATION_V2);
+ return IsAutofillUpstreamUpdatePromptExplanationExperimentEnabled()
+ ? l10n_util::GetStringUTF16(
+ IDS_AUTOFILL_SAVE_CARD_PROMPT_UPLOAD_EXPLANATION_V3)
+ : l10n_util::GetStringUTF16(
+ IDS_AUTOFILL_SAVE_CARD_PROMPT_UPLOAD_EXPLANATION_V2);
}
int AutofillSaveCardInfoBarDelegateMobile::GetIconId() const {
diff --git a/chromium/components/exo/BUILD.gn b/chromium/components/exo/BUILD.gn
index 4fec457f9c7..be7d79a9876 100644
--- a/chromium/components/exo/BUILD.gn
+++ b/chromium/components/exo/BUILD.gn
@@ -206,6 +206,7 @@ test("exo_unittests") {
"//ui/aura:test_support",
"//ui/base",
"//ui/compositor:test_support",
+ "//ui/display:display_manager_test_api",
"//ui/gl:test_support",
]
diff --git a/chromium/components/exo/client_controlled_shell_surface.cc b/chromium/components/exo/client_controlled_shell_surface.cc
index aaa19008e09..f7651175407 100644
--- a/chromium/components/exo/client_controlled_shell_surface.cc
+++ b/chromium/components/exo/client_controlled_shell_surface.cc
@@ -505,8 +505,13 @@ void ClientControlledShellSurface::OnDragFinished(bool canceled,
// SurfaceDelegate overrides:
void ClientControlledShellSurface::OnSurfaceCommit() {
- if (!widget_)
+ if (!widget_) {
+ // Modify the |origin_| to the |pending_geometry_| to place the window
+ // on the intended display. See b/77472684 for the details.
+ if (!pending_geometry_.IsEmpty())
+ origin_ = pending_geometry_.origin();
CreateShellSurfaceWidget(ash::ToWindowShowState(pending_window_state_));
+ }
ash::wm::WindowState* window_state = GetWindowState();
if (window_state->GetStateType() != pending_window_state_) {
diff --git a/chromium/components/exo/client_controlled_shell_surface_unittest.cc b/chromium/components/exo/client_controlled_shell_surface_unittest.cc
index 89cedc19ad1..19f4859cf80 100644
--- a/chromium/components/exo/client_controlled_shell_surface_unittest.cc
+++ b/chromium/components/exo/client_controlled_shell_surface_unittest.cc
@@ -35,6 +35,8 @@
#include "ui/aura/window_event_dispatcher.h"
#include "ui/aura/window_tree_host.h"
#include "ui/compositor_extra/shadow.h"
+#include "ui/display/display.h"
+#include "ui/display/test/display_manager_test_api.h"
#include "ui/events/base_event_utils.h"
#include "ui/events/event_targeter.h"
#include "ui/events/test/event_generator.h"
@@ -1108,4 +1110,56 @@ TEST_F(ClientControlledShellSurfaceTest, WideFrame) {
EXPECT_FALSE(shell_surface->wide_frame_for_test());
}
+TEST_F(ClientControlledShellSurfaceTest, MultiDisplay) {
+ display::test::DisplayManagerTestApi test_api(
+ ash::Shell::Get()->display_manager());
+ test_api.UpdateDisplay("100x100,100+0-100x100");
+
+ gfx::Size buffer_size(64, 64);
+ std::unique_ptr<Buffer> buffer(
+ new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)));
+
+ {
+ std::unique_ptr<Surface> surface(new Surface);
+ auto shell_surface =
+ exo_test_helper()->CreateClientControlledShellSurface(surface.get());
+
+ gfx::Rect geometry(16, 16, 32, 32);
+ shell_surface->SetGeometry(geometry);
+ surface->Attach(buffer.get());
+ surface->Commit();
+ EXPECT_EQ(geometry.size().ToString(), shell_surface->GetWidget()
+ ->GetWindowBoundsInScreen()
+ .size()
+ .ToString());
+
+ display::Display display =
+ display::Screen::GetScreen()->GetDisplayNearestWindow(
+ shell_surface->host_window());
+ EXPECT_EQ(gfx::Point(0, 0).ToString(),
+ display.bounds().origin().ToString());
+ }
+
+ {
+ std::unique_ptr<Surface> surface(new Surface);
+ auto shell_surface =
+ exo_test_helper()->CreateClientControlledShellSurface(surface.get());
+
+ gfx::Rect geometry(116, 16, 32, 32);
+ shell_surface->SetGeometry(geometry);
+ surface->Attach(buffer.get());
+ surface->Commit();
+ EXPECT_EQ(geometry.size().ToString(), shell_surface->GetWidget()
+ ->GetWindowBoundsInScreen()
+ .size()
+ .ToString());
+
+ display::Display display =
+ display::Screen::GetScreen()->GetDisplayNearestWindow(
+ shell_surface->host_window());
+ EXPECT_EQ(gfx::Point(100, 0).ToString(),
+ display.bounds().origin().ToString());
+ }
+}
+
} // namespace exo
diff --git a/chromium/components/exo/shell_surface_base.h b/chromium/components/exo/shell_surface_base.h
index e27cbcfcd0c..498e47cff21 100644
--- a/chromium/components/exo/shell_surface_base.h
+++ b/chromium/components/exo/shell_surface_base.h
@@ -305,6 +305,8 @@ class ShellSurfaceBase : public SurfaceTreeHost,
gfx::Vector2d pending_origin_offset_accumulator_;
int resize_component_ = HTCAPTION; // HT constant (see ui/base/hit_test.h)
int pending_resize_component_ = HTCAPTION;
+ gfx::Rect geometry_;
+ gfx::Rect pending_geometry_;
base::Optional<gfx::Rect> shadow_bounds_;
bool shadow_bounds_changed_ = false;
std::unique_ptr<ash::WindowResizer> resizer_;
@@ -360,8 +362,6 @@ class ShellSurfaceBase : public SurfaceTreeHost,
bool pending_show_widget_ = false;
base::Optional<std::string> application_id_;
base::Optional<std::string> startup_id_;
- gfx::Rect geometry_;
- gfx::Rect pending_geometry_;
base::RepeatingClosure close_callback_;
base::OnceClosure surface_destroyed_callback_;
ScopedConfigure* scoped_configure_ = nullptr;
diff --git a/chromium/components/ntp_snippets/contextual/cluster.cc b/chromium/components/ntp_snippets/contextual/cluster.cc
index b706a794850..ebd3c491d39 100644
--- a/chromium/components/ntp_snippets/contextual/cluster.cc
+++ b/chromium/components/ntp_snippets/contextual/cluster.cc
@@ -30,6 +30,8 @@ ClusterBuilder::ClusterBuilder(const ClusterBuilder& other) {
.PublisherName(suggestion.publisher_name)
.Snippet(suggestion.snippet)
.ImageId(suggestion.image_id)
+ .FaviconImageId(suggestion.favicon_image_id)
+ .FaviconImageUrl(suggestion.favicon_image_url)
.Build());
}
}
@@ -43,4 +45,4 @@ Cluster ClusterBuilder::Build() {
return std::move(cluster_);
}
-} // namespace contextual_suggestions \ No newline at end of file
+} // namespace contextual_suggestions
diff --git a/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.cc b/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.cc
index 9f3a2e3fb66..d622fd3b833 100644
--- a/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.cc
+++ b/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.cc
@@ -60,7 +60,10 @@ void ContextualContentSuggestionsServiceProxy::FetchContextualSuggestionImage(
return;
}
- FetchImageImpl(suggestion_iter->second.image_id, std::move(callback));
+ std::string& image_id = suggestion_iter->second.image_id;
+ GURL image_url = ImageUrlFromId(image_id);
+
+ FetchImageImpl(image_url, image_id, std::move(callback));
}
void ContextualContentSuggestionsServiceProxy::FetchContextualSuggestionFavicon(
@@ -74,7 +77,8 @@ void ContextualContentSuggestionsServiceProxy::FetchContextualSuggestionFavicon(
return;
}
- FetchImageImpl(suggestion_iter->second.favicon_image_id, std::move(callback));
+ FetchImageImpl(GURL(suggestion_iter->second.favicon_image_url),
+ suggestion_iter->second.favicon_image_id, std::move(callback));
}
void ContextualContentSuggestionsServiceProxy::ClearState() {
@@ -111,10 +115,9 @@ void ContextualContentSuggestionsServiceProxy::FlushMetrics() {
}
void ContextualContentSuggestionsServiceProxy::FetchImageImpl(
+ const GURL& image_url,
const std::string& image_id,
ntp_snippets::ImageFetchedCallback callback) {
- GURL image_url = ImageUrlFromId(image_id);
-
ntp_snippets::ContentSuggestion::ID synthetic_cache_id(
ntp_snippets::Category::FromKnownCategory(
ntp_snippets::KnownCategories::CONTEXTUAL),
diff --git a/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.h b/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.h
index e448659558a..d5dfc58e8c5 100644
--- a/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.h
+++ b/chromium/components/ntp_snippets/contextual/contextual_content_suggestions_service_proxy.h
@@ -58,7 +58,8 @@ class ContextualContentSuggestionsServiceProxy {
void FlushMetrics();
private:
- void FetchImageImpl(const std::string& image_id,
+ void FetchImageImpl(const GURL& image_url,
+ const std::string& image_id,
ntp_snippets::ImageFetchedCallback callback);
void CacheSuggestions(ClustersCallback callback,
diff --git a/chromium/components/ntp_snippets/contextual/contextual_suggestion.cc b/chromium/components/ntp_snippets/contextual/contextual_suggestion.cc
index 20cb47ca881..ce8e1bd5158 100644
--- a/chromium/components/ntp_snippets/contextual/contextual_suggestion.cc
+++ b/chromium/components/ntp_snippets/contextual/contextual_suggestion.cc
@@ -21,7 +21,8 @@ ContextualSuggestion::ContextualSuggestion(
publisher_name(std::move(other.publisher_name)),
snippet(std::move(other.snippet)),
image_id(std::move(other.image_id)),
- favicon_image_id(std::move(other.favicon_image_id)) {}
+ favicon_image_id(std::move(other.favicon_image_id)),
+ favicon_image_url(std::move(other.favicon_image_url)) {}
ContextualSuggestion::~ContextualSuggestion() = default;
@@ -57,8 +58,14 @@ SuggestionBuilder& SuggestionBuilder::FaviconImageId(
return *this;
}
+SuggestionBuilder& SuggestionBuilder::FaviconImageUrl(
+ const std::string& favicon_image_url) {
+ suggestion_.favicon_image_url = favicon_image_url;
+ return *this;
+}
+
ContextualSuggestion SuggestionBuilder::Build() {
return std::move(suggestion_);
}
-} // namespace ntp_snippets \ No newline at end of file
+} // namespace ntp_snippets
diff --git a/chromium/components/ntp_snippets/contextual/contextual_suggestion.h b/chromium/components/ntp_snippets/contextual/contextual_suggestion.h
index c13753653df..8e015ce879d 100644
--- a/chromium/components/ntp_snippets/contextual/contextual_suggestion.h
+++ b/chromium/components/ntp_snippets/contextual/contextual_suggestion.h
@@ -38,6 +38,9 @@ struct ContextualSuggestion {
// As above, but for identifying the favicon for the site the suggestion
// resides on.
std::string favicon_image_id;
+
+ // The favicon URL for the suggestion.
+ std::string favicon_image_url;
};
// Allows compact, precise construction of a ContextualSuggestion. Its main
@@ -52,6 +55,7 @@ class SuggestionBuilder {
SuggestionBuilder& Snippet(const std::string& snippet);
SuggestionBuilder& ImageId(const std::string& image_id);
SuggestionBuilder& FaviconImageId(const std::string& favicon_image_id);
+ SuggestionBuilder& FaviconImageUrl(const std::string& favicon_image_url);
ContextualSuggestion Build();
private:
diff --git a/chromium/components/ntp_snippets/contextual/contextual_suggestions_fetch.cc b/chromium/components/ntp_snippets/contextual/contextual_suggestions_fetch.cc
index 0e42aa0b048..4985c3d23b2 100644
--- a/chromium/components/ntp_snippets/contextual/contextual_suggestions_fetch.cc
+++ b/chromium/components/ntp_snippets/contextual/contextual_suggestions_fetch.cc
@@ -47,12 +47,19 @@ std::string Unescape(const std::string& encoded_text) {
ContextualSuggestion ItemToSuggestion(const PivotItem& item) {
PivotDocument document = item.document();
+ std::string favicon_url;
+ if (document.favicon_image().source_data().has_raster()) {
+ favicon_url =
+ document.favicon_image().source_data().raster().url().raw_url();
+ }
+
return SuggestionBuilder(GURL(document.url().raw_url()))
.Title(Unescape(document.title()))
.Snippet(Unescape(document.summary()))
.PublisherName(Unescape(document.site_name()))
.ImageId(document.image().id().encrypted_docid())
.FaviconImageId(document.favicon_image().id().encrypted_docid())
+ .FaviconImageUrl(favicon_url)
.Build();
}
@@ -279,4 +286,4 @@ void ContextualSuggestionsFetch::ReportFetchMetrics(
std::move(metrics_callback).Run(event);
}
-} // namespace contextual_suggestions \ No newline at end of file
+} // namespace contextual_suggestions
diff --git a/chromium/components/ntp_snippets/contextual/proto/get_pivots_response.proto b/chromium/components/ntp_snippets/contextual/proto/get_pivots_response.proto
index 826c8f4f9e7..72b54f6bc16 100644
--- a/chromium/components/ntp_snippets/contextual/proto/get_pivots_response.proto
+++ b/chromium/components/ntp_snippets/contextual/proto/get_pivots_response.proto
@@ -108,6 +108,9 @@ message Url {
message Image {
// The identity of this image.
optional ImageId id = 1;
+
+ // The underlying source data that encodes the image.
+ optional ImageSource source_data = 2;
}
message ImageId {
@@ -123,3 +126,16 @@ message ImageId {
// ... has an encrypted doc ID of "e-AB_0zkH08qtM".
optional string encrypted_docid = 1;
}
+
+// Represents the underlying encoding / source data for an image.
+message ImageSource {
+ // The raster image representation.
+ optional RasterImage raster = 1;
+}
+
+// A representation of an image as a collection of pixels at a specific size.
+message RasterImage {
+ // A URL at which the image may be retrieved. The format of the image
+ // is determined by the "Content-Type" of the HTTP response for the URL.
+ optional Url url = 2;
+}
diff --git a/chromium/components/sessions/core/tab_restore_service_helper.cc b/chromium/components/sessions/core/tab_restore_service_helper.cc
index d7e3a9543d4..3a142b4dfcd 100644
--- a/chromium/components/sessions/core/tab_restore_service_helper.cc
+++ b/chromium/components/sessions/core/tab_restore_service_helper.cc
@@ -319,11 +319,10 @@ std::vector<LiveTab*> TabRestoreServiceHelper::RestoreEntryById(
} else {
// Restore a single tab from the window. Find the tab that matches the
// ID in the window and restore it.
- for (auto tab_i = window.tabs.begin(); tab_i != window.tabs.end();
- ++tab_i) {
+ for (size_t tab_i = 0; tab_i < window.tabs.size(); tab_i++) {
SessionID::id_type restored_tab_browser_id;
{
- const Tab& tab = **tab_i;
+ const Tab& tab = *window.tabs[tab_i];
if (tab.id != id)
continue;
@@ -331,13 +330,20 @@ std::vector<LiveTab*> TabRestoreServiceHelper::RestoreEntryById(
LiveTab* restored_tab = nullptr;
context = RestoreTab(tab, context, disposition, &restored_tab);
live_tabs.push_back(restored_tab);
- window.tabs.erase(tab_i);
+ DCHECK(ValidateWindow(window));
+ window.tabs.erase(window.tabs.begin() + tab_i);
}
// If restoring the tab leaves the window with nothing else, delete it
// as well.
if (window.tabs.empty()) {
entries_.erase(entry_iterator);
} else {
+ // Adjust |selected_tab index| to keep the window in a valid state.
+ if (static_cast<int>(tab_i) <= window.selected_tab_index) {
+ window.selected_tab_index =
+ std::max(0, window.selected_tab_index - 1);
+ }
+ DCHECK(ValidateWindow(window));
// Update the browser ID of the rest of the tabs in the window so if
// any one is restored, it goes into the same window as the tab
// being restored now.
diff --git a/chromium/components/strings/components_chromium_strings_nl.xtb b/chromium/components/strings/components_chromium_strings_nl.xtb
index a1d08b5424f..7931dca9bfd 100644
--- a/chromium/components/strings/components_chromium_strings_nl.xtb
+++ b/chromium/components/strings/components_chromium_strings_nl.xtb
@@ -4,7 +4,7 @@
<translation id="130631256467250065">Je wijzigingen worden doorgevoerd wanneer je het apparaat opnieuw opstart.</translation>
<translation id="1838412507805038478">Chromium heeft bevestigd dat <ph name="ISSUER" /> het certificaat voor deze website heeft verstrekt.</translation>
<translation id="275588974610408078">Crashrapportage is niet beschikbaar in Chromium.</translation>
-<translation id="3064346599913645280">Je bekijkt een veilige Chromium-pagina</translation>
+<translation id="3064346599913645280">Je bekijkt een beveiligde Chromium-pagina</translation>
<translation id="3550966579244642892">De eerste configuratie van Chromium OS is niet voltooid.</translation>
<translation id="4365115785552740256">Chromium wordt mogelijk gemaakt door het <ph name="BEGIN_LINK_CHROMIUM" />Chromium<ph name="END_LINK_CHROMIUM" /> open-sourceproject en andere <ph name="BEGIN_LINK_OSS" />open-sourcesoftware<ph name="END_LINK_OSS" />.</translation>
<translation id="4559775032954821361">Ga naar
diff --git a/chromium/components/strings/components_google_chrome_strings_nl.xtb b/chromium/components/strings/components_google_chrome_strings_nl.xtb
index 52f0ad61de0..c87dee3b59e 100644
--- a/chromium/components/strings/components_google_chrome_strings_nl.xtb
+++ b/chromium/components/strings/components_google_chrome_strings_nl.xtb
@@ -9,7 +9,7 @@
<translation id="3444832043240812445">Deze pagina bevat alleen informatie over recente crashes als je <ph name="BEGIN_LINK" />crashrapportage inschakelt<ph name="END_LINK" />.</translation>
<translation id="3875312571075912821">Sta Chrome toe via je firewall- of antivirusinstellingen het netwerk te gebruiken.</translation>
<translation id="4010643444566880169">De eerste configuratie van Chrome OS is niet voltooid.</translation>
-<translation id="4853578032408195113">Je bekijkt een veilige Google Chrome-pagina</translation>
+<translation id="4853578032408195113">Je bekijkt een beveiligde Google Chrome-pagina</translation>
<translation id="6011049234605203654">Ga naar
het menu 'Chrome' &gt;
<ph name="SETTINGS_TITLE" />
diff --git a/chromium/components/strings/components_strings_bn.xtb b/chromium/components/strings/components_strings_bn.xtb
index 2f867f98d86..76fa33ab90a 100644
--- a/chromium/components/strings/components_strings_bn.xtb
+++ b/chromium/components/strings/components_strings_bn.xtb
@@ -980,7 +980,7 @@
<translation id="8202097416529803614">অর্ডারের সারসংক্ষেপ</translation>
<translation id="8205463626947051446">সাইটটিতে বিরক্তিকরভাবে বিজ্ঞাপন দেখানো হয়</translation>
<translation id="8211406090763984747">কানেকশনটি নিরাপদ</translation>
-<translation id="8218327578424803826">নির্ধারিত অবস্থান:</translation>
+<translation id="8218327578424803826">নির্ধারিত লোকেশন:</translation>
<translation id="8225771182978767009">এই কম্পিউটার যিনি সেট আপ করেছেন তিনি এই সাইটটি অবরুদ্ধ করার বিষয়টি চয়ন করেছেন।</translation>
<translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
<translation id="8238581221633243064">নতুন ছদ্মবেশী ট্যাবে একটি পৃষ্ঠা খুলুন</translation>
diff --git a/chromium/components/strings/components_strings_iw.xtb b/chromium/components/strings/components_strings_iw.xtb
index 52746f9edf6..b25fe991ec8 100644
--- a/chromium/components/strings/components_strings_iw.xtb
+++ b/chromium/components/strings/components_strings_iw.xtb
@@ -244,7 +244,7 @@
<translation id="2653659639078652383">שלח</translation>
<translation id="2666117266261740852">סגירת כרטיסיות או יישומים אחרים</translation>
<translation id="2674170444375937751">האם אתה בטוח שברצונך להסיר דפים אלו מההיסטוריה שלך?</translation>
-<translation id="2677748264148917807">צא</translation>
+<translation id="2677748264148917807">יציאה</translation>
<translation id="2699302886720511147">כרטיסים שהסוחר מקבל</translation>
<translation id="2702801445560668637">רשימת קריאה</translation>
<translation id="2704283930420550640">הערך לא תואם לפורמט.</translation>
diff --git a/chromium/components/strings/components_strings_kn.xtb b/chromium/components/strings/components_strings_kn.xtb
index d4d9fa817b1..c79a077ba0d 100644
--- a/chromium/components/strings/components_strings_kn.xtb
+++ b/chromium/components/strings/components_strings_kn.xtb
@@ -1033,7 +1033,7 @@
</translation>
<translation id="859285277496340001">ಇದನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆಯೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಪ್ರಮಾಣಪತ್ರವು ಯಾಂತ್ರೀಕರಣವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation>
<translation id="8620436878122366504">ನಿಮ್ಮ ಪೋಷಕರು ಇನ್ನೂ ಇದನ್ನು ಅಂಗೀಕರಿಸಿಲ್ಲ</translation>
-<translation id="8625384913736129811">ಈ ಕಾರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನಕ್ಕೆ ಉಳಿಸಿ</translation>
+<translation id="8625384913736129811">ಈ ಕಾರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಿ</translation>
<translation id="8639963783467694461">ಸ್ವಯಂತುಂಬುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
<translation id="8680536109547170164"><ph name="QUERY" />, ಉತ್ತರ, <ph name="ANSWER" /></translation>
<translation id="8703575177326907206"><ph name="DOMAIN" /> ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಆಗಿಲ್ಲ.</translation>
diff --git a/chromium/components/strings/components_strings_mr.xtb b/chromium/components/strings/components_strings_mr.xtb
index 0952e57e5b3..48ba7268b85 100644
--- a/chromium/components/strings/components_strings_mr.xtb
+++ b/chromium/components/strings/components_strings_mr.xtb
@@ -9,7 +9,7 @@
<translation id="1038842779957582377">अज्ञात नाव</translation>
<translation id="1050038467049342496">अन्य अॅप्स बंद करा</translation>
<translation id="1055184225775184556">&amp;जोडा पूर्ववत करा</translation>
-<translation id="10614374240317010">कधीही जतन न केलेले</translation>
+<translation id="10614374240317010">कधीही सेव्ह न केलेले</translation>
<translation id="1066396345355680611">तुम्ही <ph name="SITE" /> आणि काही इतर साइट मधील प्रतिबंधित आशयामधील अॅक्सेस गमावू शकाल.</translation>
<translation id="106701514854093668">डेस्‍कटॉप बुकमार्क</translation>
<translation id="1074497978438210769">सुरक्षित नाही</translation>
@@ -26,7 +26,7 @@
<translation id="1151972924205500581">पासवर्ड आवश्यक</translation>
<translation id="1152921474424827756"><ph name="URL" /> च्या <ph name="BEGIN_LINK" />कॅश केलेल्या कॉपीवर<ph name="END_LINK" /> प्रवेश करा</translation>
<translation id="1158211211994409885"><ph name="HOST_NAME" /> नी कनेक्शन अनपेक्षितरित्या बंद केले.</translation>
-<translation id="1161325031994447685">Wi-Fi शी पुन्हा कनेक्ट करीत आहे</translation>
+<translation id="1161325031994447685">वाय-फाय शी पुन्हा कनेक्ट करीत आहे</translation>
<translation id="1165039591588034296">एरर</translation>
<translation id="1173894706177603556">नाव बदला</translation>
<translation id="1175364870820465910">&amp;मुद्रण...</translation>
@@ -79,7 +79,7 @@
<translation id="1426410128494586442">होय</translation>
<translation id="1430915738399379752">प्रिंट</translation>
<translation id="1484290072879560759">पाठवण्याचा पत्ता निवडा</translation>
-<translation id="1506687042165942984">या पृष्ठाची जतन केलेली (उदा. कालबाह्य होणारे ज्ञात) प्रत दर्शवा.</translation>
+<translation id="1506687042165942984">या पृष्ठाची सेव्ह केलेली (उदा. कालबाह्य होणारे ज्ञात) प्रत दर्शवा.</translation>
<translation id="1507202001669085618">&lt;p&gt;ऑनलाइन येण्यापूर्वी तुम्हाला साइन इन करावे लागेल अशी व्यवस्था असलेले वाय-फाय पोर्टल वापरत असल्यास तुम्हाला ही एरर दिसून येईल.&lt;/p&gt;
&lt;p&gt;एरर निघून जाण्यासाठी, तुम्ही उघडण्याचा प्रयत्न करत असलेल्या पेजवर &lt;strong&gt;कनेक्ट&lt;/strong&gt; वर क्लिक करा.&lt;/p&gt;</translation>
<translation id="1517433312004943670">फोन नंबर आवश्यक आहे</translation>
@@ -100,7 +100,7 @@
<translation id="1594030484168838125">निवडा</translation>
<translation id="1620510694547887537">कॅमेरा</translation>
<translation id="1623104350909869708">या पृष्ठास अतिरिक्त संवाद तयार करण्यापासून प्रतिबंधित करा</translation>
-<translation id="1629803312968146339">Chrome ने हे कार्ड जतन करावे असे आपण इच्छिता?</translation>
+<translation id="1629803312968146339">Chrome ने हे कार्ड सेव्ह करावे असे आपण इच्छिता?</translation>
<translation id="1639239467298939599">लोड करीत आहे</translation>
<translation id="1640180200866533862">वापरकर्ता धोरणे</translation>
<translation id="1640244768702815859"><ph name="BEGIN_LINK" />साइटच्या मुख्यपृष्ठावर भेट देऊन<ph name="END_LINK" /> पहा.</translation>
@@ -110,7 +110,7 @@
<translation id="1655462015569774233">{1,plural, =1{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र काल कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले कॉंप्युटर सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}one{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले कॉंप्युटर सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}other{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले कॉंप्युटर सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}}</translation>
<translation id="1656489000284462475">घेणे</translation>
<translation id="1663943134801823270">कार्ड आणि पत्ते Chrome कडील आहेत. आपण त्यांना <ph name="BEGIN_LINK" />सेटिंग्‍ज<ph name="END_LINK" /> मधून व्यवस्थापित करू शकता.</translation>
-<translation id="1676269943528358898"><ph name="SITE" /> आपली माहिती संरक्षित करण्यासाठी सामान्यतः कूटबद्धीकरण वापरते. Google Chrome ने यावेळी <ph name="SITE" /> शी कनेक्‍ट करण्‍याचा प्रयत्न केला तेव्‍हा, वेबसाइटने असामान्य आणि अयोग्य क्रेडेन्शियल परत पाठविले. एकतर आक्रमणकर्ता <ph name="SITE" /> असल्याची बतावणी करण्याचा प्रयत्न करतो तेव्‍हा किंवा Wi-Fi साइन इन स्क्रीनने कनेक्शनमध्ये व्यत्यय आणले तेव्‍हा हे घडू शकते. कोणत्याही डेटाची अदलाबदल करण्यापूर्वी Google Chrome ने कनेक्शन थांबविल्यामुळे आपली माहिती अद्याप सुरक्षित आहे.</translation>
+<translation id="1676269943528358898"><ph name="SITE" /> तुमची माहिती संरक्षित करण्यासाठी सामान्यतः कूटबद्धीकरण वापरते. Google Chrome ने यावेळी <ph name="SITE" /> शी कनेक्‍ट करण्‍याचा प्रयत्न केला तेव्‍हा, वेबसाइटने असामान्य आणि अयोग्य क्रेडेन्शियल परत पाठविले. एकतर आक्रमणकर्ता <ph name="SITE" /> असल्याची बतावणी करण्याचा प्रयत्न करतो तेव्‍हा किंवा वाय-फाय साइन इन स्क्रीनने कनेक्शनमध्ये व्यत्यय आणले तेव्‍हा हे घडू शकते. कोणत्याही डेटाची अदलाबदल करण्यापूर्वी Google Chrome ने कनेक्शन थांबविल्यामुळे तुमची माहिती अद्याप सुरक्षित आहे.</translation>
<translation id="168841957122794586">सर्व्हर प्रमाणपत्रात एक कमकुवत क्रिप्टोग्राफिक की आहे.</translation>
<translation id="1706954506755087368">{1,plural, =1{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र उद्यापासून मानले जाईल. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते.}one{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र पुढील # दिवसांपासून मानले जाईल. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते.}other{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र पुढील # दिवसांपासून मानले जाईल. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते.}}</translation>
<translation id="1710259589646384581">OS</translation>
@@ -171,7 +171,7 @@
<translation id="2108755909498034140">आपला कॉंप्युटर रीस्टार्ट करा</translation>
<translation id="2113977810652731515">कार्ड</translation>
<translation id="2114841414352855701">दुर्लक्ष केले कारण ते <ph name="POLICY_NAME" /> कडून अधिलिखित झाले होते.</translation>
-<translation id="2138201775715568214">जवळपासची वास्तविक वेब पृष्ठे शोधत आहात</translation>
+<translation id="2138201775715568214">जवळपासची वास्तविक वेब पेज शोधत आहात</translation>
<translation id="213826338245044447">Mobile बुकमार्क</translation>
<translation id="214556005048008348">पेमेंट रद्द करा</translation>
<translation id="2147827593068025794">पार्श्वभूमी संकालन</translation>
@@ -201,7 +201,7 @@
<translation id="2337852623177822836">सेटिंग तुमच्या प्रशासकाने नियंत्रित केलेली आहे</translation>
<translation id="2354001756790975382">इतर बुकमार्क</translation>
<translation id="2354430244986887761">Google सुरक्षित ब्राउझिंगला अलीकडे <ph name="SITE" />मध्ये <ph name="BEGIN_LINK" />हानिकारक अॅप्स सापडले<ph name="END_LINK" />.</translation>
-<translation id="2355395290879513365">आपण या साइटवर पाहत असलेल्या प्रतिमा पाहण्यास आक्रमणकर्ते सक्षम असू शकतात आणि त्यात सुधारणा करून आपली फसवणूक करू शकतात.</translation>
+<translation id="2355395290879513365">आपण या साइटवर पाहत असलेल्या इमेज पाहण्यास आक्रमणकर्ते सक्षम असू शकतात आणि त्यात सुधारणा करून तुमची फसवणूक करू शकतात.</translation>
<translation id="2356070529366658676">विचारा</translation>
<translation id="2359629602545592467">अनेक</translation>
<translation id="2359808026110333948">सुरू ठेवा</translation>
@@ -243,13 +243,13 @@
<translation id="2650446666397867134">फाइलवरील प्रवेश नाकारण्यात आला</translation>
<translation id="2653659639078652383">सबमिट करा</translation>
<translation id="2666117266261740852">इतर टॅब किंवा अॅप्स बंद करा</translation>
-<translation id="2674170444375937751">आपली खात्री आहे की आपण ही पृष्ठे आपल्‍या इतिहासातून हटवू इच्छिता?</translation>
+<translation id="2674170444375937751">तुमची खात्री आहे की आपण ही पेज आपल्‍या इतिहासातून हटवू इच्छिता?</translation>
<translation id="2677748264148917807">सोडा</translation>
<translation id="2699302886720511147">स्वीकारली जाणारी कार्डे</translation>
<translation id="2702801445560668637">वाचन सूची</translation>
<translation id="2704283930420550640">मूल्य स्वरुपनाशी जुळत नाही.</translation>
<translation id="2704951214193499422">Chromium यावेळी आपल्या कार्डची पुष्टी करण्यात अक्षम होते. कृपया नंतर पुन्हा प्रयत्न करा.</translation>
-<translation id="2705137772291741111">या साइटची जतन (कॅश केलेली) केलेली प्रत वाचण्याजोगी नव्हती.</translation>
+<translation id="2705137772291741111">या साइटची सेव्ह (कॅश केलेली) केलेली प्रत वाचण्याजोगी नव्हती.</translation>
<translation id="2709516037105925701">ऑटोफिल</translation>
<translation id="2710942282213947212">तुमच्या काँप्युटरवरील सॉफ्टवेअर Chromium ला वेबशी सुरक्षितपणे कनेक्ट होण्यापासून थांबवत आहे</translation>
<translation id="2712173769900027643">परवानगी मागा</translation>
@@ -293,7 +293,7 @@
<translation id="2986368408720340940">ही पिकअप पद्धत उपलब्ध नाही. वेगळी पद्धत वापरून पहा.</translation>
<translation id="2991174974383378012">वेबसाइटसह शेअर करीत आहे</translation>
<translation id="2991571918955627853">ही वेबसाइट HSTS वापरत असल्यामुळे तुम्ही <ph name="SITE" /> आत्ता पाहू शकत नाही. नेटवर्क एरर आणि आक्रमणे शक्यतो तात्पुरती असतात, त्यामुळे हे पेज नंतर पाहता येईल.</translation>
-<translation id="3005723025932146533">जतन केलेली प्रत दर्शवा</translation>
+<translation id="3005723025932146533">सेव्ह केलेली प्रत दर्शवा</translation>
<translation id="3008447029300691911"><ph name="CREDIT_CARD" /> साठी CVC प्रविष्‍ट करा. आपण पुष्टी केल्यावर, आपले कार्ड तपशील या साइटसह सामायिक केले जातील.</translation>
<translation id="3010559122411665027">सूची प्रविष्टी "<ph name="ENTRY_INDEX" />": <ph name="ERROR" /></translation>
<translation id="301521992641321250">आपोआप ब्लॉक केलेले</translation>
@@ -313,7 +313,7 @@
<translation id="3150653042067488994">तात्पुरती सर्व्हर एरर</translation>
<translation id="3154506275960390542">या पृष्ठावर एक फॉर्म आहे जो कदाचित सुरक्षितपणे सबमिट होणार नाही. आपण पाठविलेला डेटा प्रवासादरम्यान इतर पाहू शकतात किंवा सर्व्हर प्राप्त करत असलेल्या आक्रमणकर्त्याद्वारे सुधारित केले जाऊ शकते.</translation>
<translation id="3157931365184549694">पुनर्संचयित करा</translation>
-<translation id="3162559335345991374">आपण वापरत असलेल्या Wi-Fi च्या लॉग इन पृष्ठास आपल्याला भेट देण्याची आवश्यकता असू शकते.</translation>
+<translation id="3162559335345991374">आपण वापरत असलेल्या वाय-फाय च्या लॉग इन पृष्ठास आपल्याला भेट देण्याची आवश्यकता असू शकते.</translation>
<translation id="3167968892399408617">गुप्त मोडमध्‍ये आपण पाहता ती पृष्‍ठे आपण आपले सर्व गुप्त टॅब बंद केल्‍यानंतर आपला ब्राउझर इतिहास, कुकी स्टोअर किंवा शोध इतिहासामध्‍ये असणार नाहीत. आपण डाउनलोड करता त्या कोणत्याही फायली किंवा आपण केलेले बुकमार्क ठेवले जातील.</translation>
<translation id="3169472444629675720">Discover</translation>
<translation id="3174168572213147020">बेट</translation>
@@ -342,7 +342,7 @@
<translation id="3320021301628644560">बिलिंग पत्ता जोडा</translation>
<translation id="3338095232262050444">सुरक्षित</translation>
<translation id="3340978935015468852">सेटिंग्ज</translation>
-<translation id="3345135638360864351">या साइटवर प्रवेश करण्याची आपली विनंती <ph name="NAME" /> कडे पाठविली जाऊ शकली नाही. कृपया पुन्हा प्रयत्न करा.</translation>
+<translation id="3345135638360864351">या साइटवर प्रवेश करण्याची तुमची विनंती <ph name="NAME" /> कडे पाठविली जाऊ शकली नाही. कृपया पुन्हा प्रयत्न करा.</translation>
<translation id="3355823806454867987">प्रॉक्सी सेटिंग्ज बदला...</translation>
<translation id="3361596688432910856">Chrome पुढील माहिती <ph name="BEGIN_EMPHASIS" />सेव्ह करणार नाही<ph name="END_EMPHASIS" />:
<ph name="BEGIN_LIST" />
@@ -403,8 +403,8 @@
<translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
<translation id="370665806235115550">लोड करीत आहे...</translation>
<translation id="3712624925041724820">परवाने संपुष्टात</translation>
-<translation id="3714780639079136834">मोबाइल डेटा किंवा Wi-Fi चालू करणे</translation>
-<translation id="3715597595485130451">Wi-Fi वर कनेक्ट करा</translation>
+<translation id="3714780639079136834">मोबाइल डेटा किंवा वाय-फाय चालू करणे</translation>
+<translation id="3715597595485130451">वाय-फाय वर कनेक्ट करा</translation>
<translation id="3717027428350673159"><ph name="BEGIN_LINK" />प्रॉक्सी, फायरवॉल आणि DNS कॉन्फिगरेशन तपासणे<ph name="END_LINK" /></translation>
<translation id="372429172604983730">या एररला कारणीभूत असू शकणार्‍या अॅप्लिकेशनमध्ये अँटिव्हायरस, फायरवॉल आणि वेब-फिल्टरिंग किंवा प्रॉक्सी सॉफ्टवेअरचा समावेश होतो.</translation>
<translation id="3736520371357197498">आपल्याला आपल्या सुरक्षिततेच्या जोखमी समजत असल्यास, धोकादायक प्रोग्राम काढण्यापूर्वी आपण <ph name="BEGIN_LINK" />या असुरक्षित साइटला भेट देऊ शकता<ph name="END_LINK" />.</translation>
@@ -423,7 +423,7 @@
<translation id="3858027520442213535">तारीख आणि वेळ अपडेट करा</translation>
<translation id="3884278016824448484">संघर्ष करणारा डिव्हाइस अभिज्ञापक</translation>
<translation id="3885155851504623709">पॅरिश</translation>
-<translation id="3886446263141354045">या साइटवर प्रवेश करण्याची आपली विनंती <ph name="NAME" /> कडे पाठविली गेली आहे</translation>
+<translation id="3886446263141354045">या साइटवर प्रवेश करण्याची तुमची विनंती <ph name="NAME" /> कडे पाठविली गेली आहे</translation>
<translation id="3890664840433101773">ईमेल जोडा</translation>
<translation id="3901925938762663762">कार्ड कालबाह्य झाले आहे</translation>
<translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation>
@@ -438,7 +438,7 @@
<translation id="3973234410852337861"><ph name="HOST_NAME" /> अवरोधित केले आहे</translation>
<translation id="3984550557525787191">या सेशनचे नाव आधीपासून अस्तित्वात आहे.</translation>
<translation id="3987940399970879459">1 MB पेक्षा कमी</translation>
-<translation id="40103911065039147">{URL_count,plural, =1{जवळपास 1 वेब पृष्‍ठ}one{जवळपास # वेब पृष्‍ठ}other{जवळपास # वेब पृष्ठे}}</translation>
+<translation id="40103911065039147">{URL_count,plural, =1{जवळपास 1 वेब पृष्‍ठ}one{जवळपास # वेब पृष्‍ठ}other{जवळपास # वेब पेज}}</translation>
<translation id="4030383055268325496">&amp;जोडा पूर्ववत करा</translation>
<translation id="4058922952496707368">की "<ph name="SUBKEY" />": <ph name="ERROR" /></translation>
<translation id="4067947977115446013">वैध पत्ता जोडा</translation>
@@ -458,7 +458,7 @@
<translation id="4148925816941278100">American Express</translation>
<translation id="4151403195736952345">जागतिक डीफॉल्‍ट (शोधणे) वापरा</translation>
<translation id="4165986682804962316">साइट सेटिंग्ज</translation>
-<translation id="4169947484918424451">Chromium ने हे कार्ड जतन करावे असे आपण इच्छिता?</translation>
+<translation id="4169947484918424451">Chromium ने हे कार्ड सेव्ह करावे असे आपण इच्छिता?</translation>
<translation id="4171400957073367226">खराब पडताळणी स्वाक्षरी</translation>
<translation id="4173827307318847180">{MORE_ITEMS,plural, =1{आणखी <ph name="ITEM_COUNT" /> आयटम}one{आणखी <ph name="ITEM_COUNT" /> आयटम}other{आणखी <ph name="ITEM_COUNT" /> आयटम}}</translation>
<translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation>
@@ -497,11 +497,11 @@
<translation id="4280429058323657511">, कालबाह्यता <ph name="EXPIRATION_DATE_ABBR" /></translation>
<translation id="4312866146174492540">अवरोधित करा (डीफॉल्ट)</translation>
<translation id="4325863107915753736">लेख शोधण्यात अयशस्वी</translation>
-<translation id="4326324639298822553">आपली कालबाह्यता तारीख तपासा आणि पुन्हा प्रयत्न करा</translation>
+<translation id="4326324639298822553">तुमची कालबाह्यता तारीख तपासा आणि पुन्हा प्रयत्न करा</translation>
<translation id="4331708818696583467">सुरक्षित नाही</translation>
<translation id="4340982228985273705">हा कॉंम्पुटर एंटरप्राइझ व्यवस्थापित म्हणून आढळला नाही म्हणून धोरण फक्त Chrome वेबस्टोअरवर होस्ट केलेले एक्सटेंशन आपोआप इंस्टॉल करू शकते. Chrome वेबस्टोअर अपडेट URL <ph name="CWS_UPDATE_URL" /> ही आहे.</translation>
<translation id="4346197816712207223">स्वीकारली जाणारी क्रेडिट कार्डे</translation>
-<translation id="4356973930735388585">या साइट वरील आक्रमणकर्ते आपली माहिती (उदाहरणार्थ, फोटो, पासवर्ड, संदेश आणि क्रेडिट कार्ड) चोरणारे किंवा हटविणारे धोकादायक प्रोग्राम आपल्या संगणकावर इंस्टॉल करण्‍याचा प्रयत्न करू शकतात.</translation>
+<translation id="4356973930735388585">या साइट वरील आक्रमणकर्ते तुमची माहिती (उदाहरणार्थ, फोटो, पासवर्ड, संदेश आणि क्रेडिट कार्ड) चोरणारे किंवा हटविणारे धोकादायक प्रोग्राम आपल्या संगणकावर इंस्टॉल करण्‍याचा प्रयत्न करू शकतात.</translation>
<translation id="4372948949327679948">अपेक्षित <ph name="VALUE_TYPE" /> मूल्य.</translation>
<translation id="4377125064752653719">आपण <ph name="DOMAIN" /> वर पोहोचण्याचा प्रयत्न केला, परंतु सर्व्हरने सादर केलेले प्रमाणपत्र त्याच्या जारीकर्त्याद्वारे मागे घेतले गेले आहे. याचा अर्थ सर्व्हरने सादर केलेल्या सुरक्षा क्रेडेन्शियलवर अजिबात ठेवला जाऊ नये. आपण कदाचित आक्रमणकर्त्याशी संवाद प्रस्थापित करत आहात.</translation>
<translation id="4406896451731180161">शोध परिणाम</translation>
@@ -537,26 +537,26 @@
<translation id="4736825316280949806">Chromium रीस्टार्ट करा</translation>
<translation id="4744603770635761495">कार्यवाहीयोग्य पथ</translation>
<translation id="4749685221585524849">अखेरचे वापरले: <ph name="LAST_USED_MONTH" /></translation>
-<translation id="4750917950439032686">आपली माहिती (उदाहरणार्थ, पासवर्ड किंवा क्रेडिट कार्ड क्रमांक) या साइटवर पाठविली जाते तेव्हा ती खाजगी राहते.</translation>
+<translation id="4750917950439032686">तुमची माहिती (उदाहरणार्थ, पासवर्ड किंवा क्रेडिट कार्ड क्रमांक) या साइटवर पाठविली जाते तेव्हा ती खाजगी राहते.</translation>
<translation id="4756388243121344051">&amp;इतिहास</translation>
<translation id="4758311279753947758">संपर्क माहिती जोडा</translation>
<translation id="4759118997339041434">पेमेंट स्वयंभरण अक्षम केले</translation>
<translation id="4764776831041365478"><ph name="URL" /> येथील वेबपृष्ठ कदाचित तात्पुरते बंद आहे किंवा ते कदाचित कायमचे नवीन वेब पत्त्यावर हलवले आहे.</translation>
<translation id="4771973620359291008">एक अज्ञात एरर आली आहे.</translation>
<translation id="4792143361752574037">सेशन फायली अ‍ॅक्सेस करताना अडचण आली. डिस्कवर सेव्ह करणे सध्या बंद केलेले आहे. पुन्हा प्रयत्न करण्यासाठी कृपया पेज रीलोड करा.</translation>
-<translation id="4800132727771399293">आपली कालबाह्यता तारीख आणि CVC तपासा आणि पुन्हा प्रयत्न करा</translation>
+<translation id="4800132727771399293">तुमची कालबाह्यता तारीख आणि CVC तपासा आणि पुन्हा प्रयत्न करा</translation>
<translation id="4803924862070940586"><ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
<translation id="4807049035289105102">Google Chrome प्रक्रिया करू शकत नाही असे न समजणारे क्रेडेन्शियल वेबसाइटने पाठविल्यामुळे आपण आत्ता <ph name="SITE" /> ला भेट देऊ शकत नाही. नेटवर्क एरर आणि आक्रमण सामान्यतः तात्पुरते असतात, यामुळे हे पृष्ठ कदाचित नंतर कार्य करेल.</translation>
<translation id="4813512666221746211">नेटवर्क एरर</translation>
<translation id="4816492930507672669">पृष्‍ठानुरुप करा</translation>
-<translation id="483020001682031208">दर्शविण्यासाठी कोणतीही वास्तविक वेब पृष्ठे नाहीत</translation>
+<translation id="483020001682031208">दर्शविण्यासाठी कोणतीही वास्तविक वेब पेज नाहीत</translation>
<translation id="4850886885716139402">पहा</translation>
<translation id="4854362297993841467">ही वितरण पद्धत उपलब्ध नाही. वेगळी पद्धत वापरून पहा.</translation>
<translation id="4858792381671956233">या साइटला भेट देणे ठीक आहे का ते आपण आपल्‍या पालकांना विचारले</translation>
<translation id="4880827082731008257">इतिहास शोध</translation>
<translation id="4881695831933465202">उघडा</translation>
<translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
-<translation id="4914479371620770914">{URL_count,plural, =1{आणि 1 आणखी वेब पृष्ठ}one{आणि # आणखी वेब पृष्‍ठ}other{आणि # आणखी वेब पृष्ठे}}</translation>
+<translation id="4914479371620770914">{URL_count,plural, =1{आणि 1 आणखी वेब पृष्ठ}one{आणि # आणखी वेब पृष्‍ठ}other{आणि # आणखी वेब पेज}}</translation>
<translation id="4916962322362512664"><ph name="DEVICE_NAME" /></translation>
<translation id="4919958102839282947"><ph name="CREDIT_CARD" /> चा CVV टाका. तुम्ही निश्चित केल्यावर तुमच्या Google पेमेंट खात्यामधील कार्डाचे तपशील या साइटसोबत शेअर केले जातील.</translation>
<translation id="4923417429809017348">हे पृष्ठ अज्ञात भाषेतून <ph name="LANGUAGE_LANGUAGE" /> मध्ये अनुवादित करण्यात आले</translation>
@@ -632,7 +632,7 @@
<translation id="540969355065856584">हा सर्व्हर <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षितता प्रमाणपत्र यावेळी वैध नाही. हे कदाचित चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्ता आपले कनेक्शन आंतरखंडित करीत असल्‍यामुळे होऊ शकते.</translation>
<translation id="5421136146218899937">ब्राउझिंग डेटा साफ करा...</translation>
<translation id="5430298929874300616">बुकमार्क काढा</translation>
-<translation id="5431657950005405462">आपली फाईल आढळली नाही</translation>
+<translation id="5431657950005405462">तुमची फाईल आढळली नाही</translation>
<translation id="5439770059721715174">"<ph name="ERROR_PATH" />" वर स्कीमा प्रमाणीकरण एरर: <ph name="ERROR" /></translation>
<translation id="5452270690849572955">हे <ph name="HOST_NAME" /> पृष्ठ शोधले जाऊ शकत नाही</translation>
<translation id="5455374756549232013">खराब धोरण टाइमस्टँप</translation>
@@ -685,7 +685,7 @@
<translation id="5778550464785688721">MIDI डिव्हाइसेस पूर्ण नियंत्रण</translation>
<translation id="5784606427469807560">आपल्या कार्डची पुष्टी करताना समस्या आली. आपले इंटरनेट कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation>
<translation id="5785756445106461925">पुढे, या पृष्ठात सुरक्षित नसलेली इतर संसाधने समाविष्ट आहेत. ही संसाधने संक्रमणात असताना इतरांद्वारे पाहिली जाऊ शकतात आणि पृष्ठाचे स्वरूप बदलण्यासाठी आक्रमणकर्त्याद्वारे सुधारित केली जाऊ शकतात.</translation>
-<translation id="5786044859038896871">आपण आपली कार्ड माहिती भरू इच्छित आहात?</translation>
+<translation id="5786044859038896871">आपण तुमची कार्ड माहिती भरू इच्छित आहात?</translation>
<translation id="5803412860119678065">आपण आपले <ph name="CARD_DETAIL" /> भरू इच्छित आहात?</translation>
<translation id="5810442152076338065">आपले <ph name="DOMAIN" /> वरील कनेक्शन अप्रचलित सायफर सूट वापरून कूटबद्ध केलेले आहे.</translation>
<translation id="5813119285467412249">&amp;जोडा पुन्हा करा</translation>
@@ -709,7 +709,7 @@
<translation id="5990559369517809815">सर्व्हरला केल्या जाणार्‍या विनंत्या एका विस्ताराने अवरोधित केल्या गेल्या आहेत.</translation>
<translation id="6008256403891681546">JCB</translation>
<translation id="6015796118275082299">वर्ष</translation>
-<translation id="6016158022840135739">{COUNT,plural, =1{पृष्ठ 1}one{पृष्ठ #}other{पृष्ठे #}}</translation>
+<translation id="6016158022840135739">{COUNT,plural, =1{पृष्ठ 1}one{पृष्ठ #}other{पेज #}}</translation>
<translation id="6017850046339264347"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />वर असलेले आक्रमणकर्ता फसवणारे अॅप्स इंस्टॉल करू शकतात जे दुसरे काहीतरी असल्याचे भासवू शकतात किंवा तुम्हाला शोधण्यासाठी डेटा वापरू शकतात. <ph name="BEGIN_LEARN_MORE_LINK" />अधिक जाणून घ्या<ph name="END_LEARN_MORE_LINK" /></translation>
<translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (सिंक केलेले)</translation>
<translation id="6027201098523975773">नाव एंटर करा</translation>
@@ -740,7 +740,7 @@
<translation id="6259156558325130047">&amp;पुनर्क्रमित करा पुन्हा करा</translation>
<translation id="6263376278284652872"><ph name="DOMAIN" /> बुकमार्क</translation>
<translation id="6264485186158353794">सुरक्षिततेकडे परत</translation>
-<translation id="6276112860590028508">आपल्या वाचन सूचीमधील पृष्ठे येथे दिसतात</translation>
+<translation id="6276112860590028508">आपल्या वाचन सूचीमधील पेज येथे दिसतात</translation>
<translation id="627746635834430766">पुढील वेळी जलद पेमेंट देण्यासाठी, तुमच्या Google खात्यावर तुमचे कार्ड आणि बिलिंग पत्ता सेव्ह करा.</translation>
<translation id="6280223929691119688">या पत्त्यावर देऊ शकत नाही. वेगळा पत्ता निवडा.</translation>
<translation id="6282194474023008486">पोस्टल कोड</translation>
@@ -768,7 +768,7 @@
<translation id="6447842834002726250">कुकीज</translation>
<translation id="6451458296329894277">फॉर्म रीसबमिशनची पुष्टी करा</translation>
<translation id="647261751007945333">डीव्हाइस धोरणे</translation>
-<translation id="6477321094435799029">Chrome ला या पृष्‍ठावर असमान्य कोड सापडला आहे आणि आपली वैयक्तिक माहिती (उदा, पासवर्ड, फोन नंबर आणि क्रेडिट कार्ड) संरक्षित करण्‍यासाठी अवरोधित केला आहे.</translation>
+<translation id="6477321094435799029">Chrome ला या पृष्‍ठावर असमान्य कोड सापडला आहे आणि तुमची वैयक्तिक माहिती (उदा, पासवर्ड, फोन नंबर आणि क्रेडिट कार्ड) संरक्षित करण्‍यासाठी अवरोधित केला आहे.</translation>
<translation id="6489534406876378309">क्रॅश अपलोड करणे प्रारंभ करा</translation>
<translation id="6499038740797743453">पासवर्ड रीसेट करायचा?</translation>
<translation id="6507833130742554667">क्रेडिट आणि डेबिट कार्डे स्वीकरली जातात.</translation>
@@ -885,7 +885,7 @@
<translation id="7481312909269577407">पुढील</translation>
<translation id="7485870689360869515">डेटा आढळला नाही.</translation>
<translation id="7508255263130623398">परत केलेला धोरण डिव्हाइस आयडी रिक्त आहे किंवा वर्तमान डिव्हाइस आयडी शी जुळत नाही</translation>
-<translation id="7511955381719512146">आपण वापरत असलेल्या Wi-Fi ला आपण <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> ला भेट देण्याची आवश्यकता असू शकते.</translation>
+<translation id="7511955381719512146">आपण वापरत असलेल्या वाय-फाय ला आपण <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> ला भेट देण्याची आवश्यकता असू शकते.</translation>
<translation id="7514365320538308">डाउनलोड करा</translation>
<translation id="7518003948725431193">या वेबपत्त्यासाठी वेबपृष्ठ आढळले नाही: <ph name="URL" /></translation>
<translation id="7521387064766892559">JavaScript</translation>
@@ -903,7 +903,7 @@
<translation id="7568593326407688803">हे पृष्ठ<ph name="ORIGINAL_LANGUAGE" />मध्ये आहे आपण याचा भाषांतर करु इच्छिता?</translation>
<translation id="7569952961197462199">Chrome मधून क्रेडिट कार्ड काढायचे?</translation>
<translation id="7575800019233204241">"तुमचे कनेक्शन खाजगी नाही" किंवा "&lt;span class="error-code"&gt;NET::ERR_CERT_AUTHORITY_INVALID&lt;/span&gt;" किंवा "&lt;span class="error-code"&gt;ERR_CERT_COMMON_NAME_INVALID&lt;/span&gt;" किंवा "&lt;span class="error-code"&gt;NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM&lt;/span&gt;" किंवा "SSL सर्टिफिकेट एरर"</translation>
-<translation id="7578104083680115302">आपण Google सह जतन केलेल्या कार्डचा वापर करून डिव्‍हाइसेसवरून द्रुतपणे साइट आणि अॅप्सवर देय द्या.</translation>
+<translation id="7578104083680115302">आपण Google सह सेव्ह केलेल्या कार्डचा वापर करून डिव्‍हाइसेसवरून द्रुतपणे साइट आणि अॅप्सवर देय द्या.</translation>
<translation id="7588950540487816470">भौतिक वेब</translation>
<translation id="7592362899630581445">सर्व्हरचे प्रमाणपत्र नाव मर्यादांचे उल्लंघन करते.</translation>
<translation id="7598391785903975535"><ph name="UPPER_ESTIMATE" /> पेक्षा कमी</translation>
@@ -919,7 +919,7 @@
<translation id="7663736086183791259">सर्टिफिकेट <ph name="CERTIFICATE_VALIDITY" /></translation>
<translation id="7667346355482952095">परत केलेले धोरण टोकन रिक्त आहे किंवा वर्तमान टोकनशी जुळत नाही</translation>
<translation id="7668654391829183341">अज्ञात डिव्हाइस</translation>
-<translation id="7669271284792375604">या साइट वरील आक्रमणकर्ते कदाचित आपल्या ब्राउझिंग अनुभवास हानी पोहोचविणारे प्रोग्राम (उदाहरणार्थ, आपले मुख्यपृष्ठ बदलून किंवा आपण भेट देता त्या साइटवर अतिरिक्त जाहिराती दर्शवून) इंस्टॉल करून आपली फसवणूक करण्‍याचा प्रयत्न करू शकतात.</translation>
+<translation id="7669271284792375604">या साइट वरील आक्रमणकर्ते कदाचित आपल्या ब्राउझिंग अनुभवास हानी पोहोचविणारे प्रोग्राम (उदाहरणार्थ, आपले मुख्यपृष्ठ बदलून किंवा आपण भेट देता त्या साइटवर अतिरिक्त जाहिराती दर्शवून) इंस्टॉल करून तुमची फसवणूक करण्‍याचा प्रयत्न करू शकतात.</translation>
<translation id="7682287625158474539">शिपिंग</translation>
<translation id="7699293099605015246">लेख आत्ता उपलब्ध नाहीत</translation>
<translation id="7701040980221191251">काहीही नाही</translation>
@@ -948,7 +948,7 @@
<translation id="7813600968533626083">Chrome मधून सूचना फॉर्म काढायचा?</translation>
<translation id="7815407501681723534">'<ph name="SEARCH_STRING" />' साठी <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> सापडले</translation>
<translation id="7818867226424560206">धोरण व्‍यवस्‍थापन</translation>
-<translation id="782886543891417279">आपण वापरत असलेल्या (<ph name="WIFI_NAME" />) Wi-Fi च्या लॉग इन पृष्ठास आपल्याला भेट देण्याची आवश्यकता असू शकते.</translation>
+<translation id="782886543891417279">आपण वापरत असलेल्या (<ph name="WIFI_NAME" />) वाय-फाय च्या लॉग इन पृष्ठास आपल्याला भेट देण्याची आवश्यकता असू शकते.</translation>
<translation id="785549533363645510">तथापि, आपण अदृश्य नाही. गुप्त झाल्याने आपले ब्राउझिंग आपला नियोक्ता, आपला इंटरनेट सेवा प्रदाता, किंवा आपण भेट देता त्या वेबसाइटपासून लपत नाही.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
<translation id="7862185352068345852">साइट सोडायची?</translation>
@@ -967,7 +967,7 @@
<translation id="7995512525968007366">निर्दिष्ट केलेले नाही</translation>
<translation id="800218591365569300">मेमरी मोकळी करण्‍यासाठी अन्य टॅब किंवा प्रोग्राम बंद करून पहा.</translation>
<translation id="8012647001091218357">आम्ही याक्षणी आपल्या पालकांपर्यंत पोहोचू शकलो नाही. कृपया पुन्हा प्रयत्न करा.</translation>
-<translation id="8025119109950072390">या साइट वरील आक्रमणकर्ते सॉफ्‍टवेअर इंस्टॉल करणे किंवा आपली वैयक्तिक माहिती (उदाहरणार्थ, पासवर्ड, फोन नंबर किंवा क्रेडिट कार्ड) उघड करणे यासारखे काहीतरी धोकादायक करण्‍यामध्‍ये आपल्‍याला युक्तीने गुंतवू शकतात.</translation>
+<translation id="8025119109950072390">या साइट वरील आक्रमणकर्ते सॉफ्‍टवेअर इंस्टॉल करणे किंवा तुमची वैयक्तिक माहिती (उदाहरणार्थ, पासवर्ड, फोन नंबर किंवा क्रेडिट कार्ड) उघड करणे यासारखे काहीतरी धोकादायक करण्‍यामध्‍ये आपल्‍याला युक्तीने गुंतवू शकतात.</translation>
<translation id="8034522405403831421">हे पृष्‍ठ <ph name="SOURCE_LANGUAGE" /> मध्ये आहे. त्यास <ph name="TARGET_LANGUAGE" /> मध्ये भाषांतरीत करायचे?</translation>
<translation id="8037357227543935929">विचारा (डीफॉल्ट)</translation>
<translation id="8041089156583427627">अभिप्राय पाठवा</translation>
@@ -1007,7 +1007,7 @@
<translation id="8289355894181816810">याचा निश्चित अर्थ आपल्याला माहिती नसल्यास आपल्या नेटवर्क प्रशासकाशी संपर्क साधा.</translation>
<translation id="8293206222192510085">बुकमार्क जोडा</translation>
<translation id="8294431847097064396">स्रोत</translation>
-<translation id="8298115750975731693">आपण वापरत असलेल्या (<ph name="WIFI_NAME" />) Wi-Fi ला आपण <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> ला भेट देण्याची आवश्यकता असू शकते.</translation>
+<translation id="8298115750975731693">आपण वापरत असलेल्या (<ph name="WIFI_NAME" />) वाय-फाय ला आपण <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> ला भेट देण्याची आवश्यकता असू शकते.</translation>
<translation id="8308427013383895095">नेटवर्क कनेक्शनसह समस्या असल्यामुळे भाषांतर अयशस्वी झाला.</translation>
<translation id="8311129316111205805">सेशन लोड करा</translation>
<translation id="8332188693563227489"><ph name="HOST_NAME" /> मधील प्रवेश नाकारला</translation>
@@ -1068,7 +1068,7 @@
<translation id="8876793034577346603">विश्लेषण करण्यात नेटवर्क कॉन्फिगरेशन अयशस्वी.</translation>
<translation id="8891727572606052622">अवैध प्रॉक्सी मोड.</translation>
<translation id="8903921497873541725">झूम इन करा</translation>
-<translation id="8931333241327730545">आपण आपल्या Google खात्यात हे कार्ड जतन करू इच्छिता?</translation>
+<translation id="8931333241327730545">आपण आपल्या Google खात्यात हे कार्ड सेव्ह करू इच्छिता?</translation>
<translation id="8932102934695377596">आपले घड्याळ मागे आहे</translation>
<translation id="893332455753468063">नाव जोडा</translation>
<translation id="8938939909778640821">स्वीकारलेली क्रेडिट आणि प्रीपेड कार्डे</translation>
@@ -1088,7 +1088,7 @@
<translation id="9020542370529661692">हे पृष्ठ <ph name="TARGET_LANGUAGE" /> मध्ये भाषांतरित केले गेले आहे.</translation>
<translation id="9025348182339809926">(अवैध)</translation>
<translation id="9035022520814077154">सुरक्षितता एरर</translation>
-<translation id="9038649477754266430">पृष्ठे अधिक द्रुतपणे लोड करण्यासाठी पूर्वानुमान सेवेचा वापर करा</translation>
+<translation id="9038649477754266430">पेज अधिक द्रुतपणे लोड करण्यासाठी पूर्वानुमान सेवेचा वापर करा</translation>
<translation id="9039213469156557790">पुढे, या पृष्ठात सुरक्षित नसलेली इतर संसाधने समाविष्ट आहेत. ही संसाधने संक्रमणात असताना इतरांद्वारे पाहिली जाऊ शकतात आणि पृष्ठाचे वर्तन बदलण्यासाठी आक्रमणकर्त्याद्वारे सुधारित केली जाऊ शकतात.</translation>
<translation id="9049981332609050619">आपण <ph name="DOMAIN" /> वर पोहोचण्याचा प्रयत्न केला, परंतु सर्व्हरने अवैध प्रमाणपत्र सादर केले आहे.</translation>
<translation id="9050666287014529139">सांकेतिक वाक्यांश</translation>
@@ -1097,7 +1097,7 @@
<translation id="9076283476770535406">कदाचित तिच्यामध्ये प्रौढ सामग्री असू शकते</translation>
<translation id="9078964945751709336">अधिक माहिती आवश्यक आहे</translation>
<translation id="9080712759204168376">मागणी सारांश</translation>
-<translation id="9103872766612412690"><ph name="SITE" /> आपली माहिती संरक्षित करण्यासाठी सामान्यतः कूटबद्धीकरण वापरते. Chromium ने यावेळी <ph name="SITE" /> शी कनेक्‍ट करण्‍याचा प्रयत्न केला तेव्‍हा, वेबसाइटने असामान्य आणि अयोग्य क्रेडेन्शियल परत पाठविले. एकतर आक्रमणकर्ता <ph name="SITE" /> असल्याची बतावणी करण्याचा प्रयत्न करतो तेव्‍हा किंवा Wi-Fi साइन इन स्क्रीनने कनेक्शनमध्ये व्यत्यय आणले तेव्‍हा हे घडू शकते. कोणत्याही डेटाची अदलाबदल करण्यापूर्वी Chromium ने कनेक्शन थांबविल्यामुळे आपली माहिती अद्याप सुरक्षित आहे.</translation>
+<translation id="9103872766612412690"><ph name="SITE" /> तुमची माहिती संरक्षित करण्यासाठी सामान्यतः कूटबद्धीकरण वापरते. Chromium ने यावेळी <ph name="SITE" /> शी कनेक्‍ट करण्‍याचा प्रयत्न केला तेव्‍हा, वेबसाइटने असामान्य आणि अयोग्य क्रेडेन्शियल परत पाठविले. एकतर आक्रमणकर्ता <ph name="SITE" /> असल्याची बतावणी करण्याचा प्रयत्न करतो तेव्‍हा किंवा वाय-फाय साइन इन स्क्रीनने कनेक्शनमध्ये व्यत्यय आणले तेव्‍हा हे घडू शकते. कोणत्याही डेटाची अदलाबदल करण्यापूर्वी Chromium ने कनेक्शन थांबविल्यामुळे तुमची माहिती अद्याप सुरक्षित आहे.</translation>
<translation id="9106062320799175032">बिलिंग पत्ता जोडा</translation>
<translation id="910908805481542201">याचे निराकरण करण्यात माझी मदत करा</translation>
<translation id="9128870381267983090">नेटवर्कशी कनेक्ट करा</translation>
@@ -1114,7 +1114,7 @@
<translation id="9205078245616868884">आपला डेटा आपल्या संकालन सांकेतिक वाक्यांशासह कूटबद्ध केला जातो. संकालन सुरु करण्यासाठी तो एंटर करा.</translation>
<translation id="9207861905230894330">लेख जोडण्यात अयशस्वी.</translation>
<translation id="9215416866750762878">एक अॅप्लिकेशन Chrome ला या साइटशी सुरक्षितपणे कनेक्ट करण्यापासून थांबवत आहे</translation>
-<translation id="9219103736887031265">प्रतिमा</translation>
+<translation id="9219103736887031265">इमेज</translation>
<translation id="933612690413056017">इंटरनेट कनेक्शन नाही</translation>
<translation id="933712198907837967">Diners Club</translation>
<translation id="935608979562296692">फॉर्म साफ करा</translation>
diff --git a/chromium/components/strings/components_strings_nl.xtb b/chromium/components/strings/components_strings_nl.xtb
index 22b3dca243c..4969ddce517 100644
--- a/chromium/components/strings/components_strings_nl.xtb
+++ b/chromium/components/strings/components_strings_nl.xtb
@@ -12,7 +12,7 @@
<translation id="10614374240317010">Nooit opgeslagen</translation>
<translation id="1066396345355680611">Mogelijk heb je geen toegang meer tot beveiligde content van <ph name="SITE" /> en sommige andere sites.</translation>
<translation id="106701514854093668">Desktopbladwijzers</translation>
-<translation id="1074497978438210769">Niet veilig</translation>
+<translation id="1074497978438210769">Niet beveiligd</translation>
<translation id="1080116354587839789">Aanpassen aan breedte</translation>
<translation id="1088860948719068836">Naam op kaart toevoegen</translation>
<translation id="1103523840287552314"><ph name="LANGUAGE" /> altijd vertalen</translation>
@@ -110,7 +110,7 @@
<translation id="1655462015569774233">{1,plural, =1{Deze server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het bijbehorende beveiligingscertificaat is gisteren verlopen. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept. De klok van je computer is momenteel ingesteld op <ph name="CURRENT_DATE" />. Is dat correct? Zo niet, dan moet je de klok van je systeem aanpassen en vervolgens deze pagina vernieuwen.}other{Deze server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het bijbehorende beveiligingscertificaat is # dagen geleden verlopen. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept. De klok van je computer is momenteel ingesteld op <ph name="CURRENT_DATE" />. Is dat correct? Zo niet, dan moet je de klok van je systeem aanpassen en vervolgens deze pagina vernieuwen.}}</translation>
<translation id="1656489000284462475">Ophaaltijd</translation>
<translation id="1663943134801823270">Kaarten en adressen zijn afkomstig uit Chrome. Je kunt ze beheren in <ph name="BEGIN_LINK" />Instellingen<ph name="END_LINK" />.</translation>
-<translation id="1676269943528358898"><ph name="SITE" /> gebruikt gewoonlijk versleuteling om je gegevens te beschermen. Toen Google Chrome deze keer probeerde verbinding te maken met <ph name="SITE" />, retourneerde de website ongewone en onjuiste inloggegevens. Dit kan gebeuren als een aanvaller probeert zich als <ph name="SITE" /> voor te doen of als een wifi-inlogscherm de verbinding heeft verbroken. Je gegevens zijn nog steeds veilig omdat Google Chrome de verbinding heeft beëindigd voordat er gegevens konden worden uitgewisseld.</translation>
+<translation id="1676269943528358898"><ph name="SITE" /> gebruikt gewoonlijk versleuteling om je gegevens te beschermen. Toen Google Chrome deze keer probeerde verbinding te maken met <ph name="SITE" />, retourneerde de website ongewone en onjuiste inloggegevens. Dit kan gebeuren als een aanvaller probeert zich als <ph name="SITE" /> voor te doen of als een wifi-inlogscherm de verbinding heeft verbroken. Je gegevens zijn nog steeds beveiligd omdat Google Chrome de verbinding heeft beëindigd voordat er gegevens konden worden uitgewisseld.</translation>
<translation id="168841957122794586">Het servercertificaat bevat een zwakke cryptografische sleutel.</translation>
<translation id="1706954506755087368">{1,plural, =1{Deze server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het bijbehorende beveiligingscertificaat is zogenaamd van morgen. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.}other{Deze server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het bijbehorende beveiligingscertificaat is zogenaamd van # dagen in de toekomst. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.}}</translation>
<translation id="1710259589646384581">Besturingssysteem</translation>
@@ -337,7 +337,7 @@
<translation id="3303855915957856445">Geen zoekresultaten gevonden</translation>
<translation id="3305707030755673451">Je gegevens zijn op <ph name="TIME" /> versleuteld met je wachtwoordzin voor synchronisatie. Geef deze op om de synchronisatie te starten.</translation>
<translation id="3320021301628644560">Factuuradres toevoegen</translation>
-<translation id="3338095232262050444">Veilig</translation>
+<translation id="3338095232262050444">Beveiligd</translation>
<translation id="3340978935015468852">instellingen</translation>
<translation id="3345135638360864351">Je verzoek om toegang tot deze site kan niet worden verzonden naar <ph name="NAME" />. Probeer het opnieuw.</translation>
<translation id="3355823806454867987">Proxyinstellingen wijzigen...</translation>
@@ -394,7 +394,7 @@
<translation id="3678529606614285348">Pagina openen in een nieuw incognitovenster (Ctrl-Shift-N)</translation>
<translation id="3679803492151881375">Crashrapport vastgelegd op <ph name="CRASH_TIME" />, geüpload op <ph name="UPLOAD_TIME" /></translation>
<translation id="3681007416295224113">Certificaatgegevens</translation>
-<translation id="3690164694835360974">Inloggen niet veilig</translation>
+<translation id="3690164694835360974">Inloggen niet beveiligd</translation>
<translation id="3704162925118123524">Het is mogelijk dat je de inlogpagina moet bezoeken van het netwerk dat je gebruikt.</translation>
<translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
<translation id="370665806235115550">Bezig met laden...</translation>
@@ -482,7 +482,7 @@
&lt;p&gt;Als de fout nog steeds wordt weergegeven, neem je contact op met de eigenaar van de website.&lt;/p&gt;</translation>
<translation id="4226937834893929579"><ph name="BEGIN_LINK" />Voer Netwerkcontrole uit<ph name="END_LINK" />.</translation>
<translation id="4235360514405112390">Geldig</translation>
-<translation id="4250431568374086873">Je verbinding met deze site is niet volledig veilig</translation>
+<translation id="4250431568374086873">Je verbinding met deze site is niet volledig beveiligd</translation>
<translation id="4250680216510889253">Nee</translation>
<translation id="425582637250725228">Wijzigingen die je hebt aangebracht, worden mogelijk niet opgeslagen.</translation>
<translation id="4258748452823770588">Onjuiste handtekening</translation>
@@ -494,7 +494,7 @@
<translation id="4312866146174492540">Blokkeren (standaard)</translation>
<translation id="4325863107915753736">Kan artikel niet vinden</translation>
<translation id="4326324639298822553">Controleer de vervaldatum en probeer het opnieuw</translation>
-<translation id="4331708818696583467">Niet veilig</translation>
+<translation id="4331708818696583467">Niet beveiligd</translation>
<translation id="4340982228985273705">Deze computer is niet gedetecteerd als een zakelijk beheerde computer. Overeenkomstig het beleid kunnen alleen automatisch extensies worden geïnstalleerd die worden gehost in de Chrome Web Store. De update-URL van de Chrome Web Store is <ph name="CWS_UPDATE_URL" />.</translation>
<translation id="4346197816712207223">Geaccepteerde creditcards</translation>
<translation id="4356973930735388585">Cybercriminelen op deze site proberen mogelijk gevaarlijke programma's op je computer te installeren waarmee je gegevens worden gestolen of verwijderd (bijvoorbeeld foto's, wachtwoorden, berichten en creditcards).</translation>
@@ -724,7 +724,7 @@
<translation id="6157877588268064908">Selecteer een adres om verzendmethoden en vereisten te bekijken</translation>
<translation id="6165508094623778733">Meer informatie</translation>
<translation id="6169916984152623906">Je kunt nu privé browsen, zodat andere mensen die dit apparaat gebruiken, jouw activiteit niet kunnen zien. Downloads en bladwijzers worden echter wel opgeslagen.</translation>
-<translation id="6177128806592000436">Je verbinding met deze site is niet veilig</translation>
+<translation id="6177128806592000436">Je verbinding met deze site is niet beveiligd</translation>
<translation id="6203231073485539293">Controleer je internetverbinding</translation>
<translation id="6218753634732582820">Adres verwijderen uit Chromium?</translation>
<translation id="6221345481584921695">Google Safe Browsing heeft onlangs <ph name="BEGIN_LINK" />malware gedetecteerd<ph name="END_LINK" /> op <ph name="SITE" />. Websites die normaal gesproken veilig zijn, worden soms geïnfecteerd met malware. De schadelijke content is afkomstig van <ph name="SUBRESOURCE_HOST" />, een bekende distributeur van malware.</translation>
@@ -827,7 +827,7 @@
<translation id="7138472120740807366">Bezorgingsmethode</translation>
<translation id="7139724024395191329">Emiraat</translation>
<translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
-<translation id="7155487117670177674">Betalen niet veilig</translation>
+<translation id="7155487117670177674">Betalen niet beveiligd</translation>
<translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
<translation id="7180611975245234373">Vernieuwen</translation>
<translation id="7182878459783632708">Geen beleid ingesteld</translation>
@@ -984,7 +984,7 @@
<translation id="8201077131113104583">Ongeldige update-URL voor de extensie met de ID '<ph name="EXTENSION_ID" />'.</translation>
<translation id="8202097416529803614">Besteloverzicht</translation>
<translation id="8205463626947051446">Site geeft opdringerige advertenties weer</translation>
-<translation id="8211406090763984747">Verbinding is veilig</translation>
+<translation id="8211406090763984747">Verbinding is beveiligd</translation>
<translation id="8218327578424803826">Toegewezen locatie:</translation>
<translation id="8225771182978767009">De persoon die deze computer heeft geconfigureerd, heeft deze site geblokkeerd.</translation>
<translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
@@ -1042,7 +1042,7 @@
<translation id="8725066075913043281">Opnieuw proberen</translation>
<translation id="8728672262656704056">Je bent incognito</translation>
<translation id="8730621377337864115">Gereed</translation>
-<translation id="8738058698779197622">Als je een veilige verbinding tot stand wilt brengen, moet je klok goed zijn ingesteld. Dit moet omdat de certificaten die deze websites gebruiken om zichzelf te identificeren, slechts gedurende bepaalde perioden geldig zijn. Aangezien de klok van je apparaat niet goed is ingesteld, kan Chromium deze certificaten niet verifiëren.</translation>
+<translation id="8738058698779197622">Als je een beveiligde verbinding tot stand wilt brengen, moet je klok goed zijn ingesteld. Dit moet omdat de certificaten die deze websites gebruiken om zichzelf te identificeren, slechts gedurende bepaalde perioden geldig zijn. Aangezien de klok van je apparaat niet goed is ingesteld, kan Chromium deze certificaten niet verifiëren.</translation>
<translation id="8740359287975076522">Het &lt;abbr id="dnsDefinition"&gt;DNS-adres&lt;/abbr&gt; van <ph name="HOST_NAME" /> kan niet worden gevonden. Er wordt een diagnose van het probleem uitgevoerd.</translation>
<translation id="874846938927089722">Geaccepteerde creditcards en prepaidkaarten</translation>
<translation id="8759274551635299824">Deze kaart is verlopen</translation>
@@ -1091,7 +1091,7 @@
<translation id="9076283476770535406">De site kan content voor volwassenen bevatten</translation>
<translation id="9078964945751709336">Meer informatie vereist</translation>
<translation id="9080712759204168376">Besteloverzicht</translation>
-<translation id="9103872766612412690"><ph name="SITE" /> gebruikt gewoonlijk versleuteling om je gegevens te beschermen. Toen Chromium deze keer probeerde verbinding te maken met <ph name="SITE" />, retourneerde de website ongewone en onjuiste inloggegevens. Dit gebeurt wanneer een aanvaller probeert zich als <ph name="SITE" /> voor te doen of wanneer een wifi-inlogscherm de verbinding heeft verbroken. Je gegevens zijn nog steeds veilig omdat Chromium de verbinding heeft beëindigd voordat er gegevens konden worden uitgewisseld.</translation>
+<translation id="9103872766612412690"><ph name="SITE" /> gebruikt gewoonlijk versleuteling om je gegevens te beschermen. Toen Chromium deze keer probeerde verbinding te maken met <ph name="SITE" />, retourneerde de website ongewone en onjuiste inloggegevens. Dit gebeurt wanneer een aanvaller probeert zich als <ph name="SITE" /> voor te doen of wanneer een wifi-inlogscherm de verbinding heeft verbroken. Je gegevens zijn nog steeds beveiligd omdat Chromium de verbinding heeft beëindigd voordat er gegevens konden worden uitgewisseld.</translation>
<translation id="9106062320799175032">Factuuradres toevoegen</translation>
<translation id="910908805481542201">Help me dit op te lossen</translation>
<translation id="9128870381267983090">Verbinding maken met netwerk</translation>
diff --git a/chromium/components/strings/components_strings_pl.xtb b/chromium/components/strings/components_strings_pl.xtb
index fc7018e4cf6..2102c1912c4 100644
--- a/chromium/components/strings/components_strings_pl.xtb
+++ b/chromium/components/strings/components_strings_pl.xtb
@@ -457,7 +457,7 @@
<translation id="413544239732274901">Więcej informacji</translation>
<translation id="4148925816941278100">American Express</translation>
<translation id="4151403195736952345">Użyj globalnego ustawienia domyślnego (Wykrywaj)</translation>
-<translation id="4165986682804962316">Ustawienia witryny</translation>
+<translation id="4165986682804962316">Ustawienia witryn</translation>
<translation id="4169947484918424451">Czy Chromium ma zapisać tę kartę?</translation>
<translation id="4171400957073367226">Nieprawidłowy podpis weryfikujący</translation>
<translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Jeszcze <ph name="ITEM_COUNT" /> element}few{Jeszcze <ph name="ITEM_COUNT" /> elementy}many{Jeszcze <ph name="ITEM_COUNT" /> elementów}other{Jeszcze <ph name="ITEM_COUNT" /> elementu}}</translation>
diff --git a/chromium/components/strings/components_strings_sw.xtb b/chromium/components/strings/components_strings_sw.xtb
index 28c207d6ca3..8b96d8e1c6b 100644
--- a/chromium/components/strings/components_strings_sw.xtb
+++ b/chromium/components/strings/components_strings_sw.xtb
@@ -183,7 +183,7 @@
<translation id="2181821976797666341">Sera</translation>
<translation id="2183608646556468874">Nambari ya Simu</translation>
<translation id="2184405333245229118">{COUNT,plural, =1{Anwani 1}other{Anwani #}}</translation>
-<translation id="2187317261103489799">Gundua (chaguo-msingi)</translation>
+<translation id="2187317261103489799">Gundua (chaguo msingi)</translation>
<translation id="2202020181578195191">Andika mwaka sahihi wa kuisha kwa muda wa matumizi</translation>
<translation id="2212735316055980242">Sera haikupatikana</translation>
<translation id="2213606439339815911">Inachukua viingizo...</translation>
@@ -207,7 +207,7 @@
<translation id="2359808026110333948">Endelea</translation>
<translation id="2365563543831475020">Ripoti ya kuacha kufanya kazi iliyochukuliwa <ph name="CRASH_TIME" /> haikupakiwa</translation>
<translation id="2367567093518048410">Kiwango</translation>
-<translation id="2384307209577226199">Biashara chaguo-msingi</translation>
+<translation id="2384307209577226199">Biashara chaguo msingi</translation>
<translation id="2386255080630008482">Cheti cha seva kimebatilishwa.</translation>
<translation id="2392959068659972793">Onyesha sera zisizowekwa thamani</translation>
<translation id="239429038616798445">Mbinu hii ya usafirishaji haipatikani. Jaribu mbinu tofauti.</translation>
@@ -360,7 +360,7 @@
<translation id="3399952811970034796">Mahali Bidhaa Itapelekwa</translation>
<translation id="3422248202833853650">Jaribu kuondoka kwenye programu nyingine ili upate nafasi zaidi.</translation>
<translation id="3422472998109090673"><ph name="HOST_NAME" /> haiwezi kufikiwa kwa sasa.</translation>
-<translation id="3427092606871434483">Ruhusu (chaguo-msingi)</translation>
+<translation id="3427092606871434483">Ruhusu (chaguo msingi)</translation>
<translation id="3427342743765426898">Rudia Kuhariri</translation>
<translation id="3431636764301398940">Hifadhi kadi hii kwenye kifaa hiki</translation>
<translation id="3447661539832366887">Mmiliki wa kifaa hiki amezima mchezo wa dinosau.</translation>
@@ -456,7 +456,7 @@
<translation id="4130226655945681476">Kukagua kebo za mtandao, modemu au kisambaza data</translation>
<translation id="413544239732274901">Pata maelezo zaidi</translation>
<translation id="4148925816941278100">American Express</translation>
-<translation id="4151403195736952345">Tumia chaguo-msingi la kimataifa (Gundua)</translation>
+<translation id="4151403195736952345">Tumia chaguo msingi la kimataifa (Gundua)</translation>
<translation id="4165986682804962316">Mipangilio ya tovuti</translation>
<translation id="4169947484918424451">Je, unataka Chromium ihifadhi kadi hii?</translation>
<translation id="4171400957073367226">Sahihi mbaya ya uthibitishaji</translation>
@@ -495,7 +495,7 @@
<translation id="4275830172053184480">Washa upya kifaa chako</translation>
<translation id="4277028893293644418">Badilisha nenosiri</translation>
<translation id="4280429058323657511">, muda wa kutumika utakwisha <ph name="EXPIRATION_DATE_ABBR" /></translation>
-<translation id="4312866146174492540">Zuia (chaguo-msingi)</translation>
+<translation id="4312866146174492540">Zuia (chaguo msingi)</translation>
<translation id="4325863107915753736">Haikupata makala</translation>
<translation id="4326324639298822553">Angalia tarehe kuisha kwa muda wa matumizi halafu ujajibu tena</translation>
<translation id="4331708818696583467">Si Salama</translation>
@@ -795,7 +795,7 @@
<translation id="6753269504797312559">Thamani ya sera</translation>
<translation id="6757797048963528358">Kifaa chako kiko katika hali tuli.</translation>
<translation id="6778737459546443941">Mzazi wako bado hajaiidhinisha</translation>
-<translation id="679355240208270552">Imepuuzwa kwa sababu utafutaji chaguo-msingi umezimwa na sera.</translation>
+<translation id="679355240208270552">Imepuuzwa kwa sababu utafutaji chaguo msingi umezimwa na sera.</translation>
<translation id="681021252041861472">Sehemu Hii Sharti Ijazwe</translation>
<translation id="6810899417690483278">Kitambulisho cha kubadilisha ili kukufaa</translation>
<translation id="6820686453637990663">CVC</translation>
@@ -878,7 +878,7 @@
<translation id="7444046173054089907">Tovuti hii imezuiwa</translation>
<translation id="7445762425076701745">Utambulisho wa seva ambayo umejiunga kwayo hauwezi kuhalalishwa kikamilifu. Umeunganishwa kwenye seva kwa kutumia jina ambalo ni halali tu katika mtandao wako, ambalo mamlaka ya cheti cha nje hayana njia ya kuhalalisha umiliki wake. Kama baadhi ya mamlaka ya cheti yatatoa vyeti vya majina haya bila kujali, hakuna njia ya kuhakikisha umeunganishwa kwenye tovuti inayohitajika na sio mshambulizi.</translation>
<translation id="7451311239929941790"><ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /> kuhusu hitilafu hii.</translation>
-<translation id="7455133967321480974">Tumia chaguo-msingi la duniani (Zuia)</translation>
+<translation id="7455133967321480974">Tumia chaguo msingi la duniani (Zuia)</translation>
<translation id="7460163899615895653">Vichupo vyako vya hivi majuzi kutoka kwenye vifaa vingine vitaonekana hapa</translation>
<translation id="7469372306589899959">Inathibitisha kadi</translation>
<translation id="7481312909269577407">Mbele</translation>
@@ -968,9 +968,9 @@
<translation id="8012647001091218357">Hatukuweza kuwafikia wazazi wako wakati huu. Tafadhali jaribu tena.</translation>
<translation id="8025119109950072390">Wavamizi kwenye tovuti hii wanaweza kukulaghai ili ufanye kitu hatari kama vile kusakinisha programu au kuonyesha maelezo yako binafsi (kwa mfano, manenosiri, nambari za simu au kadi za mikopo).</translation>
<translation id="8034522405403831421">Ukurasa huu ni wa lugha ya <ph name="SOURCE_LANGUAGE" />. Je, ungependa kuutasfiri kuwa <ph name="TARGET_LANGUAGE" />?</translation>
-<translation id="8037357227543935929">Uliza (chaguo-msingi)</translation>
+<translation id="8037357227543935929">Uliza (chaguo msingi)</translation>
<translation id="8041089156583427627">Tuma Maoni</translation>
-<translation id="8041940743680923270">Tumia chaguo-msingi la duniani (Uliza)</translation>
+<translation id="8041940743680923270">Tumia chaguo msingi la duniani (Uliza)</translation>
<translation id="8042918947222776840">Chagua Mbinu ya Kuchukua Bidhaa</translation>
<translation id="8057711352706143257">Haikuweka mipangilio ya "<ph name="SOFTWARE_NAME" />" kwa njia sahihi. Kwa kawaida, kuondoa "<ph name="SOFTWARE_NAME" />" hurekebisha tatizo hili. <ph name="FURTHER_EXPLANATION" /></translation>
<translation id="8079031581361219619">Ungependa kupakia upya tovuti?</translation>
@@ -983,7 +983,7 @@
<translation id="8131740175452115882">Thibitisha</translation>
<translation id="8149426793427495338">Kompyuta yako iko katika hali tuli.</translation>
<translation id="8150722005171944719">Faili katika <ph name="URL" /> haisomeki. Huenda imeondolewa, kusogezwa, au idhini za faili huenda zinazuia ufikiaji.</translation>
-<translation id="8184538546369750125">Tumia chaguo-msingi la duniani (Ruhusu)</translation>
+<translation id="8184538546369750125">Tumia chaguo msingi la duniani (Ruhusu)</translation>
<translation id="8191494405820426728">Kitambulisho cha Kuacha Kufanya Kazi <ph name="CRASH_LOCAL_ID" /></translation>
<translation id="8194797478851900357">Tendua hatua</translation>
<translation id="8201077131113104583">URL ya sasisho si sahihi kwa kiendelezi chenye Kitambulisho "<ph name="EXTENSION_ID" />".</translation>
diff --git a/chromium/components/viz/service/display/surface_aggregator.cc b/chromium/components/viz/service/display/surface_aggregator.cc
index e7890382bcc..5c41b6d48b8 100644
--- a/chromium/components/viz/service/display/surface_aggregator.cc
+++ b/chromium/components/viz/service/display/surface_aggregator.cc
@@ -1230,6 +1230,10 @@ CompositorFrame SurfaceAggregator::Aggregate(
Surface* surface = manager_->GetSurfaceForId(it.first);
if (surface)
surface->TakeLatencyInfo(&frame.metadata.latency_info);
+ if (!ui::LatencyInfo::Verify(frame.metadata.latency_info,
+ "SurfaceAggregator::Aggregate")) {
+ break;
+ }
}
// TODO(jamesr): Aggregate all resource references into the returned frame's
diff --git a/chromium/components/viz/service/frame_sinks/surface_synchronization_unittest.cc b/chromium/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
index 7752851fdb3..860743d07bc 100644
--- a/chromium/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
+++ b/chromium/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
@@ -863,6 +863,63 @@ TEST_F(SurfaceSynchronizationTest, DropStaleReferencesAfterActivation) {
EXPECT_THAT(GetChildReferences(parent_id), IsEmpty());
}
+// Verifies that LatencyInfo does not get too large after multiple resizes.
+TEST_F(SurfaceSynchronizationTest, LimitLatencyInfo) {
+ const SurfaceId parent_id1 = MakeSurfaceId(kParentFrameSink, 1);
+ const SurfaceId parent_id2 = MakeSurfaceId(kParentFrameSink, 2);
+ const ui::LatencyComponentType latency_type1 =
+ ui::BROWSER_SNAPSHOT_FRAME_NUMBER_COMPONENT;
+ const int64_t latency_id1 = 234;
+ const int64_t latency_sequence_number1 = 5645432;
+ const ui::LatencyComponentType latency_type2 = ui::TAB_SHOW_COMPONENT;
+ const int64_t latency_id2 = 31434351;
+ const int64_t latency_sequence_number2 = 663788;
+
+ // Submit a frame with latency info
+ ui::LatencyInfo info;
+ info.AddLatencyNumber(latency_type1, latency_id1, latency_sequence_number1);
+
+ CompositorFrameBuilder builder;
+ builder.AddDefaultRenderPass();
+ for (int i = 0; i < 60; ++i)
+ builder.AddLatencyInfo(info);
+ CompositorFrame frame = builder.Build();
+
+ parent_support().SubmitCompositorFrame(parent_id1.local_surface_id(),
+ std::move(frame));
+
+ // Verify that the old surface has an active frame and no pending frame.
+ Surface* old_surface = GetSurfaceForId(parent_id1);
+ ASSERT_NE(nullptr, old_surface);
+ EXPECT_TRUE(old_surface->HasActiveFrame());
+ EXPECT_FALSE(old_surface->HasPendingFrame());
+
+ // Submit another frame with some other latency info and a different
+ // LocalSurfaceId.
+ ui::LatencyInfo info2;
+ info2.AddLatencyNumber(latency_type2, latency_id2, latency_sequence_number2);
+
+ builder.AddDefaultRenderPass();
+ for (int i = 0; i < 60; ++i)
+ builder.AddLatencyInfo(info);
+ CompositorFrame frame2 = builder.Build();
+
+ parent_support().SubmitCompositorFrame(parent_id2.local_surface_id(),
+ std::move(frame2));
+
+ // Verify that the new surface has an active frame and no pending frames.
+ Surface* surface = GetSurfaceForId(parent_id2);
+ ASSERT_NE(nullptr, surface);
+ EXPECT_TRUE(surface->HasActiveFrame());
+ EXPECT_FALSE(surface->HasPendingFrame());
+
+ // Verify that the new surface has no latency info objects because it grew
+ // too large.
+ std::vector<ui::LatencyInfo> info_list;
+ surface->TakeLatencyInfo(&info_list);
+ EXPECT_EQ(0u, info_list.size());
+}
+
// Checks whether the latency info are moved to the new surface from the old
// one when LocalSurfaceId changes. No frame has unresolved dependencies.
TEST_F(SurfaceSynchronizationTest,
diff --git a/chromium/components/viz/service/surfaces/surface.cc b/chromium/components/viz/service/surfaces/surface.cc
index 1ebdaf38f31..de5eeb930a3 100644
--- a/chromium/components/viz/service/surfaces/surface.cc
+++ b/chromium/components/viz/service/surfaces/surface.cc
@@ -551,13 +551,14 @@ void Surface::TakeLatencyInfoFromFrame(
frame->metadata.latency_info.swap(*latency_info);
return;
}
- if (ui::LatencyInfo::Verify(*latency_info,
- "Surface::TakeLatencyInfoFromFrame")) {
- std::copy(frame->metadata.latency_info.begin(),
- frame->metadata.latency_info.end(),
- std::back_inserter(*latency_info));
- }
+ std::copy(frame->metadata.latency_info.begin(),
+ frame->metadata.latency_info.end(),
+ std::back_inserter(*latency_info));
frame->metadata.latency_info.clear();
+ if (!ui::LatencyInfo::Verify(*latency_info,
+ "Surface::TakeLatencyInfoFromFrame")) {
+ latency_info->clear();
+ }
}
void Surface::OnWillBeDrawn() {
diff --git a/chromium/content/app/strings/translations/content_strings_bn.xtb b/chromium/content/app/strings/translations/content_strings_bn.xtb
index 23a7e807f7f..d99fd33af1e 100644
--- a/chromium/content/app/strings/translations/content_strings_bn.xtb
+++ b/chromium/content/app/strings/translations/content_strings_bn.xtb
@@ -100,7 +100,7 @@
<translation id="5406322316791861025">আকার</translation>
<translation id="5453733299334684579">ট্রি আইটেম</translation>
<translation id="5466621249238537318">দয়া করে এক বা একাধিক ফাইল নির্বাচন করুন৷</translation>
-<translation id="5468998798572797635">পূর্ণ স্ক্রীন বন্ধ করুন</translation>
+<translation id="5468998798572797635">পূর্ণ স্ক্রিন বন্ধ করুন</translation>
<translation id="5516424706154626233">তারিখ চয়নকারি</translation>
<translation id="5537725057119320332">কাস্ট করুন</translation>
<translation id="5546461542133609677">সশব্দ</translation>
@@ -162,7 +162,7 @@
<translation id="8053789581856978548">অনুসন্ধান পাঠ্য ফিল্ড</translation>
<translation id="8115662671911883373">বন্ধ পরিচয়লিপিগুলির প্রদর্শন শুরু করুন</translation>
<translation id="8117451130807776954">এই সপ্তাহ</translation>
-<translation id="819205353528511139">পূর্ণ স্ক্রীন মোডে চলচ্চিত্র চালান</translation>
+<translation id="819205353528511139">পূর্ণ স্ক্রিন মোডে চলচ্চিত্র চালান</translation>
<translation id="8199524924445686405">yyyy</translation>
<translation id="8284326494547611709">পরিচয়লিপিগুলি</translation>
<translation id="835897206747267392">অকার্যকর মান৷</translation>
diff --git a/chromium/content/browser/android/overscroll_controller_android_unittest.cc b/chromium/content/browser/android/overscroll_controller_android_unittest.cc
index 8750391986b..2745dd1243e 100644
--- a/chromium/content/browser/android/overscroll_controller_android_unittest.cc
+++ b/chromium/content/browser/android/overscroll_controller_android_unittest.cc
@@ -34,11 +34,7 @@ namespace {
class MockCompositor : public WindowAndroidCompositor {
public:
~MockCompositor() override {}
- base::WeakPtr<ui::WindowAndroidCompositor> GetWeakPtr() override {
- return nullptr;
- }
- void IncrementReadbackRequestCount() override {}
- void DecrementReadbackRequestCount() override {}
+ void AttachLayerForReadback(scoped_refptr<cc::Layer>) override {}
void RequestCopyOfOutputOnRootLayer(
std::unique_ptr<viz::CopyOutputRequest>) override {}
void SetNeedsAnimate() override {}
diff --git a/chromium/content/browser/frame_host/interstitial_page_impl.cc b/chromium/content/browser/frame_host/interstitial_page_impl.cc
index af9c604d578..94e29b878e1 100644
--- a/chromium/content/browser/frame_host/interstitial_page_impl.cc
+++ b/chromium/content/browser/frame_host/interstitial_page_impl.cc
@@ -836,6 +836,12 @@ void InterstitialPageImpl::Shutdown() {
}
void InterstitialPageImpl::OnNavigatingAwayOrTabClosing() {
+ // Notify the RenderWidgetHostView so it can clean up interstitial resources
+ // before the WebContents is fully destroyed.
+ if (render_view_host_ && render_view_host_->GetWidget() &&
+ render_view_host_->GetWidget()->GetView()) {
+ render_view_host_->GetWidget()->GetView()->OnInterstitialPageGoingAway();
+ }
if (action_taken_ == NO_ACTION) {
// We are navigating away from the interstitial or closing a tab with an
// interstitial. Default to DontProceed(). We don't just call Hide as
diff --git a/chromium/content/browser/frame_host/navigation_controller_impl_browsertest.cc b/chromium/content/browser/frame_host/navigation_controller_impl_browsertest.cc
index ee48fdd3405..1462dab7844 100644
--- a/chromium/content/browser/frame_host/navigation_controller_impl_browsertest.cc
+++ b/chromium/content/browser/frame_host/navigation_controller_impl_browsertest.cc
@@ -7656,6 +7656,43 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
}
}
+// Regression test for https://crbug.com/845923.
+IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
+ GoBackFromCrossSiteSubFrame) {
+ // Navigate to a page with a cross-site frame.
+ GURL main_url(embedded_test_server()->GetURL(
+ "a.com", "/cross_site_iframe_factory.html?a(b)"));
+ EXPECT_TRUE(NavigateToURL(shell(), main_url));
+ FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents())
+ ->GetFrameTree()
+ ->root();
+ GURL initial_subframe_url =
+ root->child_at(0)->current_frame_host()->GetLastCommittedURL();
+ NavigationControllerImpl& controller = static_cast<NavigationControllerImpl&>(
+ shell()->web_contents()->GetController());
+ EXPECT_EQ(1, controller.GetEntryCount());
+ EXPECT_EQ(0, controller.GetCurrentEntryIndex());
+
+ // Navigate the subframe to another cross-site location
+ // (this prepares for executing history.back() in a later step).
+ GURL final_subframe_url =
+ embedded_test_server()->GetURL("b.com", "/title1.html");
+ NavigateFrameToURL(root->child_at(0), final_subframe_url);
+ EXPECT_EQ(final_subframe_url,
+ root->child_at(0)->current_frame_host()->GetLastCommittedURL());
+ EXPECT_EQ(2, controller.GetEntryCount());
+ EXPECT_EQ(1, controller.GetCurrentEntryIndex());
+
+ // Execute |history.back()| in the subframe.
+ TestNavigationObserver nav_observer(shell()->web_contents(), 1);
+ EXPECT_TRUE(ExecuteScript(root->child_at(0), "history.back()"));
+ nav_observer.Wait();
+ EXPECT_EQ(initial_subframe_url,
+ root->child_at(0)->current_frame_host()->GetLastCommittedURL());
+ EXPECT_EQ(2, controller.GetEntryCount());
+ EXPECT_EQ(0, controller.GetCurrentEntryIndex());
+}
+
IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
HashNavigationVsBeforeUnloadEvent) {
GURL main_url(embedded_test_server()->GetURL("/title1.html"));
diff --git a/chromium/content/browser/indexed_db/indexed_db_database.cc b/chromium/content/browser/indexed_db/indexed_db_database.cc
index fff36197e29..3baba4f2ed7 100644
--- a/chromium/content/browser/indexed_db/indexed_db_database.cc
+++ b/chromium/content/browser/indexed_db/indexed_db_database.cc
@@ -257,8 +257,6 @@ class IndexedDBDatabase::OpenRequest
void UpgradeTransactionFinished(bool committed) override {
// Ownership of connection was already passed along in OnUpgradeNeeded.
- DCHECK(!connection_);
-
if (committed) {
DCHECK_EQ(pending_->version, db_->metadata_.version);
pending_->callbacks->OnSuccess(std::unique_ptr<IndexedDBConnection>(),
diff --git a/chromium/content/browser/indexed_db/indexed_db_transaction.cc b/chromium/content/browser/indexed_db/indexed_db_transaction.cc
index a0878c2dce7..78ac2ba3600 100644
--- a/chromium/content/browser/indexed_db/indexed_db_transaction.cc
+++ b/chromium/content/browser/indexed_db/indexed_db_transaction.cc
@@ -111,7 +111,7 @@ IndexedDBTransaction::IndexedDBTransaction(
: id_(id),
object_store_ids_(object_store_ids),
mode_(mode),
- connection_(connection),
+ connection_(connection->GetWeakPtr()),
transaction_(backing_store_transaction),
ptr_factory_(this) {
IDB_ASYNC_TRACE_BEGIN("IndexedDBTransaction::lifetime", this);
@@ -222,7 +222,10 @@ void IndexedDBTransaction::Abort(const IndexedDBDatabaseError& error) {
database_->TransactionFinished(this, false);
// RemoveTransaction will delete |this|.
- connection_->RemoveTransaction(id_);
+ // Note: During force-close situations, the connection can be destroyed during
+ // the |IndexedDBDatabase::TransactionFinished| call
+ if (connection_)
+ connection_->RemoveTransaction(id_);
}
bool IndexedDBTransaction::IsTaskQueueEmpty() const {
diff --git a/chromium/content/browser/indexed_db/indexed_db_transaction.h b/chromium/content/browser/indexed_db/indexed_db_transaction.h
index 7196f25943e..fd690bcc345 100644
--- a/chromium/content/browser/indexed_db/indexed_db_transaction.h
+++ b/chromium/content/browser/indexed_db/indexed_db_transaction.h
@@ -107,7 +107,7 @@ class CONTENT_EXPORT IndexedDBTransaction {
IndexedDBDatabase* database() const { return database_.get(); }
IndexedDBDatabaseCallbacks* callbacks() const { return callbacks_.get(); }
- IndexedDBConnection* connection() const { return connection_; }
+ IndexedDBConnection* connection() const { return connection_.get(); }
State state() const { return state_; }
bool IsTimeoutTimerRunning() const { return timeout_timer_.IsRunning(); }
@@ -187,8 +187,9 @@ class CONTENT_EXPORT IndexedDBTransaction {
bool used_ = false;
State state_ = CREATED;
bool commit_pending_ = false;
- // We are owned by the connection object.
- IndexedDBConnection* connection_;
+ // We are owned by the connection object, but during force closes sometimes
+ // there are issues if there is a pending OpenRequest. So use a WeakPtr.
+ base::WeakPtr<IndexedDBConnection> connection_;
scoped_refptr<IndexedDBDatabaseCallbacks> callbacks_;
scoped_refptr<IndexedDBDatabase> database_;
diff --git a/chromium/content/browser/renderer_host/compositor_impl_android.cc b/chromium/content/browser/renderer_host/compositor_impl_android.cc
index 6cbf42626e1..8738af74a88 100644
--- a/chromium/content/browser/renderer_host/compositor_impl_android.cc
+++ b/chromium/content/browser/renderer_host/compositor_impl_android.cc
@@ -544,6 +544,11 @@ void CompositorImpl::SetRootWindow(gfx::NativeWindow root_window) {
root_window_ = root_window;
root_window_->SetLayer(root_layer ? root_layer : cc::Layer::Create());
root_window_->GetLayer()->SetBounds(size_);
+ if (!readback_layer_tree_) {
+ readback_layer_tree_ = cc::Layer::Create();
+ readback_layer_tree_->SetHideLayerAndSubtree(true);
+ }
+ root_window->GetLayer()->AddChild(readback_layer_tree_);
root_window->AttachCompositor(this);
if (!host_) {
CreateLayerTreeHost();
@@ -923,17 +928,8 @@ void CompositorImpl::DidCommit() {
root_window_->OnCompositingDidCommit();
}
-base::WeakPtr<ui::WindowAndroidCompositor> CompositorImpl::GetWeakPtr() {
- return weak_factory_.GetWeakPtr();
-}
-
-void CompositorImpl::IncrementReadbackRequestCount() {
- pending_readback_request_count_++;
-}
-
-void CompositorImpl::DecrementReadbackRequestCount() {
- DCHECK_GT(pending_readback_request_count_, 0u);
- pending_readback_request_count_--;
+void CompositorImpl::AttachLayerForReadback(scoped_refptr<cc::Layer> layer) {
+ readback_layer_tree_->AddChild(layer);
}
void CompositorImpl::RequestCopyOfOutputOnRootLayer(
@@ -995,7 +991,7 @@ void CompositorImpl::OnDisplayMetricsChanged(const display::Display& display,
}
bool CompositorImpl::HavePendingReadbacks() {
- return pending_readback_request_count_ > 0u;
+ return !readback_layer_tree_->children().empty();
}
std::unique_ptr<ui::CompositorLock> CompositorImpl::GetCompositorLock(
diff --git a/chromium/content/browser/renderer_host/compositor_impl_android.h b/chromium/content/browser/renderer_host/compositor_impl_android.h
index a037726c11d..6b59f095804 100644
--- a/chromium/content/browser/renderer_host/compositor_impl_android.h
+++ b/chromium/content/browser/renderer_host/compositor_impl_android.h
@@ -122,9 +122,7 @@ class CONTENT_EXPORT CompositorImpl
void DidLoseLayerTreeFrameSink() override;
// WindowAndroidCompositor implementation.
- base::WeakPtr<ui::WindowAndroidCompositor> GetWeakPtr() override;
- void IncrementReadbackRequestCount() override;
- void DecrementReadbackRequestCount() override;
+ void AttachLayerForReadback(scoped_refptr<cc::Layer> layer) override;
void RequestCopyOfOutputOnRootLayer(
std::unique_ptr<viz::CopyOutputRequest> request) override;
void SetNeedsAnimate() override;
@@ -177,6 +175,9 @@ class CONTENT_EXPORT CompositorImpl
// is the one attached by the compositor client.
scoped_refptr<cc::Layer> subroot_layer_;
+ // Subtree for hidden layers with CopyOutputRequests on them.
+ scoped_refptr<cc::Layer> readback_layer_tree_;
+
// Destruction order matters here:
std::unique_ptr<cc::AnimationHost> animation_host_;
std::unique_ptr<cc::LayerTreeHost> host_;
@@ -215,8 +216,6 @@ class CONTENT_EXPORT CompositorImpl
ui::CompositorLockManager lock_manager_;
bool has_submitted_frame_since_became_visible_ = false;
- unsigned int pending_readback_request_count_ = 0u;
-
// A task which runs cleanup tasks on low-end Android after a delay. Enqueued
// when we hide, canceled when we're shown.
base::CancelableOnceClosure low_end_background_cleanup_task_;
diff --git a/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc b/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc
index acf8f012a83..85864f594da 100644
--- a/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc
+++ b/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.cc
@@ -14,7 +14,7 @@ MouseWheelPhaseHandler::MouseWheelPhaseHandler(
RenderWidgetHostViewBase* const host_view)
: host_view_(host_view),
mouse_wheel_end_dispatch_timeout_(kDefaultMouseWheelLatchingTransaction),
- scroll_phase_state_(SCROLL_STATE_UNKNOWN) {}
+ touchpad_scroll_phase_state_(TOUCHPAD_SCROLL_STATE_UNKNOWN) {}
void MouseWheelPhaseHandler::AddPhaseIfNeededAndScheduleEndEvent(
blink::WebMouseWheelEvent& mouse_wheel_event,
@@ -43,8 +43,8 @@ void MouseWheelPhaseHandler::AddPhaseIfNeededAndScheduleEndEvent(
IgnorePendingWheelEndEvent();
}
} else { // !has_phase
- switch (scroll_phase_state_) {
- case SCROLL_STATE_UNKNOWN: {
+ switch (touchpad_scroll_phase_state_) {
+ case TOUCHPAD_SCROLL_STATE_UNKNOWN: {
mouse_wheel_event.has_synthetic_phase = true;
// Break the latching when the location difference between the current
// and the initial wheel event positions exceeds the maximum allowed
@@ -75,11 +75,11 @@ void MouseWheelPhaseHandler::AddPhaseIfNeededAndScheduleEndEvent(
}
break;
}
- case SCROLL_MAY_BEGIN:
+ case TOUCHPAD_SCROLL_MAY_BEGIN:
mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseBegan;
- scroll_phase_state_ = SCROLL_IN_PROGRESS;
+ touchpad_scroll_phase_state_ = TOUCHPAD_SCROLL_IN_PROGRESS;
break;
- case SCROLL_IN_PROGRESS:
+ case TOUCHPAD_SCROLL_IN_PROGRESS:
mouse_wheel_event.phase = blink::WebMouseWheelEvent::kPhaseChanged;
break;
default:
@@ -103,15 +103,15 @@ void MouseWheelPhaseHandler::IgnorePendingWheelEndEvent() {
mouse_wheel_end_dispatch_timer_.Stop();
}
-void MouseWheelPhaseHandler::ResetScrollSequence() {
- scroll_phase_state_ = SCROLL_STATE_UNKNOWN;
+void MouseWheelPhaseHandler::ResetTouchpadScrollSequence() {
+ touchpad_scroll_phase_state_ = TOUCHPAD_SCROLL_STATE_UNKNOWN;
}
-void MouseWheelPhaseHandler::SendWheelEndIfNeeded() {
- if (scroll_phase_state_ == SCROLL_IN_PROGRESS) {
+void MouseWheelPhaseHandler::SendWheelEndForTouchpadScrollingIfNeeded() {
+ if (touchpad_scroll_phase_state_ == TOUCHPAD_SCROLL_IN_PROGRESS) {
RenderWidgetHostImpl* widget_host = host_view_->host();
if (!widget_host) {
- ResetScrollSequence();
+ ResetTouchpadScrollSequence();
return;
}
@@ -120,11 +120,18 @@ void MouseWheelPhaseHandler::SendWheelEndIfNeeded() {
SendSyntheticWheelEventWithPhaseEnded(should_route_event);
}
- ResetScrollSequence();
+ ResetTouchpadScrollSequence();
}
-void MouseWheelPhaseHandler::ScrollingMayBegin() {
- scroll_phase_state_ = SCROLL_MAY_BEGIN;
+void MouseWheelPhaseHandler::TouchpadScrollingMayBegin() {
+ // End the timer-based wheel scroll sequence before starting a touchpad scroll
+ // sequence.
+ if (mouse_wheel_end_dispatch_timer_.IsRunning()) {
+ DCHECK_EQ(TOUCHPAD_SCROLL_STATE_UNKNOWN, touchpad_scroll_phase_state_);
+ DispatchPendingWheelEndEvent();
+ }
+
+ touchpad_scroll_phase_state_ = TOUCHPAD_SCROLL_MAY_BEGIN;
}
void MouseWheelPhaseHandler::SendSyntheticWheelEventWithPhaseEnded(
@@ -169,7 +176,7 @@ bool MouseWheelPhaseHandler::IsWithinSlopRegion(
// This function is called to check if breaking timer-based wheel scroll
// latching sequence is needed or not, and timer-based wheel scroll latching
// happens only when scroll state is unknown.
- DCHECK(scroll_phase_state_ == SCROLL_STATE_UNKNOWN);
+ DCHECK(touchpad_scroll_phase_state_ == TOUCHPAD_SCROLL_STATE_UNKNOWN);
gfx::Vector2dF current_wheel_location(wheel_event.PositionInWidget().x,
wheel_event.PositionInWidget().y);
return (current_wheel_location - first_wheel_location_).LengthSquared() <
@@ -181,7 +188,7 @@ bool MouseWheelPhaseHandler::HasDifferentModifiers(
// This function is called to check if breaking timer-based wheel scroll
// latching sequence is needed or not, and timer-based wheel scroll latching
// happens only when scroll state is unknown.
- DCHECK(scroll_phase_state_ == SCROLL_STATE_UNKNOWN);
+ DCHECK(touchpad_scroll_phase_state_ == TOUCHPAD_SCROLL_STATE_UNKNOWN);
return wheel_event.GetModifiers() != initial_wheel_event_.GetModifiers();
}
@@ -190,7 +197,7 @@ bool MouseWheelPhaseHandler::ShouldBreakLatchingDueToDirectionChange(
// This function is called to check if breaking timer-based wheel scroll
// latching sequence is needed or not, and timer-based wheel scroll latching
// happens only when scroll state is unknown.
- DCHECK(scroll_phase_state_ == SCROLL_STATE_UNKNOWN);
+ DCHECK(touchpad_scroll_phase_state_ == TOUCHPAD_SCROLL_STATE_UNKNOWN);
if (first_scroll_update_ack_state_ != FirstScrollUpdateAckState::kNotConsumed)
return false;
diff --git a/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.h b/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
index 343f8172d85..4f7c03d6293 100644
--- a/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
+++ b/chromium/content/browser/renderer_host/input/mouse_wheel_phase_handler.h
@@ -29,15 +29,18 @@ constexpr base::TimeDelta kMaximumTimeBetweenPhaseEndedAndMomentumPhaseBegan =
const double kWheelLatchingSlopRegion = 10.0;
// On ChromeOS wheel events don't have phase information; However, whenever the
-// user puts down or lifts their fingers a GFC or GFS is received.
-enum ScrollPhaseState {
+// user puts down their fingers on touchpad a GFC is received and at the end of
+// touchpad scrolling when the user lifts their fingers a GFS is received. This
+// enum tracks the current state of the touchpad scrolling by listening to GFC
+// and GFS events.
+enum TouchpadScrollPhaseState {
// Scrolling with normal mouse wheels doesn't give any information about the
// state of scrolling.
- SCROLL_STATE_UNKNOWN = 0,
+ TOUCHPAD_SCROLL_STATE_UNKNOWN = 0,
// Shows that the user has put their fingers down and a scroll may start.
- SCROLL_MAY_BEGIN,
+ TOUCHPAD_SCROLL_MAY_BEGIN,
// Scrolling has started and the user hasn't lift their fingers, yet.
- SCROLL_IN_PROGRESS,
+ TOUCHPAD_SCROLL_IN_PROGRESS,
};
enum class FirstScrollUpdateAckState {
@@ -49,6 +52,9 @@ enum class FirstScrollUpdateAckState {
kNotConsumed,
};
+// The MouseWheelPhaseHandler is responsible for adding the proper phase to
+// wheel events. Phase information is necessary for wheel scrolling since it
+// shows the start and end of a scrolling sequence.
class MouseWheelPhaseHandler {
public:
MouseWheelPhaseHandler(RenderWidgetHostViewBase* const host_view);
@@ -59,9 +65,9 @@ class MouseWheelPhaseHandler {
bool should_route_event);
void DispatchPendingWheelEndEvent();
void IgnorePendingWheelEndEvent();
- void ResetScrollSequence();
- void SendWheelEndIfNeeded();
- void ScrollingMayBegin();
+ void ResetTouchpadScrollSequence();
+ void SendWheelEndForTouchpadScrollingIfNeeded();
+ void TouchpadScrollingMayBegin();
// Used to set the timer timeout for testing.
void set_mouse_wheel_end_dispatch_timeout(base::TimeDelta timeout) {
@@ -89,7 +95,7 @@ class MouseWheelPhaseHandler {
base::OneShotTimer mouse_wheel_end_dispatch_timer_;
base::TimeDelta mouse_wheel_end_dispatch_timeout_;
blink::WebMouseWheelEvent last_mouse_wheel_event_;
- ScrollPhaseState scroll_phase_state_;
+ TouchpadScrollPhaseState touchpad_scroll_phase_state_;
// This is used to break the timer based latching when the difference between
// the locations of the first wheel event and the current wheel event is
// larger than some threshold. The variable value is only valid while the
diff --git a/chromium/content/browser/renderer_host/render_process_host_impl.cc b/chromium/content/browser/renderer_host/render_process_host_impl.cc
index 2a5c90e85c7..dadd00f56a0 100644
--- a/chromium/content/browser/renderer_host/render_process_host_impl.cc
+++ b/chromium/content/browser/renderer_host/render_process_host_impl.cc
@@ -2584,6 +2584,11 @@ bool RenderProcessHostImpl::IsSpareProcessKeptAtAllTimes() {
if (!base::FeatureList::IsEnabled(features::kSpareRendererForSitePerProcess))
return false;
+ // Spare renderer actually hurts performance on low-memory devices. See
+ // https://crbug.com/843775 for more details.
+ if (base::SysInfo::AmountOfPhysicalMemoryMB() <= 1077)
+ return false;
+
return true;
}
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_android.cc b/chromium/content/browser/renderer_host/render_widget_host_view_android.cc
index 71c81ed240a..18be0d64dcf 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -847,6 +847,10 @@ void RenderWidgetHostViewAndroid::ShowDisambiguationPopup(
tap_disambiguator_->ShowPopup(rect_pixels, zoomed_bitmap);
}
+void RenderWidgetHostViewAndroid::OnInterstitialPageGoingAway() {
+ sync_compositor_.reset();
+}
+
std::unique_ptr<SyntheticGestureTarget>
RenderWidgetHostViewAndroid::CreateSyntheticGestureTarget() {
return std::unique_ptr<SyntheticGestureTarget>(
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_android.h b/chromium/content/browser/renderer_host/render_widget_host_view_android.h
index 4e9fef8bc8f..472e6316b7a 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_android.h
@@ -163,6 +163,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void DidStopFlinging() override;
void ShowDisambiguationPopup(const gfx::Rect& rect_pixels,
const SkBitmap& zoomed_bitmap) override;
+ void OnInterstitialPageGoingAway() override;
std::unique_ptr<SyntheticGestureTarget> CreateSyntheticGestureTarget()
override;
void OnDidNavigateMainFrameToNewPage() override;
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/chromium/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index c099868cabc..ba3facd9161 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -696,6 +696,10 @@ class RenderWidgetHostViewAuraTest : public testing::Test {
return delegates_.back().get();
}
+ MouseWheelPhaseHandler* GetMouseWheelPhaseHandler() const {
+ return &(view_->event_handler()->mouse_wheel_phase_handler());
+ }
+
// Sets the |view| active in TextInputManager with the given |type|. |type|
// cannot be ui::TEXT_INPUT_TYPE_NONE.
// Must not be called in the destruction path of |view|.
@@ -2492,6 +2496,81 @@ TEST_F(RenderWidgetHostViewAuraAsyncWheelEventsEnabledTest,
TouchpadFlingStartResetsWheelPhaseState();
}
+TEST_F(RenderWidgetHostViewAuraAsyncWheelEventsEnabledTest,
+ ScrollingWithExternalMouseBreaksTouchpadScrollLatching) {
+ // The test is valid only when wheel scroll latching is enabled.
+ if (wheel_scrolling_mode_ == kWheelScrollingModeNone)
+ return;
+
+ // Set the mouse_wheel_phase_handler_ timer timeout to a large value to make
+ // sure that the timer is still running when we are checking for the pending
+ // wheel end event after sending ui::MouseWheelEvent.
+ view_->event_handler()->set_mouse_wheel_wheel_phase_handler_timeout(
+ TestTimeouts::action_max_timeout());
+
+ view_->InitAsChild(nullptr);
+ view_->Show();
+ sink_->ClearMessages();
+
+ // When the user puts their fingers down a GFC is receieved.
+ ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL, gfx::Point(2, 2),
+ ui::EventTimeForNow(), 0, 0, 0, 0, 0, 2);
+ view_->OnScrollEvent(&fling_cancel);
+
+ // Start touchpad scrolling by sending a ui::ET_SCROLL event.
+ ui::ScrollEvent scroll0(ui::ET_SCROLL, gfx::Point(2, 2),
+ ui::EventTimeForNow(), 0, 0, 5, 0, 5, 2);
+ view_->OnScrollEvent(&scroll0);
+ base::RunLoop().RunUntilIdle();
+ MockWidgetInputHandler::MessageVector events =
+ GetAndResetDispatchedMessages();
+
+ const WebMouseWheelEvent* wheel_event =
+ static_cast<const WebMouseWheelEvent*>(
+ events[0]->ToEvent()->Event()->web_event.get());
+ EXPECT_EQ("MouseWheel", GetMessageNames(events));
+ EXPECT_EQ(WebMouseWheelEvent::kPhaseBegan, wheel_event->phase);
+ events[0]->ToEvent()->CallCallback(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
+
+ // The mouse_wheel_phase_handler's timer won't be running during touchpad
+ // scroll.
+ EXPECT_FALSE(GetMouseWheelPhaseHandler()->HasPendingWheelEndEvent());
+
+ // ACK the GSB and GSU events generated from the first touchpad wheel event.
+ events = GetAndResetDispatchedMessages();
+ EXPECT_EQ("GestureScrollBegin GestureScrollUpdate", GetMessageNames(events));
+ const WebGestureEvent* gesture_event = static_cast<const WebGestureEvent*>(
+ events[0]->ToEvent()->Event()->web_event.get());
+ EXPECT_EQ(WebInputEvent::kGestureScrollBegin, gesture_event->GetType());
+ events[0]->ToEvent()->CallCallback(INPUT_EVENT_ACK_STATE_CONSUMED);
+ gesture_event = static_cast<const WebGestureEvent*>(
+ events[1]->ToEvent()->Event()->web_event.get());
+ EXPECT_EQ(WebInputEvent::kGestureScrollUpdate, gesture_event->GetType());
+ events[1]->ToEvent()->CallCallback(INPUT_EVENT_ACK_STATE_CONSUMED);
+
+ // Start mouse wheel scrolling by sending a ui::ET_MOUSEWHEEL event. This
+ // should end the touchpad scrolling sequence and start a new timer-based
+ // wheel scrolling sequence.
+ ui::MouseWheelEvent wheel(gfx::Vector2d(0, 5), gfx::Point(2, 2),
+ gfx::Point(2, 2), ui::EventTimeForNow(), 0, 0);
+ view_->OnMouseEvent(&wheel);
+ base::RunLoop().RunUntilIdle();
+ events = GetAndResetDispatchedMessages();
+ EXPECT_EQ("MouseWheel GestureScrollEnd MouseWheel", GetMessageNames(events));
+ EXPECT_TRUE(events[0]->ToEvent());
+ wheel_event = static_cast<const WebMouseWheelEvent*>(
+ events[0]->ToEvent()->Event()->web_event.get());
+ EXPECT_EQ(WebMouseWheelEvent::kPhaseEnded, wheel_event->phase);
+ EXPECT_TRUE(events[2]->ToEvent());
+ wheel_event = static_cast<const WebMouseWheelEvent*>(
+ events[2]->ToEvent()->Event()->web_event.get());
+ EXPECT_EQ(WebMouseWheelEvent::kPhaseBegan, wheel_event->phase);
+
+ // The mouse_wheel_phase_handler's timer will be running during mouse wheel
+ // scroll.
+ EXPECT_TRUE(GetMouseWheelPhaseHandler()->HasPendingWheelEndEvent());
+}
+
void RenderWidgetHostViewAuraTest::
GSBWithTouchSourceStopsWheelScrollSequence() {
// The test is valid only when wheel scroll latching is enabled.
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_base.h b/chromium/content/browser/renderer_host/render_widget_host_view_base.h
index 1a93d91aeff..8e391207a8a 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_base.h
@@ -382,6 +382,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
// Returns true if this view's size have been initialized.
virtual bool HasSize() const;
+ // Tells the view that the assocaited InterstitialPage will going away (but is
+ // not yet destroyed, as InterstitialPage destruction is asynchronous). The
+ // view may use this notification to clean up associated resources. This
+ // should be called before the WebContents is fully destroyed.
+ virtual void OnInterstitialPageGoingAway() {}
+
//----------------------------------------------------------------------------
// The following methods are related to IME.
// TODO(ekaramad): Most of the IME methods should not stay virtual after IME
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/chromium/content/browser/renderer_host/render_widget_host_view_child_frame.cc
index 0f78c03f686..c02239a7bc5 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -433,7 +433,13 @@ void RenderWidgetHostViewChildFrame::SetTooltipText(
if (!root_view)
return;
- root_view->GetCursorManager()->SetTooltipTextForView(this, tooltip_text);
+ auto* cursor_manager = root_view->GetCursorManager();
+ // If there's no CursorManager then we're on Android, and setting tooltips
+ // is a null-opt there, so it's ok to early out.
+ if (!cursor_manager)
+ return;
+
+ cursor_manager->SetTooltipTextForView(this, tooltip_text);
}
RenderWidgetHostViewBase* RenderWidgetHostViewChildFrame::GetParentView() {
diff --git a/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index e046d3a5e23..69c041eed92 100644
--- a/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -368,9 +368,14 @@ void RenderWidgetHostViewEventHandler::OnMouseEvent(ui::MouseEvent* event) {
if (mouse_wheel_event.delta_x != 0 || mouse_wheel_event.delta_y != 0) {
bool should_route_event = ShouldRouteEvent(event);
- if (host_view_->wheel_scroll_latching_enabled())
+ if (host_view_->wheel_scroll_latching_enabled()) {
+ // End the touchpad scrolling sequence (if such exists) before handling
+ // a ui::ET_MOUSEWHEEL event.
+ mouse_wheel_phase_handler_.SendWheelEndForTouchpadScrollingIfNeeded();
+
mouse_wheel_phase_handler_.AddPhaseIfNeededAndScheduleEndEvent(
mouse_wheel_event, should_route_event);
+ }
if (should_route_event) {
host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent(
host_view_, &mouse_wheel_event, *event->latency());
@@ -465,11 +470,11 @@ void RenderWidgetHostViewEventHandler::OnScrollEvent(ui::ScrollEvent* event) {
if (event->type() == ui::ET_SCROLL_FLING_START) {
RecordAction(base::UserMetricsAction("TrackpadScrollFling"));
// The user has lifted their fingers.
- mouse_wheel_phase_handler_.ResetScrollSequence();
+ mouse_wheel_phase_handler_.ResetTouchpadScrollSequence();
} else if (event->type() == ui::ET_SCROLL_FLING_CANCEL) {
// The user has put their fingers down.
DCHECK_EQ(blink::kWebGestureDeviceTouchpad, gesture_event.SourceDevice());
- mouse_wheel_phase_handler_.ScrollingMayBegin();
+ mouse_wheel_phase_handler_.TouchpadScrollingMayBegin();
}
}
@@ -568,7 +573,7 @@ void RenderWidgetHostViewEventHandler::OnGestureEvent(ui::GestureEvent* event) {
// wheel based send a synthetic wheel event with kPhaseEnded to cancel
// the current scroll.
mouse_wheel_phase_handler_.DispatchPendingWheelEndEvent();
- mouse_wheel_phase_handler_.SendWheelEndIfNeeded();
+ mouse_wheel_phase_handler_.SendWheelEndForTouchpadScrollingIfNeeded();
} else if (event->type() == ui::ET_SCROLL_FLING_START) {
RecordAction(base::UserMetricsAction("TouchscreenScrollFling"));
}
@@ -580,7 +585,7 @@ void RenderWidgetHostViewEventHandler::OnGestureEvent(ui::GestureEvent* event) {
// correct phase info when some of the wheel events get ignored while a
// touchscreen scroll is going on.
mouse_wheel_phase_handler_.IgnorePendingWheelEndEvent();
- mouse_wheel_phase_handler_.ResetScrollSequence();
+ mouse_wheel_phase_handler_.ResetTouchpadScrollSequence();
}
if (ShouldRouteEvent(event)) {
diff --git a/chromium/content/browser/site_per_process_browsertest.cc b/chromium/content/browser/site_per_process_browsertest.cc
index 9d72cdc7599..35f13184f84 100644
--- a/chromium/content/browser/site_per_process_browsertest.cc
+++ b/chromium/content/browser/site_per_process_browsertest.cc
@@ -1066,6 +1066,30 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
rwhv_nested->GetCompositorViewportPixelSize());
}
+// Verify an OOPIF resize handler doesn't fire immediately after load without
+// the frame having been resized. See https://crbug.com/826457.
+IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, NoResizeAfterIframeLoad) {
+ GURL main_url(embedded_test_server()->GetURL(
+ "a.com", "/cross_site_iframe_factory.html?a(a)"));
+ EXPECT_TRUE(NavigateToURL(shell(), main_url));
+ FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents())
+ ->GetFrameTree()
+ ->root();
+
+ FrameTreeNode* iframe = root->child_at(0);
+ GURL site_url =
+ embedded_test_server()->GetURL("b.com", "/page_with_resize_handler.html");
+ NavigateFrameToURL(iframe, site_url);
+
+ int resizes = -1;
+ EXPECT_TRUE(ExecuteScriptAndExtractInt(
+ iframe->current_frame_host(),
+ "window.domAutomationController.send(resize_count);", &resizes));
+
+ // Should be zero because the iframe only has its initial size from parent.
+ EXPECT_EQ(resizes, 0);
+}
+
// Test that the view bounds for an out-of-process iframe are set and updated
// correctly, including accounting for local frame offsets in the parent and
// scroll positions.
diff --git a/chromium/content/browser/web_contents/web_contents_android.cc b/chromium/content/browser/web_contents/web_contents_android.cc
index 775b21206ed..5ebf1918903 100644
--- a/chromium/content/browser/web_contents/web_contents_android.cc
+++ b/chromium/content/browser/web_contents/web_contents_android.cc
@@ -139,17 +139,26 @@ std::string CompressAndSaveBitmap(const std::string& dir,
base::AssertBlockingAllowed();
std::vector<unsigned char> data;
- if (!gfx::JPEGCodec::Encode(bitmap, 85, &data))
+ if (!gfx::JPEGCodec::Encode(bitmap, 85, &data)) {
+ LOG(ERROR) << "Failed to encode bitmap to JPEG";
return std::string();
+ }
base::FilePath screenshot_dir(dir);
if (!base::DirectoryExists(screenshot_dir)) {
- base::CreateDirectory(screenshot_dir);
+ if (!base::CreateDirectory(screenshot_dir)) {
+ LOG(ERROR) << "Failed to create screenshot directory";
+ return std::string();
+ }
}
base::FilePath screenshot_path;
base::ScopedFILE out_file(
base::CreateAndOpenTemporaryFileInDir(screenshot_dir, &screenshot_path));
+ if (!out_file) {
+ LOG(ERROR) << "Failed to create temporary screenshot file";
+ return std::string();
+ }
unsigned int bytes_written =
fwrite(reinterpret_cast<const char*>(data.data()), 1, data.size(),
out_file.get());
@@ -157,6 +166,7 @@ std::string CompressAndSaveBitmap(const std::string& dir,
// If there were errors, don't leave a partial file around.
if (bytes_written != data.size()) {
base::DeleteFile(screenshot_path, false);
+ LOG(ERROR) << "Error writing screenshot file to disk";
return std::string();
}
return screenshot_path.value();
diff --git a/chromium/content/common/swapped_out_messages.cc b/chromium/content/common/swapped_out_messages.cc
index 4ee30301d62..d7747d332a2 100644
--- a/chromium/content/common/swapped_out_messages.cc
+++ b/chromium/content/common/swapped_out_messages.cc
@@ -33,6 +33,8 @@ bool SwappedOutMessages::CanSendWhileSwappedOut(const IPC::Message* msg) {
case ViewHostMsg_RouteCloseEvent::ID:
// Send page scale factor reset notification upon cross-process navigations.
case ViewHostMsg_PageScaleFactorChanged::ID:
+ // Allow history.back() in OOPIFs - https://crbug.com/845923.
+ case ViewHostMsg_GoToEntryAtOffset::ID:
return true;
default:
break;
diff --git a/chromium/content/public/common/web_preferences.cc b/chromium/content/public/common/web_preferences.cc
index 53bc2c0a971..dcff5cef776 100644
--- a/chromium/content/public/common/web_preferences.cc
+++ b/chromium/content/public/common/web_preferences.cc
@@ -156,7 +156,9 @@ WebPreferences::WebPreferences()
shrinks_viewport_contents_to_fit(true),
viewport_style(ViewportStyle::MOBILE),
always_show_context_menu_on_touch(false),
- smooth_scroll_for_find_enabled(true),
+ // TODO(sunyunjia): Re-enable smooth scroll for find on Android.
+ // https://crbug.com/845500
+ smooth_scroll_for_find_enabled(false),
#else
viewport_meta_enabled(false),
shrinks_viewport_contents_to_fit(false),
diff --git a/chromium/content/renderer/loader/resource_dispatcher.cc b/chromium/content/renderer/loader/resource_dispatcher.cc
index 55c99a21928..8764f8e026f 100644
--- a/chromium/content/renderer/loader/resource_dispatcher.cc
+++ b/chromium/content/renderer/loader/resource_dispatcher.cc
@@ -16,6 +16,7 @@
#include "base/files/file_path.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram_macros.h"
+#include "base/rand_util.h"
#include "base/strings/string_util.h"
#include "base/synchronization/waitable_event.h"
#include "base/task_scheduler/post_task.h"
@@ -118,6 +119,21 @@ void NotifyResourceLoadComplete(
std::move(resource_load_info));
}
+int GetInitialRequestID() {
+ // Starting with a random number speculatively avoids RDH_INVALID_REQUEST_ID
+ // which are assumed to have been caused by restarting RequestID at 0 when
+ // restarting a renderer after a crash - this would cause collisions if
+ // requests from the previously crashed renderer are still active. See
+ // https://crbug.com/614281#c61 for more details about this hypothesis.
+ //
+ // To avoid increasing the likelyhood of overflowing the range of available
+ // RequestIDs, kMax is set to a relatively low value of 2^20 (rather than
+ // to something higher like 2^31).
+ const int kMin = 0;
+ const int kMax = 1 << 20;
+ return base::RandInt(kMin, kMax);
+}
+
} // namespace
// static
@@ -125,8 +141,9 @@ int ResourceDispatcher::MakeRequestID() {
// NOTE: The resource_dispatcher_host also needs probably unique
// request_ids, so they count down from -2 (-1 is a special "we're
// screwed value"), while the renderer process counts up.
+ static const int kInitialRequestID = GetInitialRequestID();
static base::AtomicSequenceNumber sequence;
- return sequence.GetNext(); // We start at zero.
+ return kInitialRequestID + sequence.GetNext();
}
ResourceDispatcher::ResourceDispatcher()
diff --git a/chromium/device/bluetooth/chromeos/bluetooth_utils.cc b/chromium/device/bluetooth/chromeos/bluetooth_utils.cc
index 605115b4082..71f45bf0644 100644
--- a/chromium/device/bluetooth/chromeos/bluetooth_utils.cc
+++ b/chromium/device/bluetooth/chromeos/bluetooth_utils.cc
@@ -8,6 +8,12 @@ namespace device {
namespace {
+// https://www.bluetooth.com/specifications/gatt/services.
+const char kHIDServiceUUID[] = "1812";
+
+// https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-sdos.
+const char kSecurityKeyServiceUUID[] = "FFFD";
+
// Get limited number of devices from |devices| and
// prioritize paired/connecting devices over other devices.
BluetoothAdapter::DeviceList GetLimitedNumDevices(
@@ -42,8 +48,29 @@ BluetoothAdapter::DeviceList FilterUnknownDevices(
const BluetoothAdapter::DeviceList& devices) {
BluetoothAdapter::DeviceList result;
for (BluetoothDevice* device : devices) {
- if (device->GetDeviceType() != device::BluetoothDeviceType::UNKNOWN)
- result.push_back(device);
+ switch (device->GetType()) {
+ // Device with invalid bluetooth transport is filtered out.
+ case BLUETOOTH_TRANSPORT_INVALID:
+ break;
+ // For LE devices, check the service UUID to determine if it supports HID
+ // or second factor authenticator (security key).
+ case BLUETOOTH_TRANSPORT_LE:
+ if (base::ContainsKey(device->GetUUIDs(),
+ device::BluetoothUUID(kHIDServiceUUID)) ||
+ base::ContainsKey(device->GetUUIDs(),
+ device::BluetoothUUID(kSecurityKeyServiceUUID))) {
+ result.push_back(device);
+ }
+ break;
+ // For classic and dual mode devices, only filter out if the name is empty
+ // because the device could have an unknown or even known type and still
+ // also provide audio/HID functionality.
+ case BLUETOOTH_TRANSPORT_CLASSIC:
+ case BLUETOOTH_TRANSPORT_DUAL:
+ if (device->GetName())
+ result.push_back(device);
+ break;
+ }
}
return result;
}
diff --git a/chromium/extensions/common/permissions/api_permission.h b/chromium/extensions/common/permissions/api_permission.h
index 88a581f0c5e..c3df7bd8c26 100644
--- a/chromium/extensions/common/permissions/api_permission.h
+++ b/chromium/extensions/common/permissions/api_permission.h
@@ -101,7 +101,6 @@ class APIPermission {
kEmbeddedExtensionOptions,
kEnterprisePlatformKeys,
kEnterprisePlatformKeysPrivate,
- kEnterpriseReportingPrivate,
kDeleted_ExperienceSamplingPrivate,
kExperimental,
kExtensionView,
@@ -252,6 +251,7 @@ class APIPermission {
kDeclarativeNetRequest,
kLockWindowFullscreenPrivate,
kWebrtcLoggingPrivateAudioDebug,
+ kEnterpriseReportingPrivate,
// Last entry: Add new entries above and ensure to update the
// "ExtensionPermission3" enum in tools/metrics/histograms/histograms.xml
// (by running update_extension_permission.py).
diff --git a/chromium/extensions/strings/extensions_strings_mr.xtb b/chromium/extensions/strings/extensions_strings_mr.xtb
index 50526d6d245..3085db89a42 100644
--- a/chromium/extensions/strings/extensions_strings_mr.xtb
+++ b/chromium/extensions/strings/extensions_strings_mr.xtb
@@ -9,7 +9,7 @@
<translation id="1468038450257740950">WebGL समर्थित नाही.</translation>
<translation id="149347756975725155">विस्तार प्रतीक '<ph name="ICON" />' लोड करणे शक्य नाही.</translation>
<translation id="1803557475693955505">'पार्श्वभूमी पृष्ठ '<ph name="BACKGROUND_PAGE" />' लोड करणे शक्य नाही.</translation>
-<translation id="2159915644201199628">प्रतिमा डीकोड करणे शक्य झाले नाही: '<ph name="IMAGE_NAME" />'</translation>
+<translation id="2159915644201199628">इमेज डीकोड करणे शक्य झाले नाही: '<ph name="IMAGE_NAME" />'</translation>
<translation id="2350172092385603347">भाषांतर वापरले, परंतु मॅनिफेस्टमध्ये डीफॉल्ट_लोकॅल निर्दिष्ट नाही.</translation>
<translation id="2576842806987913196">या नावाने आधीपासूनच CRX फाइल उपस्थित आहे.</translation>
<translation id="2753617847762399167">बेकायदेशीर पथ ('..' सह अचूक किंवा संबंधित): '<ph name="IMAGE_PATH" />'</translation>
diff --git a/chromium/extensions/strings/extensions_strings_nl.xtb b/chromium/extensions/strings/extensions_strings_nl.xtb
index d6a7189002e..cf20660382b 100644
--- a/chromium/extensions/strings/extensions_strings_nl.xtb
+++ b/chromium/extensions/strings/extensions_strings_nl.xtb
@@ -21,7 +21,7 @@
<translation id="3144135466825225871">Vervangen van crx-bestand is mislukt. Controleer of het bestand wordt gebruikt.</translation>
<translation id="3163201441334626963">Onbekend product <ph name="PRODUCT_ID" /> van leverancier <ph name="VENDOR_ID" /></translation>
<translation id="3302709122321372472">Kan CSS '<ph name="RELATIVE_PATH" />' niet laden voor het inhoudsscript.</translation>
-<translation id="3369521687965833290">Kan extensie niet uitpakken. Om een extensie veilig te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat begint met een stationletter en geen koppeling, koppelpunt of symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
+<translation id="3369521687965833290">Kan extensie niet uitpakken. Om een extensie beveiligd te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat begint met een stationletter en geen koppeling, koppelpunt of symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
<translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
<translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> van leverancier <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
<translation id="3561217442734750519">Invoerwaarde voor persoonlijke sleutel moet een geldig pad zijn.</translation>
@@ -44,7 +44,7 @@
<translation id="5972529113578162692">De beheerder van deze machine vereist dat <ph name="EXTENSION_NAME" /> wordt geïnstalleerd. Deze kan niet worden verwijderd.</translation>
<translation id="6027032947578871493">Onbekend product <ph name="PRODUCT_ID" /> van <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
<translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> van leverancier <ph name="VENDOR_ID" /></translation>
-<translation id="6143635259298204954">Kan extensie niet uitpakken. Om een extensie veilig te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat geen symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
+<translation id="6143635259298204954">Kan extensie niet uitpakken. Om een extensie beveiligd te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat geen symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
<translation id="6322279351188361895">Lezen van persoonlijke sleutel is mislukt.</translation>
<translation id="6391538222494443604">Er moet een invoerdirectory zijn.</translation>
<translation id="641087317769093025">Kan extensie niet uitpakken</translation>
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc b/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 1f86d22f500..b1976ea7d0d 100644
--- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -14753,7 +14753,10 @@ void GLES2DecoderImpl::DoCopyTexImage2D(
}
if (src.x() != x || src.y() != y ||
- src.width() != width || src.height() != height) {
+ src.width() != width || src.height() != height ||
+ final_internal_format == GL_BGRA_EXT) {
+ // GL_BGRA_EXT is not allowed as internalformat for glCopyTexImage2D,
+ // which is a bit of a quirk in the spec, but this path works.
{
// Add extra scope to destroy zero and the object it owns right
// after its usage.
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
index 5aa853b9f1f..54971241efb 100644
--- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
+++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
@@ -1516,6 +1516,44 @@ void GLES2DecoderTestBase::DoTexImage3D(GLenum target,
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
+void GLES2DecoderTestBase::DoCopyTexImage2D(
+ GLenum target,
+ GLint level,
+ GLenum internal_format,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border) {
+ // For GL_BGRA_EXT, we have to fall back to TexImage2D and
+ // CopyTexSubImage2D, since GL_BGRA_EXT is not accepted by CopyTexImage2D.
+ // In some cases this fallback further triggers set and restore of
+ // GL_UNPACK_ALIGNMENT.
+ if (internal_format == GL_BGRA_EXT) {
+ EXPECT_CALL(*gl_, PixelStorei(GL_UNPACK_ALIGNMENT, _))
+ .Times(2)
+ .RetiresOnSaturation();
+
+ EXPECT_CALL(*gl_, TexImage2D(target, level, internal_format,
+ width, height, border,
+ internal_format, GL_UNSIGNED_BYTE, _))
+ .Times(1)
+ .RetiresOnSaturation();
+ EXPECT_CALL(*gl_, CopyTexSubImage2D(target, level, 0, 0, 0, 0,
+ width, height))
+ .Times(1)
+ .RetiresOnSaturation();
+ } else {
+ EXPECT_CALL(*gl_, CopyTexImage2D(target, level, internal_format, 0, 0,
+ width, height, border))
+ .Times(1)
+ .RetiresOnSaturation();
+ }
+ cmds::CopyTexImage2D cmd;
+ cmd.Init(target, level, internal_format, 0, 0, width, height);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+}
+
void GLES2DecoderTestBase::DoRenderbufferStorage(
GLenum target, GLenum internal_format, GLenum actual_format,
GLsizei width, GLsizei height, GLenum error) {
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
index bcc64f7a0dc..98622b5a2a2 100644
--- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
+++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
@@ -366,6 +366,14 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam<bool>,
GLenum type,
uint32_t shared_memory_id,
uint32_t shared_memory_offset);
+ void DoCopyTexImage2D(GLenum target,
+ GLint level,
+ GLenum internal_format,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border);
void DoRenderbufferStorage(
GLenum target, GLenum internal_format, GLenum actual_format,
GLsizei width, GLsizei height, GLenum error);
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
index 9aa5db650a6..64beb12d588 100644
--- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
+++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
@@ -699,13 +699,7 @@ TEST_P(GLES2DecoderManualInitTest, CopyTexImage2DUnsizedInternalFormat) {
DoBindFramebuffer(GL_FRAMEBUFFER, 0, 0);
GLenum internal_format = kUnsizedInternalFormats[i];
DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
- EXPECT_CALL(*gl_, CopyTexImage2D(target, level, internal_format, 0, 0,
- width, height, border))
- .Times(1)
- .RetiresOnSaturation();
- CopyTexImage2D cmd;
- cmd.Init(target, level, internal_format, 0, 0, width, height);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ DoCopyTexImage2D(target, level, internal_format, 0, 0, width, height, border);
EXPECT_EQ(GL_NO_ERROR, GetGLError());
TextureRef* ref = manager->GetTexture(client_texture_id_);
@@ -732,16 +726,13 @@ TEST_P(GLES2DecoderManualInitTest, CopyTexImage2DUnsizedInternalFormat) {
bool complete =
(DoCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
if (complete) {
- EXPECT_CALL(*gl_, CopyTexImage2D(target, level, internal_format, 0, 0,
- width, height, border))
- .Times(1)
- .RetiresOnSaturation();
- }
- cmd.Init(target, level, internal_format, 0, 0, width, height);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- if (complete) {
+ DoCopyTexImage2D(target, level, internal_format,
+ 0, 0, width, height, border);
EXPECT_EQ(GL_NO_ERROR, GetGLError());
} else {
+ CopyTexImage2D cmd;
+ cmd.Init(target, level, internal_format, 0, 0, width, height);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_FRAMEBUFFER_OPERATION, GetGLError());
}
}
@@ -789,13 +780,8 @@ TEST_P(GLES2DecoderManualInitTest, CopyTexImage2DUnsizedInternalFormatES3) {
DoBindFramebuffer(GL_FRAMEBUFFER, 0, 0);
GLenum internal_format = kUnsizedInternalFormats[i].unsized;
DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
- EXPECT_CALL(*gl_, CopyTexImage2D(target, level, internal_format, 0, 0,
- width, height, border))
- .Times(1)
- .RetiresOnSaturation();
- CopyTexImage2D cmd;
- cmd.Init(target, level, internal_format, 0, 0, width, height);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ DoCopyTexImage2D(target, level, internal_format,
+ 0, 0, width, height, border);
EXPECT_EQ(GL_NO_ERROR, GetGLError());
TextureRef* ref = manager->GetTexture(client_texture_id_);
@@ -827,16 +813,13 @@ TEST_P(GLES2DecoderManualInitTest, CopyTexImage2DUnsizedInternalFormatES3) {
bool complete =
(DoCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
if (complete) {
- EXPECT_CALL(*gl_, CopyTexImage2D(target, level, internal_format, 0, 0,
- width, height, border))
- .Times(1)
- .RetiresOnSaturation();
- }
- cmd.Init(target, level, internal_format, 0, 0, width, height);
- EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
- if (complete) {
+ DoCopyTexImage2D(target, level, internal_format,
+ 0, 0, width, height, border);
EXPECT_EQ(GL_NO_ERROR, GetGLError());
} else {
+ CopyTexImage2D cmd;
+ cmd.Init(target, level, internal_format, 0, 0, width, height);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_FRAMEBUFFER_OPERATION, GetGLError());
}
}
diff --git a/chromium/gpu/config/gpu_driver_bug_list.json b/chromium/gpu/config/gpu_driver_bug_list.json
index caa620e5c8a..1d3404c5dcc 100644
--- a/chromium/gpu/config/gpu_driver_bug_list.json
+++ b/chromium/gpu/config/gpu_driver_bug_list.json
@@ -2913,6 +2913,17 @@
"features": [
"disable_chromium_framebuffer_multisample"
]
+ },
+ {
+ "id": 268,
+ "cr_bugs": [797243],
+ "description": "Limit MSAA to 4x on Android devices",
+ "os": {
+ "type": "android"
+ },
+ "features": [
+ "max_msaa_sample_count_4"
+ ]
}
]
}
diff --git a/chromium/gpu/config/gpu_lists_version.h b/chromium/gpu/config/gpu_lists_version.h
index f9096988d8f..577183e3bdc 100644
--- a/chromium/gpu/config/gpu_lists_version.h
+++ b/chromium/gpu/config/gpu_lists_version.h
@@ -3,6 +3,6 @@
#ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_
#define GPU_CONFIG_GPU_LISTS_VERSION_H_
-#define GPU_LISTS_VERSION "581e0c8eab20845b933a4462b3efa166070cead6"
+#define GPU_LISTS_VERSION "fd2b388b0c400380d05c8f318cefcd040914c515"
#endif // GPU_CONFIG_GPU_LISTS_VERSION_H_
diff --git a/chromium/media/gpu/android/surface_texture_gl_owner.cc b/chromium/media/gpu/android/surface_texture_gl_owner.cc
index f4b4d5be5d5..067fe429c71 100644
--- a/chromium/media/gpu/android/surface_texture_gl_owner.cc
+++ b/chromium/media/gpu/android/surface_texture_gl_owner.cc
@@ -73,11 +73,20 @@ SurfaceTextureGLOwnerImpl::~SurfaceTextureGLOwnerImpl() {
// Make sure that the SurfaceTexture isn't using the GL objects.
surface_texture_ = nullptr;
- ui::ScopedMakeCurrent scoped_make_current(context_.get(), surface_.get());
- if (scoped_make_current.Succeeded()) {
- glDeleteTextures(1, &texture_id_);
- DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
+ std::unique_ptr<ui::ScopedMakeCurrent> scoped_make_current;
+
+ // If the context is current, skip ScopedMakeCurrent to prevent (a) a
+ // potentially heavyweight virtual context switch and (b) a potential crash
+ // during stub destruction (https://crbug.com/839605).
+ if (!context_->IsCurrent(nullptr)) {
+ scoped_make_current =
+ std::make_unique<ui::ScopedMakeCurrent>(context_.get(), surface_.get());
+ if (!scoped_make_current->Succeeded())
+ return;
}
+
+ glDeleteTextures(1, &texture_id_);
+ DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
}
GLuint SurfaceTextureGLOwnerImpl::GetTextureId() const {
diff --git a/chromium/net/data/ssl/certificate_transparency/log_list.json b/chromium/net/data/ssl/certificate_transparency/log_list.json
index 2a4204bebf2..9cf4692e70c 100644
--- a/chromium/net/data/ssl/certificate_transparency/log_list.json
+++ b/chromium/net/data/ssl/certificate_transparency/log_list.json
@@ -157,6 +157,56 @@
"dns_api_endpoint": "digicert2.ct.googleapis.com"
},
{
+ "description": "DigiCert Yeti2018 Log",
+ "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESYlKFDLLFmA9JScaiaNnqlU8oWDytxIYMfswHy9Esg0aiX+WnP/yj4O0ViEHtLwbmOQeSWBGkIu9YK9CLeer+g==",
+ "url": "yeti2018.ct.digicert.com/log/",
+ "maximum_merge_delay": 86400,
+ "operated_by": [
+ 2
+ ],
+ "dns_api_endpoint": "digicert-yeti2018.ct.googleapis.com"
+ },
+ {
+ "description": "DigiCert Yeti2019 Log",
+ "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkZd/ow8X+FSVWAVSf8xzkFohcPph/x6pS1JHh7g1wnCZ5y/8Hk6jzJxs6t3YMAWz2CPd4VkCdxwKexGhcFxD9A==",
+ "url": "yeti2019.ct.digicert.com/log/",
+ "maximum_merge_delay": 86400,
+ "operated_by": [
+ 2
+ ],
+ "dns_api_endpoint": "digicert-yeti2019.ct.googleapis.com"
+ },
+ {
+ "description": "DigiCert Yeti2020 Log",
+ "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEURAG+Zo0ac3n37ifZKUhBFEV6jfcCzGIRz3tsq8Ca9BP/5XUHy6ZiqsPaAEbVM0uI3Tm9U24RVBHR9JxDElPmg==",
+ "url": "yeti2020.ct.digicert.com/log/",
+ "maximum_merge_delay": 86400,
+ "operated_by": [
+ 2
+ ],
+ "dns_api_endpoint": "digicert-yeti2020.ct.googleapis.com"
+ },
+ {
+ "description": "DigiCert Yeti2021 Log",
+ "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6J4EbcpIAl1+AkSRsbhoY5oRTj3VoFfaf1DlQkfi7Rbe/HcjfVtrwN8jaC+tQDGjF+dqvKhWJAQ6Q6ev6q9Mew==",
+ "url": "yeti2021.ct.digicert.com/log/",
+ "maximum_merge_delay": 86400,
+ "operated_by": [
+ 2
+ ],
+ "dns_api_endpoint": "digicert-yeti2021.ct.googleapis.com"
+ },
+ {
+ "description": "DigiCert Yeti2022 Log",
+ "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn/jYHd77W1G1+131td5mEbCdX/1v/KiYW5hPLcOROvv+xA8Nw2BDjB7y+RGyutD2vKXStp/5XIeiffzUfdYTJg==",
+ "url": "yeti2022.ct.digicert.com/log/",
+ "maximum_merge_delay": 86400,
+ "operated_by": [
+ 2
+ ],
+ "dns_api_endpoint": "digicert-yeti2022.ct.googleapis.com"
+ },
+ {
"description": "Symantec log",
"key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEluqsHEYMG1XcDfy1lCdGV0JwOmkY4r87xNuroPS2bMBTP01CEDPwWJePa75y9CrsHEKqAy8afig1dpkIPSEUhg==",
"url": "ct.ws.symantec.com/",
@@ -324,4 +374,4 @@
"id": 9
}
]
-}
+} \ No newline at end of file
diff --git a/chromium/net/proxy_resolution/proxy_config_service_linux.cc b/chromium/net/proxy_resolution/proxy_config_service_linux.cc
index 90ed262b768..69890cf3a96 100644
--- a/chromium/net/proxy_resolution/proxy_config_service_linux.cc
+++ b/chromium/net/proxy_resolution/proxy_config_service_linux.cc
@@ -19,6 +19,7 @@
#include "base/files/scoped_file.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/nix/xdg_util.h"
#include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
@@ -1161,18 +1162,23 @@ ProxyConfigServiceLinux::Delegate::GetConfigFromSettings() {
return ProxyConfigWithAnnotation(
config, NetworkTrafficAnnotationTag(traffic_annotation_));
- ;
}
-ProxyConfigServiceLinux::Delegate::Delegate()
- : env_var_getter_(base::Environment::Create()) {}
-
ProxyConfigServiceLinux::Delegate::Delegate(
std::unique_ptr<base::Environment> env_var_getter,
- const NetworkTrafficAnnotationTag& traffic_annotation)
- : env_var_getter_(std::move(env_var_getter)),
- traffic_annotation_(
- MutableNetworkTrafficAnnotationTag(traffic_annotation)) {
+ base::Optional<std::unique_ptr<SettingGetter>> setting_getter,
+ base::Optional<NetworkTrafficAnnotationTag> traffic_annotation)
+ : env_var_getter_(std::move(env_var_getter)) {
+ if (traffic_annotation) {
+ traffic_annotation_ =
+ MutableNetworkTrafficAnnotationTag(traffic_annotation.value());
+ }
+
+ if (setting_getter) {
+ setting_getter_ = std::move(setting_getter.value());
+ return;
+ }
+
// Figure out which SettingGetterImpl to use, if any.
switch (base::nix::GetDesktopEnvironment(env_var_getter_.get())) {
case base::nix::DESKTOP_ENVIRONMENT_CINNAMON:
@@ -1201,15 +1207,6 @@ ProxyConfigServiceLinux::Delegate::Delegate(
}
}
-ProxyConfigServiceLinux::Delegate::Delegate(
- std::unique_ptr<base::Environment> env_var_getter,
- SettingGetter* setting_getter,
- const NetworkTrafficAnnotationTag& traffic_annotation)
- : env_var_getter_(std::move(env_var_getter)),
- setting_getter_(setting_getter),
- traffic_annotation_(
- MutableNetworkTrafficAnnotationTag(traffic_annotation)) {}
-
void ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig(
const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
const scoped_refptr<base::SequencedTaskRunner>& main_task_runner,
@@ -1339,7 +1336,8 @@ void ProxyConfigServiceLinux::Delegate::OnCheckProxyConfigSettings() {
// See if it is different from what we had before.
if (new_config.has_value() != reference_config_.has_value() ||
- !new_config->value().Equals(reference_config_->value())) {
+ (new_config.has_value() &&
+ !new_config->value().Equals(reference_config_->value()))) {
// Post a task to the main TaskRunner with the new configuration, so it can
// update |cached_config_|.
main_task_runner_->PostTask(
@@ -1389,7 +1387,9 @@ void ProxyConfigServiceLinux::Delegate::OnDestroy() {
}
ProxyConfigServiceLinux::ProxyConfigServiceLinux()
- : delegate_(new Delegate()) {}
+ : delegate_(new Delegate(base::Environment::Create(),
+ base::nullopt,
+ base::nullopt)) {}
ProxyConfigServiceLinux::~ProxyConfigServiceLinux() {
delegate_->PostDestroyTask();
@@ -1398,14 +1398,16 @@ ProxyConfigServiceLinux::~ProxyConfigServiceLinux() {
ProxyConfigServiceLinux::ProxyConfigServiceLinux(
std::unique_ptr<base::Environment> env_var_getter,
const NetworkTrafficAnnotationTag& traffic_annotation)
- : delegate_(new Delegate(std::move(env_var_getter), traffic_annotation)) {}
+ : delegate_(new Delegate(std::move(env_var_getter),
+ base::nullopt,
+ traffic_annotation)) {}
ProxyConfigServiceLinux::ProxyConfigServiceLinux(
std::unique_ptr<base::Environment> env_var_getter,
SettingGetter* setting_getter,
const NetworkTrafficAnnotationTag& traffic_annotation)
: delegate_(new Delegate(std::move(env_var_getter),
- setting_getter,
+ base::WrapUnique(setting_getter),
traffic_annotation)) {}
void ProxyConfigServiceLinux::AddObserver(Observer* observer) {
diff --git a/chromium/net/proxy_resolution/proxy_config_service_linux.h b/chromium/net/proxy_resolution/proxy_config_service_linux.h
index c853d1a4f6d..7abf2b167d1 100644
--- a/chromium/net/proxy_resolution/proxy_config_service_linux.h
+++ b/chromium/net/proxy_resolution/proxy_config_service_linux.h
@@ -167,17 +167,11 @@ class NET_EXPORT_PRIVATE ProxyConfigServiceLinux : public ProxyConfigService {
class Delegate : public base::RefCountedThreadSafe<Delegate> {
public:
- // Sets the |env_var_getter| to empty.
- Delegate();
-
- // Normal constructor.
- explicit Delegate(std::unique_ptr<base::Environment> env_var_getter,
- const NetworkTrafficAnnotationTag& traffic_annotation);
-
- // Constructor for testing.
+ // Test code can set |setting_getter| and |traffic_annotation|. If left
+ // unspecified, reasonable defaults will be used.
Delegate(std::unique_ptr<base::Environment> env_var_getter,
- SettingGetter* setting_getter,
- const NetworkTrafficAnnotationTag& traffic_annotation);
+ base::Optional<std::unique_ptr<SettingGetter>> setting_getter,
+ base::Optional<NetworkTrafficAnnotationTag> traffic_annotation);
// Synchronously obtains the proxy configuration. If gconf,
// gsettings, or kioslaverc are used, also enables notifications for
@@ -292,7 +286,7 @@ class NET_EXPORT_PRIVATE ProxyConfigServiceLinux : public ProxyConfigService {
const NetworkTrafficAnnotationTag& traffic_annotation);
ProxyConfigServiceLinux(
std::unique_ptr<base::Environment> env_var_getter,
- SettingGetter* setting_getter,
+ SettingGetter* setting_getter, // TODO(eroman): Use std::unique_ptr.
const NetworkTrafficAnnotationTag& traffic_annotation);
~ProxyConfigServiceLinux() override;
diff --git a/chromium/net/proxy_resolution/proxy_config_service_linux_unittest.cc b/chromium/net/proxy_resolution/proxy_config_service_linux_unittest.cc
index 14d06c8acb0..4772d071f6b 100644
--- a/chromium/net/proxy_resolution/proxy_config_service_linux_unittest.cc
+++ b/chromium/net/proxy_resolution/proxy_config_service_linux_unittest.cc
@@ -1120,6 +1120,20 @@ TEST_F(ProxyConfigServiceLinuxTest, GSettingsNotification) {
EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
sync_config_getter.SyncGetLatestProxyConfig(&config));
EXPECT_TRUE(config.value().auto_detect());
+
+ // Simulate two settings changes, where PROXY_MODE is missing. This will make
+ // the settings be interpreted as DIRECT.
+ //
+ // Trigering the check a *second* time is a regression test for
+ // https://crbug.com/848237, where a comparison is done between two nullopts.
+ for (size_t i = 0; i < 2; ++i) {
+ setting_getter->values.mode = nullptr;
+ service->OnCheckProxyConfigSettings();
+ EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
+ sync_config_getter.SyncGetLatestProxyConfig(&config));
+ EXPECT_FALSE(config.value().auto_detect());
+ EXPECT_TRUE(config.value().proxy_rules().empty());
+ }
}
TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) {
diff --git a/chromium/net/websockets/websocket_stream.cc b/chromium/net/websockets/websocket_stream.cc
index ad98c833eed..899922a35e5 100644
--- a/chromium/net/websockets/websocket_stream.cc
+++ b/chromium/net/websockets/websocket_stream.cc
@@ -159,6 +159,12 @@ class WebSocketStreamRequestImpl : public WebSocketStreamRequest {
}
void PerformUpgrade() {
+ // Fail gracefully instead of crashing. TODO(bnc): Investigate and fix.
+ if (!handshake_stream_ || !connect_delegate_) {
+ ReportFailure(ERR_NOT_IMPLEMENTED);
+ return;
+ }
+
DCHECK(timer_);
DCHECK(handshake_stream_);
diff --git a/chromium/printing/print_settings_initializer_win.cc b/chromium/printing/print_settings_initializer_win.cc
index fd243fe6109..88b4eb0be14 100644
--- a/chromium/printing/print_settings_initializer_win.cc
+++ b/chromium/printing/print_settings_initializer_win.cc
@@ -6,6 +6,7 @@
#include <windows.h>
+#include "printing/backend/win_helper.h"
#include "printing/print_settings.h"
namespace printing {
@@ -142,6 +143,8 @@ void PrintSettingsInitializerWin::InitPrintSettings(
printable_area_device_units,
false);
+ print_settings->set_color(IsDevModeWithColor(&dev_mode) ? COLOR : GRAY);
+
// Check for postscript first so that we can change the mode with the
// first command.
int level;
diff --git a/chromium/printing/printing_context_win_unittest.cc b/chromium/printing/printing_context_win_unittest.cc
index 0763474b714..00e9ada9880 100644
--- a/chromium/printing/printing_context_win_unittest.cc
+++ b/chromium/printing/printing_context_win_unittest.cc
@@ -142,20 +142,35 @@ class MockPrintingContextWin : public PrintingContextSystemDialogWin {
};
TEST_F(PrintingContextTest, PrintAll) {
- base::MessageLoop message_loop;
if (IsTestCaseDisabled())
return;
+ base::MessageLoop message_loop;
MockPrintingContextWin context(this);
context.AskUserForSettings(
123, false, false,
base::BindOnce(&PrintingContextTest::PrintSettingsCallback,
base::Unretained(this)));
EXPECT_EQ(PrintingContext::OK, result());
- PrintSettings settings = context.settings();
+ const PrintSettings& settings = context.settings();
EXPECT_EQ(0u, settings.ranges().size());
}
+TEST_F(PrintingContextTest, Color) {
+ if (IsTestCaseDisabled())
+ return;
+
+ base::MessageLoop message_loop;
+ MockPrintingContextWin context(this);
+ context.AskUserForSettings(
+ 123, false, false,
+ base::BindOnce(&PrintingContextTest::PrintSettingsCallback,
+ base::Unretained(this)));
+ EXPECT_EQ(PrintingContext::OK, result());
+ const PrintSettings& settings = context.settings();
+ EXPECT_NE(settings.color(), UNKNOWN_COLOR_MODEL);
+}
+
TEST_F(PrintingContextTest, Base) {
if (IsTestCaseDisabled())
return;
diff --git a/chromium/skia/ext/skia_commit_hash.h b/chromium/skia/ext/skia_commit_hash.h
index 1d9b4a54faa..dfced70bc49 100644
--- a/chromium/skia/ext/skia_commit_hash.h
+++ b/chromium/skia/ext/skia_commit_hash.h
@@ -3,6 +3,6 @@
#ifndef SKIA_EXT_SKIA_COMMIT_HASH_H_
#define SKIA_EXT_SKIA_COMMIT_HASH_H_
-#define SKIA_COMMIT_HASH "c097162d82fe7b13b349ed33bc17f1d2bafa7e82-"
+#define SKIA_COMMIT_HASH "78b60f4ff13b83da98ae2bca85aaef0a98b61098-"
#endif // SKIA_EXT_SKIA_COMMIT_HASH_H_
diff --git a/chromium/third_party/android_crazy_linker/BUILD.gn b/chromium/third_party/android_crazy_linker/BUILD.gn
index c3e72769afe..76c361e9c6e 100644
--- a/chromium/third_party/android_crazy_linker/BUILD.gn
+++ b/chromium/third_party/android_crazy_linker/BUILD.gn
@@ -21,6 +21,7 @@ group("android_crazy_linker_tests") {
":crazy_linker_bench_load_library",
":crazy_linker_test_constructors_destructors",
":crazy_linker_test_dl_wrappers",
+ ":crazy_linker_test_dl_wrappers_recursive",
":crazy_linker_test_dl_wrappers_valid_handles",
":crazy_linker_test_dl_wrappers_with_system_handle",
":crazy_linker_test_load_library",
@@ -84,6 +85,8 @@ template("crazy_linker_library") {
"src/src/crazy_linker_shared_library.h",
"src/src/crazy_linker_system.cpp",
"src/src/crazy_linker_system.h",
+ "src/src/crazy_linker_system_linker.cpp",
+ "src/src/crazy_linker_system_linker.h",
"src/src/crazy_linker_thread.cpp",
"src/src/crazy_linker_thread.h",
"src/src/crazy_linker_util.cpp",
@@ -176,6 +179,9 @@ template("crazy_linker_test_library") {
if (defined(invoker.libs)) {
libs += invoker.libs
}
+ if (defined(invoker.defines)) {
+ defines = invoker.defines
+ }
# This is not Chromium code.
configs -= [ "//build/config/compiler:chromium_code" ]
@@ -257,6 +263,35 @@ crazy_linker_test_library("crazy_linker_tests_libzoo_with_dlopen_handle") {
libs = [ "dl" ]
}
+crazy_linker_test_library("crazy_linker_tests_libzoo_dlopen_in_initializer") {
+ sources = [
+ "src/tests/zoo_with_dlopen_in_elf_initializer.cpp",
+ ]
+ defines = [
+ "THIS_LIB_NAME=\"libzoo_dlopen_in_initializer\"",
+ "LIB_NAME=\"libcrazy_linker_tests_libzoo_dlopen_in_initializer_inner.so\"",
+ ]
+ data_deps = [
+ ":crazy_linker_tests_libzoo_dlopen_in_initializer_inner",
+ ]
+ libs = [ "dl" ]
+}
+
+crazy_linker_test_library(
+ "crazy_linker_tests_libzoo_dlopen_in_initializer_inner") {
+ sources = [
+ "src/tests/zoo_with_dlopen_in_elf_initializer.cpp",
+ ]
+ defines = [
+ "THIS_LIB_NAME=\"libzoo_dlopen_in_initializer_inner\"",
+ "LIB_NAME=\"libcrazy_linker_tests_libzoo.so\"",
+ ]
+ data_deps = [
+ ":crazy_linker_tests_libzoo",
+ ]
+ libs = [ "dl" ]
+}
+
# Integration tests are provided as standalone executables for now.
executable("crazy_linker_bench_load_library") {
@@ -331,6 +366,18 @@ executable("crazy_linker_test_dl_wrappers") {
]
}
+executable("crazy_linker_test_dl_wrappers_recursive") {
+ sources = [
+ "src/tests/test_dl_wrappers_recursive.cpp",
+ ]
+ data_deps = [
+ ":crazy_linker_tests_libzoo_dlopen_in_initializer",
+ ]
+ deps = [
+ ":android_crazy_linker",
+ ]
+}
+
executable("crazy_linker_test_dl_wrappers_with_system_handle") {
sources = [
"src/tests/test_dl_wrappers_with_system_handle.cpp",
diff --git a/chromium/third_party/angle/src/libANGLE/params.cpp b/chromium/third_party/angle/src/libANGLE/params.cpp
index a3e52c7c84a..a77435c4a42 100644
--- a/chromium/third_party/angle/src/libANGLE/params.cpp
+++ b/chromium/third_party/angle/src/libANGLE/params.cpp
@@ -100,7 +100,7 @@ GLint DrawCallParams::firstVertex() const
return mFirstVertex;
}
-GLsizei DrawCallParams::vertexCount() const
+size_t DrawCallParams::vertexCount() const
{
ASSERT(!isDrawElements() || mIndexRange.valid());
return mVertexCount;
@@ -179,7 +179,7 @@ Error DrawCallParams::ensureIndexRangeResolved(const Context *context) const
const IndexRange &indexRange = mIndexRange.value();
mFirstVertex = mBaseVertex + static_cast<GLint>(indexRange.start);
- mVertexCount = static_cast<GLsizei>(indexRange.vertexCount());
+ mVertexCount = indexRange.vertexCount();
return NoError();
}
diff --git a/chromium/third_party/angle/src/libANGLE/params.h b/chromium/third_party/angle/src/libANGLE/params.h
index 05443206fdf..3fa023e540d 100644
--- a/chromium/third_party/angle/src/libANGLE/params.h
+++ b/chromium/third_party/angle/src/libANGLE/params.h
@@ -98,7 +98,7 @@ class DrawCallParams final : angle::NonCopyable
// This value is the sum of 'baseVertex' and the first indexed vertex for DrawElements calls.
GLint firstVertex() const;
- GLsizei vertexCount() const;
+ size_t vertexCount() const;
GLsizei indexCount() const;
GLint baseVertex() const;
GLenum type() const;
@@ -113,6 +113,9 @@ class DrawCallParams final : angle::NonCopyable
// ensureIndexRangeResolved must be called first.
const IndexRange &getIndexRange() const;
+ template <typename T>
+ T getClampedVertexCount() const;
+
template <EntryPoint EP, typename... ArgsT>
static void Factory(DrawCallParams *objBuffer, ArgsT... args);
@@ -122,7 +125,7 @@ class DrawCallParams final : angle::NonCopyable
GLenum mMode;
mutable Optional<IndexRange> mIndexRange;
mutable GLint mFirstVertex;
- mutable GLsizei mVertexCount;
+ mutable size_t mVertexCount;
GLint mIndexCount;
GLint mBaseVertex;
GLenum mType;
@@ -131,6 +134,13 @@ class DrawCallParams final : angle::NonCopyable
const void *mIndirect;
};
+template <typename T>
+T DrawCallParams::getClampedVertexCount() const
+{
+ constexpr size_t kMax = static_cast<size_t>(std::numeric_limits<T>::max());
+ return static_cast<T>(mVertexCount > kMax ? kMax : mVertexCount);
+}
+
// Entry point funcs essentially re-map different entry point parameter arrays into
// the format the parameter type class expects. For example, for HasIndexRange, for the
// various indexed draw calls, they drop parameters that aren't useful and re-arrange
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp
index 7769ab2b75e..3df7e4fcf86 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp
@@ -160,10 +160,11 @@ void BufferD3D::invalidateStaticData(const gl::Context *context)
}
// Creates static buffers if sufficient used data has been left unmodified
-void BufferD3D::promoteStaticUsage(const gl::Context *context, int dataSize)
+void BufferD3D::promoteStaticUsage(const gl::Context *context, size_t dataSize)
{
if (mUsage == D3DBufferUsage::DYNAMIC)
{
+ // Note: This is not a safe math operation. 'dataSize' can come from the app.
mUnmodifiedDataUse += dataSize;
if (mUnmodifiedDataUse > 3 * getSize())
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h
index 60153748e68..2f0ff48e06c 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h
@@ -55,7 +55,7 @@ class BufferD3D : public BufferImpl
virtual void initializeStaticData(const gl::Context *context);
virtual void invalidateStaticData(const gl::Context *context);
- void promoteStaticUsage(const gl::Context *context, int dataSize);
+ void promoteStaticUsage(const gl::Context *context, size_t dataSize);
gl::Error getIndexRange(const gl::Context *context,
GLenum type,
@@ -80,7 +80,7 @@ class BufferD3D : public BufferImpl
StaticIndexBufferInterface *mStaticIndexBuffer;
unsigned int mStaticBufferCacheTotalSize;
unsigned int mStaticVertexBufferOutOfDate;
- unsigned int mUnmodifiedDataUse;
+ size_t mUnmodifiedDataUse;
D3DBufferUsage mUsage;
};
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h
index 8428bed09cd..9cf3a8ed6db 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h
@@ -92,7 +92,7 @@ class BufferFactoryD3D : angle::NonCopyable
virtual gl::ErrorOrResult<unsigned int> getVertexSpaceRequired(
const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const = 0;
};
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp
index 7c2d5aec705..ce1bbfcce78 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp
@@ -92,7 +92,7 @@ gl::Error VertexBufferInterface::setBufferSize(unsigned int size)
gl::ErrorOrResult<unsigned int> VertexBufferInterface::getSpaceRequired(
const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const
{
unsigned int spaceRequired = 0;
@@ -155,7 +155,7 @@ gl::Error StreamingVertexBufferInterface::storeDynamicAttribute(const gl::Vertex
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int *outStreamOffset,
const uint8_t *sourceData)
@@ -190,7 +190,7 @@ gl::Error StreamingVertexBufferInterface::storeDynamicAttribute(const gl::Vertex
gl::Error StreamingVertexBufferInterface::reserveVertexSpace(const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances)
{
unsigned int requiredSpace = 0;
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
index df8085d3cbd..63cdc2359f3 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
@@ -45,7 +45,7 @@ class VertexBuffer : angle::NonCopyable
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int offset,
const uint8_t *sourceData) = 0;
@@ -93,7 +93,7 @@ class VertexBufferInterface : angle::NonCopyable
gl::ErrorOrResult<unsigned int> getSpaceRequired(const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const;
BufferFactoryD3D *const mFactory;
VertexBuffer *mVertexBuffer;
@@ -110,14 +110,14 @@ class StreamingVertexBufferInterface : public VertexBufferInterface
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int *outStreamOffset,
const uint8_t *sourceData);
gl::Error reserveVertexSpace(const gl::VertexAttribute &attribute,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances);
private:
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp
index f20386bb14f..183c895b623 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp
@@ -392,7 +392,7 @@ gl::Error VertexDataManager::storeDynamicAttribs(
std::vector<TranslatedAttribute> *translatedAttribs,
const gl::AttributesMask &dynamicAttribsMask,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances)
{
// Instantiating this class will ensure the streaming buffer is never left mapped.
@@ -434,7 +434,7 @@ void VertexDataManager::PromoteDynamicAttribs(
const gl::Context *context,
const std::vector<TranslatedAttribute> &translatedAttribs,
const gl::AttributesMask &dynamicAttribsMask,
- GLsizei count)
+ size_t count)
{
for (auto attribIndex : dynamicAttribsMask)
{
@@ -445,16 +445,17 @@ void VertexDataManager::PromoteDynamicAttribs(
gl::Buffer *buffer = binding.getBuffer().get();
if (buffer)
{
+ // Note: this multiplication can overflow. It should not be a security problem.
BufferD3D *bufferD3D = GetImplAs<BufferD3D>(buffer);
size_t typeSize = ComputeVertexAttributeTypeSize(*dynamicAttrib.attribute);
- bufferD3D->promoteStaticUsage(context, count * static_cast<int>(typeSize));
+ bufferD3D->promoteStaticUsage(context, count * typeSize);
}
}
}
gl::Error VertexDataManager::reserveSpaceForAttrib(const TranslatedAttribute &translatedAttrib,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances) const
{
ASSERT(translatedAttrib.attribute && translatedAttrib.binding);
@@ -467,8 +468,8 @@ gl::Error VertexDataManager::reserveSpaceForAttrib(const TranslatedAttribute &tr
BufferD3D *bufferD3D = buffer ? GetImplAs<BufferD3D>(buffer) : nullptr;
ASSERT(!bufferD3D || bufferD3D->getStaticVertexBuffer(attrib, binding) == nullptr);
- size_t totalCount = gl::ComputeVertexBindingElementCount(
- binding.getDivisor(), static_cast<size_t>(count), static_cast<size_t>(instances));
+ size_t totalCount = gl::ComputeVertexBindingElementCount(binding.getDivisor(), count,
+ static_cast<size_t>(instances));
// TODO(jiajia.qin@intel.com): force the index buffer to clamp any out of range indices instead
// of invalid operation here.
if (bufferD3D)
@@ -486,15 +487,14 @@ gl::Error VertexDataManager::reserveSpaceForAttrib(const TranslatedAttribute &tr
return gl::InvalidOperation() << "Vertex buffer is not big enough for the draw call.";
}
}
- return mStreamingBuffer->reserveVertexSpace(attrib, binding, static_cast<GLsizei>(totalCount),
- instances);
+ return mStreamingBuffer->reserveVertexSpace(attrib, binding, totalCount, instances);
}
gl::Error VertexDataManager::storeDynamicAttrib(const gl::Context *context,
TranslatedAttribute *translated,
GLint start,
- GLsizei count,
- GLsizei instances)
+ size_t count,
+ GLsizei instances) const
{
ASSERT(translated->attribute && translated->binding);
const auto &attrib = *translated->attribute;
@@ -529,8 +529,8 @@ gl::Error VertexDataManager::storeDynamicAttrib(const gl::Context *context,
translated->storage = nullptr;
ANGLE_TRY_RESULT(mFactory->getVertexSpaceRequired(attrib, binding, 1, 0), translated->stride);
- size_t totalCount = gl::ComputeVertexBindingElementCount(
- binding.getDivisor(), static_cast<size_t>(count), static_cast<size_t>(instances));
+ size_t totalCount = gl::ComputeVertexBindingElementCount(binding.getDivisor(), count,
+ static_cast<size_t>(instances));
ANGLE_TRY(mStreamingBuffer->storeDynamicAttribute(
attrib, binding, translated->currentValueType, firstVertexIndex,
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h
index 694366deb70..2fb4fe6c468 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h
@@ -105,14 +105,14 @@ class VertexDataManager : angle::NonCopyable
std::vector<TranslatedAttribute> *translatedAttribs,
const gl::AttributesMask &dynamicAttribsMask,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances);
// Promote static usage of dynamic buffers.
static void PromoteDynamicAttribs(const gl::Context *context,
const std::vector<TranslatedAttribute> &translatedAttribs,
const gl::AttributesMask &dynamicAttribsMask,
- GLsizei count);
+ size_t count);
gl::Error storeCurrentValue(const gl::VertexAttribCurrentValueData &currentValue,
TranslatedAttribute *translated,
@@ -130,15 +130,15 @@ class VertexDataManager : angle::NonCopyable
};
gl::Error reserveSpaceForAttrib(const TranslatedAttribute &translatedAttrib,
- GLsizei count,
GLint start,
+ size_t count,
GLsizei instances) const;
gl::Error storeDynamicAttrib(const gl::Context *context,
TranslatedAttribute *translated,
GLint start,
- GLsizei count,
- GLsizei instances);
+ size_t count,
+ GLsizei instances) const;
BufferFactoryD3D *const mFactory;
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp
index 8dd5ad87ab8..f8f8865d087 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp
@@ -246,11 +246,12 @@ gl::Error InputLayoutCache::createInputLayout(
// As per the spec for ANGLE_instanced_arrays, not all attributes can be instanced
// simultaneously, so a non-instanced element must exist.
- GLsizei numIndicesPerInstance = 0;
+ UINT numIndicesPerInstance = 0;
if (drawCallParams.instances() > 0)
{
// This requires that the index range is resolved.
- numIndicesPerInstance = drawCallParams.vertexCount();
+ // Note: Vertex indexes can be arbitrarily large.
+ numIndicesPerInstance = drawCallParams.getClampedVertexCount<UINT>();
}
for (size_t elementIndex = 0; elementIndex < inputElementCount; ++elementIndex)
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
index 0af996327c2..cd11543216a 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
@@ -1400,7 +1400,7 @@ void *Renderer11::getD3DDevice()
gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallParams &params)
{
- if (params.vertexCount() < mStateManager.getCurrentMinimumDrawCount())
+ if (params.vertexCount() < static_cast<size_t>(mStateManager.getCurrentMinimumDrawCount()))
{
return gl::NoError();
}
@@ -1416,6 +1416,9 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
GLsizei adjustedInstanceCount = GetAdjustedInstanceCount(program, params.instances());
ProgramD3D *programD3D = GetImplAs<ProgramD3D>(program);
+ // Note: vertex indexes can be arbitrarily large.
+ UINT clampedVertexCount = params.getClampedVertexCount<UINT>();
+
if (programD3D->usesGeometryShader(params.mode()) &&
glState.isTransformFeedbackActiveUnpaused())
{
@@ -1427,11 +1430,11 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
if (adjustedInstanceCount > 0)
{
- mDeviceContext->DrawInstanced(params.vertexCount(), adjustedInstanceCount, 0, 0);
+ mDeviceContext->DrawInstanced(clampedVertexCount, adjustedInstanceCount, 0, 0);
}
else
{
- mDeviceContext->Draw(params.vertexCount(), 0);
+ mDeviceContext->Draw(clampedVertexCount, 0);
}
rx::ShaderExecutableD3D *pixelExe = nullptr;
@@ -1455,24 +1458,24 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
if (adjustedInstanceCount > 0)
{
- mDeviceContext->DrawInstanced(params.vertexCount(), adjustedInstanceCount, 0, 0);
+ mDeviceContext->DrawInstanced(clampedVertexCount, adjustedInstanceCount, 0, 0);
}
else
{
- mDeviceContext->Draw(params.vertexCount(), 0);
+ mDeviceContext->Draw(clampedVertexCount, 0);
}
return gl::NoError();
}
if (params.mode() == GL_LINE_LOOP)
{
- return drawLineLoop(context, params.vertexCount(), GL_NONE, nullptr, 0,
+ return drawLineLoop(context, clampedVertexCount, GL_NONE, nullptr, 0,
adjustedInstanceCount);
}
if (params.mode() == GL_TRIANGLE_FAN)
{
- return drawTriangleFan(context, params.vertexCount(), GL_NONE, nullptr, 0,
+ return drawTriangleFan(context, clampedVertexCount, GL_NONE, nullptr, 0,
adjustedInstanceCount);
}
@@ -1483,11 +1486,11 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
{
if (adjustedInstanceCount == 0)
{
- mDeviceContext->Draw(params.vertexCount(), 0);
+ mDeviceContext->Draw(clampedVertexCount, 0);
}
else
{
- mDeviceContext->DrawInstanced(params.vertexCount(), adjustedInstanceCount, 0, 0);
+ mDeviceContext->DrawInstanced(clampedVertexCount, adjustedInstanceCount, 0, 0);
}
return gl::NoError();
}
@@ -1500,7 +1503,7 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
// D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST and DrawIndexedInstanced is called instead.
if (adjustedInstanceCount == 0)
{
- mDeviceContext->DrawIndexedInstanced(6, params.vertexCount(), 0, 0, 0);
+ mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, 0);
return gl::NoError();
}
@@ -1513,7 +1516,7 @@ gl::Error Renderer11::drawArrays(const gl::Context *context, const gl::DrawCallP
{
ANGLE_TRY(
mStateManager.updateVertexOffsetsForPointSpritesEmulation(params.baseVertex(), i));
- mDeviceContext->DrawIndexedInstanced(6, params.vertexCount(), 0, 0, 0);
+ mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, 0);
}
// This required by updateVertexOffsets... above but is outside of the loop for speed.
@@ -1592,13 +1595,13 @@ gl::Error Renderer11::drawElements(const gl::Context *context, const gl::DrawCal
// efficent code path. Instanced rendering of emulated pointsprites requires a loop to draw each
// batch of points. An offset into the instanced data buffer is calculated and applied on each
// iteration to ensure all instances are rendered correctly.
- GLsizei elementsToRender = params.vertexCount();
+ UINT clampedVertexCount = params.getClampedVertexCount<UINT>();
// Each instance being rendered requires the inputlayout cache to reapply buffers and offsets.
for (GLsizei i = 0; i < params.instances(); i++)
{
ANGLE_TRY(mStateManager.updateVertexOffsetsForPointSpritesEmulation(startVertex, i));
- mDeviceContext->DrawIndexedInstanced(6, elementsToRender, 0, 0, 0);
+ mDeviceContext->DrawIndexedInstanced(6, clampedVertexCount, 0, 0, 0);
}
mStateManager.invalidateVertexBuffer();
return gl::NoError();
@@ -1650,7 +1653,7 @@ gl::Error Renderer11::drawElementsIndirect(const gl::Context *context,
}
gl::Error Renderer11::drawLineLoop(const gl::Context *context,
- GLsizei count,
+ GLuint count,
GLenum type,
const void *indexPointer,
int baseVertex,
@@ -1687,8 +1690,6 @@ gl::Error Renderer11::drawLineLoop(const gl::Context *context,
}
// Checked by Renderer11::applyPrimitiveType
- ASSERT(count >= 0);
-
if (static_cast<unsigned int>(count) + 1 >
(std::numeric_limits<unsigned int>::max() / sizeof(unsigned int)))
{
@@ -1734,7 +1735,7 @@ gl::Error Renderer11::drawLineLoop(const gl::Context *context,
}
gl::Error Renderer11::drawTriangleFan(const gl::Context *context,
- GLsizei count,
+ GLuint count,
GLenum type,
const void *indices,
int baseVertex,
@@ -3598,7 +3599,7 @@ GLenum Renderer11::getVertexComponentType(gl::VertexFormatType vertexFormatType)
gl::ErrorOrResult<unsigned int> Renderer11::getVertexSpaceRequired(
const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const
{
if (!attrib.enabled)
@@ -3610,7 +3611,8 @@ gl::ErrorOrResult<unsigned int> Renderer11::getVertexSpaceRequired(
const unsigned int divisor = binding.getDivisor();
if (instances == 0 || divisor == 0)
{
- elementCount = count;
+ // This could be a clipped cast.
+ elementCount = gl::clampCast<unsigned int>(count);
}
else
{
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
index d1b8bfd13fb..48623ce17b5 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
@@ -343,7 +343,7 @@ class Renderer11 : public RendererD3D
// function.
gl::ErrorOrResult<unsigned int> getVertexSpaceRequired(const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const override;
gl::Error readFromAttachment(const gl::Context *context,
@@ -461,13 +461,13 @@ class Renderer11 : public RendererD3D
angle::WorkaroundsD3D generateWorkarounds() const override;
gl::Error drawLineLoop(const gl::Context *context,
- GLsizei count,
+ GLuint count,
GLenum type,
const void *indices,
int baseVertex,
int instances);
gl::Error drawTriangleFan(const gl::Context *context,
- GLsizei count,
+ GLuint count,
GLenum type,
const void *indices,
int baseVertex,
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp
index 69e598784cb..3649cbe1f28 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp
@@ -96,7 +96,7 @@ gl::Error VertexBuffer11::storeVertexAttributes(const gl::VertexAttribute &attri
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int offset,
const uint8_t *sourceData)
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h
index ab619ae5030..7778c31dcd7 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h
@@ -31,7 +31,7 @@ class VertexBuffer11 : public VertexBuffer
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int offset,
const uint8_t *sourceData) override;
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
index 01341fec67e..c2b83d1f1d8 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
@@ -2998,7 +2998,7 @@ GLenum Renderer9::getVertexComponentType(gl::VertexFormatType vertexFormatType)
gl::ErrorOrResult<unsigned int> Renderer9::getVertexSpaceRequired(const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const
{
if (!attrib.enabled)
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h
index 239bfd0800b..0d5f450da19 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.h
@@ -346,7 +346,7 @@ class Renderer9 : public RendererD3D
// function.
gl::ErrorOrResult<unsigned int> getVertexSpaceRequired(const gl::VertexAttribute &attrib,
const gl::VertexBinding &binding,
- GLsizei count,
+ size_t count,
GLsizei instances) const override;
gl::Error copyToRenderTarget(IDirect3DSurface9 *dest,
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp
index c0b80a847c3..51af37aae86 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp
@@ -61,7 +61,7 @@ gl::Error VertexBuffer9::storeVertexAttributes(const gl::VertexAttribute &attrib
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int offset,
const uint8_t *sourceData)
@@ -71,8 +71,8 @@ gl::Error VertexBuffer9::storeVertexAttributes(const gl::VertexAttribute &attrib
return gl::OutOfMemory() << "Internal vertex buffer is not initialized.";
}
- int inputStride = static_cast<int>(gl::ComputeVertexAttributeStride(attrib, binding));
- int elementSize = static_cast<int>(gl::ComputeVertexAttributeTypeSize(attrib));
+ size_t inputStride = gl::ComputeVertexAttributeStride(attrib, binding);
+ size_t elementSize = gl::ComputeVertexAttributeTypeSize(attrib);
DWORD lockFlags = mDynamicUsage ? D3DLOCK_NOOVERWRITE : 0;
@@ -105,7 +105,7 @@ gl::Error VertexBuffer9::storeVertexAttributes(const gl::VertexAttribute &attrib
if (!needsConversion && inputStride == elementSize)
{
- size_t copySize = static_cast<size_t>(count) * static_cast<size_t>(inputStride);
+ size_t copySize = count * inputStride;
memcpy(mapPtr, input, copySize);
}
else
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h
index 983616f4e40..90defb31709 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h
@@ -28,7 +28,7 @@ class VertexBuffer9 : public VertexBuffer
const gl::VertexBinding &binding,
GLenum currentValueType,
GLint start,
- GLsizei count,
+ size_t count,
GLsizei instances,
unsigned int offset,
const uint8_t *sourceData) override;
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index aa573fea3e3..9e6da43d370 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -343,15 +343,17 @@ gl::Error VertexArrayVk::drawArrays(const gl::Context *context,
ANGLE_TRY(onDraw(context, renderer, drawCallParams, drawNode, newCommandBuffer));
+ // Note: Vertex indexes can be arbitrarily large.
+ uint32_t clampedVertexCount = drawCallParams.getClampedVertexCount<uint32_t>();
+
if (drawCallParams.mode() != GL_LINE_LOOP)
{
- commandBuffer->draw(drawCallParams.vertexCount(), 1, drawCallParams.firstVertex(), 0);
+ commandBuffer->draw(clampedVertexCount, 1, drawCallParams.firstVertex(), 0);
return gl::NoError();
}
// Handle GL_LINE_LOOP drawArrays.
- // This test may be incorrect if the draw call switches from DrawArrays/DrawElements.
- int lastVertex = drawCallParams.firstVertex() + drawCallParams.vertexCount();
+ size_t lastVertex = static_cast<size_t>(drawCallParams.firstVertex() + clampedVertexCount);
if (!mLineLoopBufferFirstIndex.valid() || !mLineLoopBufferLastIndex.valid() ||
mLineLoopBufferFirstIndex != drawCallParams.firstVertex() ||
mLineLoopBufferLastIndex != lastVertex)
@@ -367,7 +369,7 @@ gl::Error VertexArrayVk::drawArrays(const gl::Context *context,
commandBuffer->bindIndexBuffer(mCurrentElementArrayBufferHandle,
mCurrentElementArrayBufferOffset, VK_INDEX_TYPE_UINT32);
- vk::LineLoopHelper::Draw(drawCallParams.vertexCount(), commandBuffer);
+ vk::LineLoopHelper::Draw(clampedVertexCount, commandBuffer);
return gl::NoError();
}
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h
index fe26f730aa8..92a89a74013 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/VertexArrayVk.h
@@ -120,8 +120,8 @@ class VertexArrayVk : public VertexArrayImpl
vk::DynamicBuffer mDynamicIndexData;
vk::LineLoopHelper mLineLoopHelper;
- Optional<int> mLineLoopBufferFirstIndex;
- Optional<int> mLineLoopBufferLastIndex;
+ Optional<GLint> mLineLoopBufferFirstIndex;
+ Optional<size_t> mLineLoopBufferLastIndex;
bool mDirtyLineLoopTranslation;
// Cache variable for determining whether or not to store new dependencies in the node.
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
index 98774fdf1f0..a7ed151dc64 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
@@ -321,8 +321,11 @@ gl::Error LineLoopHelper::getIndexBufferForDrawArrays(RendererVk *renderer,
&offset, nullptr));
*offsetOut = static_cast<VkDeviceSize>(offset);
+ uint32_t clampedVertexCount = drawCallParams.getClampedVertexCount<uint32_t>();
+
+ // Note: there could be an overflow in this addition.
uint32_t unsignedFirstVertex = static_cast<uint32_t>(drawCallParams.firstVertex());
- uint32_t vertexCount = (drawCallParams.vertexCount() + unsignedFirstVertex);
+ uint32_t vertexCount = (clampedVertexCount + unsignedFirstVertex);
for (uint32_t vertexIndex = unsignedFirstVertex; vertexIndex < vertexCount; vertexIndex++)
{
*indices++ = vertexIndex;
@@ -378,9 +381,10 @@ void LineLoopHelper::destroy(VkDevice device)
}
// static
-void LineLoopHelper::Draw(int count, CommandBuffer *commandBuffer)
+void LineLoopHelper::Draw(uint32_t count, CommandBuffer *commandBuffer)
{
// Our first index is always 0 because that's how we set it up in createIndexBuffer*.
+ // Note: this could theoretically overflow and wrap to zero.
commandBuffer->drawIndexed(count + 1, 1, 0, 0, 0);
}
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h
index 237c85c729c..dfdfe2efed1 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h
+++ b/chromium/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.h
@@ -130,7 +130,7 @@ class LineLoopHelper final : public vk::CommandGraphResource
VkDeviceSize *bufferOffsetOut);
void destroy(VkDevice device);
- static void Draw(int count, CommandBuffer *commandBuffer);
+ static void Draw(uint32_t count, CommandBuffer *commandBuffer);
private:
DynamicBuffer mDynamicIndexBuffer;
diff --git a/chromium/third_party/blink/renderer/core/dom/element.cc b/chromium/third_party/blink/renderer/core/dom/element.cc
index 5a859613afe..b05407eccad 100644
--- a/chromium/third_party/blink/renderer/core/dom/element.cc
+++ b/chromium/third_party/blink/renderer/core/dom/element.cc
@@ -3049,7 +3049,7 @@ void Element::focus(const FocusParams& params) {
ToHTMLFrameOwnerElement(this)->contentDocument()->UnloadStarted())
return;
- GetDocument().UpdateStyleAndLayoutTreeForNode(this);
+ GetDocument().UpdateStyleAndLayoutTreeIgnorePendingStylesheets();
if (!IsFocusable())
return;
diff --git a/chromium/third_party/blink/renderer/core/editing/finder/text_finder.cc b/chromium/third_party/blink/renderer/core/editing/finder/text_finder.cc
index ac3287f5cf5..694df1d5d5a 100644
--- a/chromium/third_party/blink/renderer/core/editing/finder/text_finder.cc
+++ b/chromium/third_party/blink/renderer/core/editing/finder/text_finder.cc
@@ -664,16 +664,6 @@ void TextFinder::UpdateFindMatchRects() {
find_matches_cache_.swap(filtered_matches);
}
- // Invalidate the rects in child frames. Will be updated later during
- // traversal.
- if (!find_match_rects_are_valid_) {
- for (WebFrame* child = OwnerFrame().FirstChild(); child;
- child = child->NextSibling()) {
- ToWebLocalFrameImpl(child)
- ->EnsureTextFinder()
- .find_match_rects_are_valid_ = false;
- }
- }
find_match_rects_are_valid_ = true;
}
diff --git a/chromium/third_party/blink/renderer/core/editing/finder/text_finder.h b/chromium/third_party/blink/renderer/core/editing/finder/text_finder.h
index 1e5b0b387b1..94ffca35037 100644
--- a/chromium/third_party/blink/renderer/core/editing/finder/text_finder.h
+++ b/chromium/third_party/blink/renderer/core/editing/finder/text_finder.h
@@ -152,8 +152,7 @@ class CORE_EXPORT TextFinder final
int SelectFindMatch(unsigned index, WebRect* selection_rect);
// Compute and cache the rects for FindMatches if required.
- // Rects are automatically invalidated in case of content size changes,
- // propagating the invalidation to child frames.
+ // Rects are automatically invalidated in case of content size changes.
void UpdateFindMatchRects();
// Sets the markers within a range as active or inactive. Returns true if at
diff --git a/chromium/third_party/blink/renderer/core/exported/web_frame_serializer.cc b/chromium/third_party/blink/renderer/core/exported/web_frame_serializer.cc
index d0bbb337136..e52697467e6 100644
--- a/chromium/third_party/blink/renderer/core/exported/web_frame_serializer.cc
+++ b/chromium/third_party/blink/renderer/core/exported/web_frame_serializer.cc
@@ -283,10 +283,15 @@ bool MHTMLFrameSerializerDelegate::RewriteLink(const Element& element,
}
if (IsHTMLObjectElement(&element)) {
+ // If the <object> doesn't contain an image or a html document, then
+ // it won't be serialized by FrameSerializer::SerializeFrame. If we can
+ // detect this case (possible only for local frames), then preserve the
+ // original URI of the <object>, rather than rewriting it to a Content-ID.
Document* doc = frame_owner_element->contentDocument();
- bool is_handled_by_serializer = doc->IsHTMLDocument() ||
- doc->IsXHTMLDocument() ||
- doc->IsImageDocument();
+ bool is_handled_by_serializer =
+ !doc || // Remote frame - can't tell if this is HTML or an image.
+ doc->IsHTMLDocument() || doc->IsXHTMLDocument() ||
+ doc->IsImageDocument();
if (is_handled_by_serializer) {
rewritten_link = cid_uri.GetString();
return true;
diff --git a/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc b/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc
index e46c83b1b6b..580b48c703e 100644
--- a/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -3114,6 +3114,12 @@ WebHitTestResult WebViewImpl::HitTestResultAt(const WebPoint& point) {
HitTestResult WebViewImpl::CoreHitTestResultAt(
const WebPoint& point_in_viewport) {
+ // TODO(crbug.com/843128): When we do async hit-testing, we might try to do
+ // hit-testing when the local main frame is not valid anymore. Look into if we
+ // can avoid getting here earlier in the pipeline.
+ if (!MainFrameImpl() || !MainFrameImpl()->GetFrameView())
+ return HitTestResult();
+
DocumentLifecycle::AllowThrottlingScope throttling_scope(
MainFrameImpl()->GetFrame()->GetDocument()->Lifecycle());
LocalFrameView* view = MainFrameImpl()->GetFrameView();
diff --git a/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc b/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc
index abf67b31626..6b755eb52f9 100644
--- a/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc
+++ b/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc
@@ -33,10 +33,17 @@ class ReadableStreamBytesConsumer::OnFulfilled final : public ScriptFunction {
ScriptValue Call(ScriptValue v) override {
bool done;
v8::Local<v8::Value> item = v.V8Value();
- DCHECK(item->IsObject());
- v8::Local<v8::Value> value =
- V8UnpackIteratorResult(v.GetScriptState(), item.As<v8::Object>(), &done)
- .ToLocalChecked();
+ if (!item->IsObject()) {
+ consumer_->OnRejected();
+ return ScriptValue();
+ }
+ v8::Local<v8::Value> value;
+ if (!V8UnpackIteratorResult(v.GetScriptState(), item.As<v8::Object>(),
+ &done)
+ .ToLocal(&value)) {
+ consumer_->OnRejected();
+ return ScriptValue();
+ }
if (done) {
consumer_->OnReadDone();
return v;
diff --git a/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
index 986c1e88229..ff48e96fb95 100644
--- a/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
+++ b/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
@@ -1840,6 +1840,10 @@ bool ContentSecurityPolicy::ShouldBypassContentSecurityPolicy(
// static
bool ContentSecurityPolicy::IsValidCSPAttr(const String& attr,
const String& context_required_csp) {
+ // we don't allow any newline characters in the CSP attributes
+ if (attr.Contains('\n') || attr.Contains('\r'))
+ return false;
+
ContentSecurityPolicy* attr_policy = ContentSecurityPolicy::Create();
attr_policy->AddPolicyFromHeaderValue(attr,
kContentSecurityPolicyHeaderTypeEnforce,
diff --git a/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy_test.cc b/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy_test.cc
index 6dcd9750bb4..89621075563 100644
--- a/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy_test.cc
+++ b/chromium/third_party/blink/renderer/core/frame/csp/content_security_policy_test.cc
@@ -1347,6 +1347,34 @@ TEST_F(ContentSecurityPolicyTest, IsValidCSPAttrTest) {
"report-to relative-path/reporting;"
"base-uri http://example.com 'self'",
""));
+
+ // CRLF should not be allowed
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri\nhttp://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri http://example.com\nhttp://example2.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base\n-uri http://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "\nbase-uri http://example.com", ""));
+
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri\r\nhttp://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri http://example.com\r\nhttp://example2.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base\r\n-uri http://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "\r\nbase-uri http://example.com", ""));
+
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri\rhttp://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base-uri http://example.com\rhttp://example2.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "base\r-uri http://example.com", ""));
+ EXPECT_FALSE(ContentSecurityPolicy::IsValidCSPAttr(
+ "\rbase-uri http://example.com", ""));
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/frame/mhtml_archive_test.cc b/chromium/third_party/blink/renderer/core/frame/mhtml_archive_test.cc
index 06a75fb529a..e0f0164aa73 100644
--- a/chromium/third_party/blink/renderer/core/frame/mhtml_archive_test.cc
+++ b/chromium/third_party/blink/renderer/core/frame/mhtml_archive_test.cc
@@ -372,6 +372,15 @@ TEST_F(MHTMLArchiveTest, MHTMLDate) {
EXPECT_EQ(mhtml_date(), archive->Date());
}
+TEST_F(MHTMLArchiveTest, EmptyArchive) {
+ char* buf = nullptr;
+ scoped_refptr<SharedBuffer> data =
+ SharedBuffer::Create(buf, static_cast<size_t>(0u));
+ KURL http_url = ToKURL("http://www.example.com");
+ MHTMLArchive* archive = MHTMLArchive::Create(http_url, data.get());
+ EXPECT_EQ(nullptr, archive);
+}
+
} // namespace test
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/frame/remote_frame_view.cc b/chromium/third_party/blink/renderer/core/frame/remote_frame_view.cc
index ff642e20916..c6f04e352eb 100644
--- a/chromium/third_party/blink/renderer/core/frame/remote_frame_view.cc
+++ b/chromium/third_party/blink/renderer/core/frame/remote_frame_view.cc
@@ -67,6 +67,8 @@ void RemoteFrameView::UpdateViewportIntersectionsForSubtree(
DocumentLifecycle::LifecycleState target_state) {
if (!remote_frame_->OwnerLayoutObject())
return;
+ if (target_state < DocumentLifecycle::kPaintClean)
+ return;
LocalFrameView* local_root_view =
ToLocalFrame(remote_frame_->Tree().Parent())->LocalFrameRoot().View();
diff --git a/chromium/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/chromium/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
index 1ea89451aef..37c0bc8b2da 100644
--- a/chromium/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/chromium/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -213,7 +213,12 @@ void WebFrameWidgetImpl::Resize(const WebSize& new_size) {
// FIXME: Investigate whether this is needed; comment from eseidel suggests
// that this function is flawed.
- SendResizeEventAndRepaint();
+ // TODO(kenrb): It would probably make more sense to check whether lifecycle
+ // updates are throttled in the root's LocalFrameView, but for OOPIFs that
+ // doesn't happen. Need to investigate if OOPIFs can be throttled during
+ // load.
+ if (local_root_->GetFrame()->GetDocument()->IsLoadCompleted())
+ SendResizeEventAndRepaint();
}
void WebFrameWidgetImpl::SendResizeEventAndRepaint() {
diff --git a/chromium/third_party/blink/renderer/core/layout/hit_test_result.h b/chromium/third_party/blink/renderer/core/layout/hit_test_result.h
index 25bc15c2639..dd9f3b33e3d 100644
--- a/chromium/third_party/blink/renderer/core/layout/hit_test_result.h
+++ b/chromium/third_party/blink/renderer/core/layout/hit_test_result.h
@@ -115,6 +115,9 @@ class CORE_EXPORT HitTestResult {
const LayoutPoint& PointInInnerNodeFrame() const {
return point_in_inner_node_frame_;
}
+ void SetPointInInnerNodeFrame(const LayoutPoint& point) {
+ point_in_inner_node_frame_ = point;
+ }
IntPoint RoundedPointInInnerNodeFrame() const {
return RoundedIntPoint(PointInInnerNodeFrame());
}
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_box.cc b/chromium/third_party/blink/renderer/core/layout/layout_box.cc
index c3096753b6b..4f724b59448 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/chromium/third_party/blink/renderer/core/layout/layout_box.cc
@@ -2555,8 +2555,9 @@ bool LayoutBox::MapToVisualRectInAncestorSpaceInternal(
if (container->IsLayoutView()) {
bool use_fixed_position_adjustment =
- !RuntimeEnabledFeatures::RootLayerScrollingEnabled() &&
- position == EPosition::kFixed;
+ position == EPosition::kFixed &&
+ (!RuntimeEnabledFeatures::RootLayerScrollingEnabled() ||
+ container == ancestor);
return ToLayoutView(container)->MapToVisualRectInAncestorSpaceInternal(
ancestor, transform_state, use_fixed_position_adjustment ? kIsFixed : 0,
visual_rect_flags);
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_object.cc b/chromium/third_party/blink/renderer/core/layout/layout_object.cc
index dd12052f439..a35feb73599 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/chromium/third_party/blink/renderer/core/layout/layout_object.cc
@@ -2600,14 +2600,6 @@ void LayoutObject::GetTransformFromContainer(
if (layer && layer->Transform())
transform.Multiply(layer->CurrentTransform());
- GetTransformFromContainerInternal(container_object, offset_in_container,
- transform);
-}
-
-void LayoutObject::GetTransformFromContainerInternal(
- const LayoutObject* container_object,
- const LayoutSize& offset_in_container,
- TransformationMatrix& transform) const {
transform.PostTranslate(offset_in_container.Width().ToFloat(),
offset_in_container.Height().ToFloat());
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_object.h b/chromium/third_party/blink/renderer/core/layout/layout_object.h
index 972fa10c583..d31d5a8515e 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_object.h
+++ b/chromium/third_party/blink/renderer/core/layout/layout_object.h
@@ -1625,11 +1625,10 @@ class CORE_EXPORT LayoutObject : public ImageResourceObserver,
const LayoutBoxModelObject* ancestor_to_stop_at,
LayoutGeometryMap&) const;
- virtual bool ShouldUseTransformFromContainer(
- const LayoutObject* container) const;
- virtual void GetTransformFromContainer(const LayoutObject* container,
- const LayoutSize& offset_in_container,
- TransformationMatrix&) const;
+ bool ShouldUseTransformFromContainer(const LayoutObject* container) const;
+ void GetTransformFromContainer(const LayoutObject* container,
+ const LayoutSize& offset_in_container,
+ TransformationMatrix&) const;
bool CreatesGroup() const {
return IsTransparent() || HasMask() || HasClipPath() ||
@@ -2058,10 +2057,6 @@ class CORE_EXPORT LayoutObject : public ImageResourceObserver,
// changes at all).
virtual bool AnonymousHasStylePropagationOverride() { return false; }
- void GetTransformFromContainerInternal(const LayoutObject* container,
- const LayoutSize& offset_in_container,
- TransformationMatrix&) const;
-
// A fast path for MapToVisualRectInAncestorSpace for when GeometryMapper
// can be used.
bool MapToVisualRectInAncestorSpaceInternalFastPath(
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_view.cc b/chromium/third_party/blink/renderer/core/layout/layout_view.cc
index 643fedfe0f5..1ce91caf717 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_view.cc
+++ b/chromium/third_party/blink/renderer/core/layout/layout_view.cc
@@ -440,13 +440,6 @@ void LayoutView::MapAncestorToLocal(const LayoutBoxModelObject* ancestor,
transform_state.Move(OffsetForFixedPosition());
}
-bool LayoutView::ShouldClipOverflow() const {
- bool is_main_frame = GetFrameView()->GetFrame().IsMainFrame();
- if (is_main_frame && !GetDocument().GetSettings()->GetMainFrameClipsContent())
- return false;
- return LayoutBox::ShouldClipOverflow();
-}
-
void LayoutView::ComputeSelfHitTestRects(Vector<LayoutRect>& rects,
const LayoutPoint&) const {
// Record the entire size of the contents of the frame. Note that we don't
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_view.h b/chromium/third_party/blink/renderer/core/layout/layout_view.h
index ebd4d7fae7f..e6bbcdc0460 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_view.h
+++ b/chromium/third_party/blink/renderer/core/layout/layout_view.h
@@ -263,7 +263,6 @@ class CORE_EXPORT LayoutView final : public LayoutBlockFlow {
void MapAncestorToLocal(const LayoutBoxModelObject*,
TransformState&,
MapCoordinatesFlags) const override;
- bool ShouldClipOverflow() const final;
void ComputeSelfHitTestRects(Vector<LayoutRect>&,
const LayoutPoint& layer_offset) const override;
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_container.cc b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_container.cc
index 8b27cbe5ea5..fa11a5a8020 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_container.cc
+++ b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_container.cc
@@ -25,7 +25,6 @@
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/layout_analyzer.h"
-#include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/layout/svg/svg_resources.h"
#include "third_party/blink/renderer/core/layout/svg/svg_resources_cache.h"
@@ -192,9 +191,6 @@ bool LayoutSVGContainer::NodeAtFloatPoint(HitTestResult& result,
for (LayoutObject* child = LastChild(); child;
child = child->PreviousSibling()) {
- if (child->IsBoxModelObject() &&
- ToLayoutBoxModelObject(child)->HasSelfPaintingLayer())
- continue;
if (child->NodeAtFloatPoint(result, local_point, hit_test_action)) {
const LayoutPoint& local_layout_point = LayoutPoint(local_point);
UpdateHitTestResult(result, local_layout_point);
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.cc b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.cc
index 6c83ce379a7..9f9a508adc1 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.cc
+++ b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.cc
@@ -24,6 +24,7 @@
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/layout/svg/svg_resources_cache.h"
+#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/svg_foreign_object_painter.h"
#include "third_party/blink/renderer/core/svg/svg_foreign_object_element.h"
@@ -127,15 +128,32 @@ void LayoutSVGForeignObject::UpdateLayout() {
bool LayoutSVGForeignObject::NodeAtFloatPoint(HitTestResult& result,
const FloatPoint& point_in_parent,
HitTestAction hit_test_action) {
- if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) {
- NOTREACHED();
- return false;
- }
AffineTransform local_transform = LocalSVGTransform();
if (!local_transform.IsInvertible())
return false;
FloatPoint local_point = local_transform.Inverse().MapPoint(point_in_parent);
+ if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) {
+ LayoutPoint point_in_foreign_object(local_point);
+ // |local_point| already includes the offset of the <foreignObject> element,
+ // but PaintLayer::HitTestLayer assumes it has not been.
+ point_in_foreign_object.MoveBy(-Layer()->LayoutBoxLocation());
+ HitTestResult layer_result(result.GetHitTestRequest(),
+ point_in_foreign_object);
+ bool retval = Layer()->HitTest(layer_result);
+
+ // Preserve the "point in inner node frame" from the original request,
+ // since |layer_result| is a hit test rooted at the <foreignObject> element,
+ // not the frame, due to the constructor above using
+ // |point_in_foreign_object| as its "point in inner node frame".
+ // TODO(chrishtr): refactor the PaintLayer and HitTestResults code around
+ // this, to better support hit tests that don't start at frame boundaries.
+ LayoutPoint original_point_in_inner_node_frame =
+ result.PointInInnerNodeFrame();
+ result = layer_result;
+ result.SetPointInInnerNodeFrame(original_point_in_inner_node_frame);
+ return retval;
+ }
// Early exit if local point is not contained in clipped viewport area
if (SVGLayoutSupport::IsOverflowHidden(*this) &&
@@ -152,16 +170,6 @@ bool LayoutSVGForeignObject::NodeAtFloatPoint(HitTestResult& result,
kHitTestChildBlockBackgrounds);
}
-void LayoutSVGForeignObject::GetTransformFromContainer(
- const LayoutObject* container,
- const LayoutSize& offset_in_container,
- TransformationMatrix& matrix) const {
- AffineTransform to_svg_root_transform;
- SVGLayoutSupport::ComputeTransformToSVGRoot(*this, to_svg_root_transform);
- matrix = to_svg_root_transform;
- GetTransformFromContainerInternal(container, offset_in_container, matrix);
-}
-
bool LayoutSVGForeignObject::NodeAtPoint(
HitTestResult& result,
const HitTestLocation& location_in_parent,
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h
index 78d8f07e3fb..4dffb3efd69 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h
+++ b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h
@@ -60,14 +60,6 @@ class LayoutSVGForeignObject final : public LayoutSVGBlock {
return ObjectBoundingBox();
}
- bool ShouldUseTransformFromContainer(
- const LayoutObject* container) const override {
- return true;
- }
- void GetTransformFromContainer(const LayoutObject* container,
- const LayoutSize& offset_in_container,
- TransformationMatrix&) const override;
-
bool NodeAtPoint(HitTestResult&,
const HitTestLocation&,
const LayoutPoint&,
@@ -100,6 +92,8 @@ class LayoutSVGForeignObject final : public LayoutSVGBlock {
bool needs_transform_update_;
};
+DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutSVGForeignObject, IsSVGForeignObject());
+
} // namespace blink
#endif
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object_test.cc b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object_test.cc
index 9b5770ef703..eb31ff5f2ae 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object_test.cc
+++ b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object_test.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "third_party/blink/renderer/core/layout/layout_geometry_map.h"
+#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
namespace blink {
@@ -265,4 +266,70 @@ TEST_F(LayoutSVGForeignObjectTest, HitTestUnderClipPath) {
EXPECT_EQ(svg, GetDocument().ElementFromPoint(400, 400));
}
+TEST_F(LayoutSVGForeignObjectTest,
+ HitTestUnderClippedPositionedForeignObjectDescendant) {
+ SetBodyInnerHTML(R"HTML(
+ <style>
+ * {
+ margin: 0
+ }
+ </style>
+ <svg id="svg" style="width: 600px; height: 600px">
+ <foreignObject id="foreignObject" x="200" y="200" width="100"
+ height="100">
+ <div id="target" style="overflow: hidden; position: relative;
+ width: 100px; height: 50px; left: 5px"></div>
+ </foreignObject>
+ </svg>
+ )HTML");
+
+ const auto& svg = *GetDocument().getElementById("svg");
+ const auto& target = *GetDocument().getElementById("target");
+ const auto& foreignObject = *GetDocument().getElementById("foreignObject");
+
+ EXPECT_EQ(svg, GetDocument().ElementFromPoint(1, 1));
+ EXPECT_EQ(foreignObject, GetDocument().ElementFromPoint(201, 201));
+ EXPECT_EQ(target, GetDocument().ElementFromPoint(206, 206));
+ EXPECT_EQ(foreignObject, GetDocument().ElementFromPoint(205, 255));
+
+ HitTestRequest request(HitTestRequest::kReadOnly | HitTestRequest::kActive);
+ HitTestResult result(request, LayoutPoint(206, 206));
+ GetDocument().GetLayoutView()->Layer()->HitTest(result);
+ EXPECT_EQ(target, result.InnerNode());
+ EXPECT_EQ(LayoutPoint(206, 206), result.PointInInnerNodeFrame());
+}
+
+TEST_F(LayoutSVGForeignObjectTest,
+ HitTestUnderTransformedForeignObjectDescendant) {
+ SetBodyInnerHTML(R"HTML(
+ <style>
+ * {
+ margin: 0
+ }
+ </style>
+ <svg id="svg" style="width: 600px; height: 600px">
+ <foreignObject id="foreignObject" x="200" y="200" width="100"
+ height="100" transform="translate(30)">
+ <div id="target" style="overflow: hidden; position: relative;
+ width: 100px; height: 50px; left: 5px"></div>
+ </foreignObject>
+ </svg>
+ )HTML");
+
+ const auto& svg = *GetDocument().getElementById("svg");
+ const auto& target = *GetDocument().getElementById("target");
+ const auto& foreignObject = *GetDocument().getElementById("foreignObject");
+
+ EXPECT_EQ(svg, GetDocument().ElementFromPoint(1, 1));
+ EXPECT_EQ(foreignObject, GetDocument().ElementFromPoint(231, 201));
+ EXPECT_EQ(target, GetDocument().ElementFromPoint(236, 206));
+ EXPECT_EQ(foreignObject, GetDocument().ElementFromPoint(235, 255));
+
+ HitTestRequest request(HitTestRequest::kReadOnly | HitTestRequest::kActive);
+ HitTestResult result(request, LayoutPoint(236, 206));
+ GetDocument().GetLayoutView()->Layer()->HitTest(result);
+ EXPECT_EQ(target, result.InnerNode());
+ EXPECT_EQ(LayoutPoint(236, 206), result.PointInInnerNodeFrame());
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
index 057c364d35f..f35b4a16e36 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
+++ b/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
@@ -513,9 +513,6 @@ bool LayoutSVGRoot::NodeAtPoint(HitTestResult& result,
for (LayoutObject* child = LastChild(); child;
child = child->PreviousSibling()) {
- if (child->IsBoxModelObject() &&
- ToLayoutBoxModelObject(child)->HasSelfPaintingLayer())
- continue;
// FIXME: nodeAtFloatPoint() doesn't handle rect-based hit tests yet.
if (child->NodeAtFloatPoint(result, local_point, hit_test_action)) {
UpdateHitTestResult(result, point_in_border_box);
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.cc b/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.cc
index b37d9a1e270..10e7e46daad 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.cc
+++ b/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.cc
@@ -94,7 +94,7 @@ LayoutRect SVGLayoutSupport::TransformVisualRect(
return LayoutRect(EnclosingIntRect(adjusted_rect));
}
-const LayoutSVGRoot& SVGLayoutSupport::ComputeTransformToSVGRoot(
+static const LayoutSVGRoot& ComputeTransformToSVGRoot(
const LayoutObject& object,
AffineTransform& root_border_box_transform) {
DCHECK(object.IsSVGChild());
diff --git a/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.h b/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
index b055793af1f..dbc43c74fee 100644
--- a/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
+++ b/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
@@ -153,10 +153,6 @@ class CORE_EXPORT SVGLayoutSupport {
static LayoutObject* FindClosestLayoutSVGText(const LayoutObject*,
const FloatPoint&);
- static const LayoutSVGRoot& ComputeTransformToSVGRoot(
- const LayoutObject& object,
- AffineTransform& root_border_box_transform);
-
private:
static void UpdateObjectBoundingBox(FloatRect& object_bounding_box,
bool& object_bounding_box_valid,
diff --git a/chromium/third_party/blink/renderer/core/layout/visual_rect_mapping_test.cc b/chromium/third_party/blink/renderer/core/layout/visual_rect_mapping_test.cc
index 144cdecb03c..eb8578dc98e 100644
--- a/chromium/third_party/blink/renderer/core/layout/visual_rect_mapping_test.cc
+++ b/chromium/third_party/blink/renderer/core/layout/visual_rect_mapping_test.cc
@@ -1012,11 +1012,6 @@ TEST_P(VisualRectMappingTest, FixedContentsWithScrollOffset) {
GetDocument().View()->LayoutViewportScrollableArea()->SetScrollOffset(
ScrollOffset(0, 50), kProgrammaticScroll);
GetDocument().View()->UpdateAllLifecyclePhases();
-
- // The fixed element does not scroll but the ancestor does which changes the
- // visual rect.
- CheckMapToVisualRectInAncestorSpace(
- LayoutRect(0, 0, 400, 300), LayoutRect(0, 40, 400, 300), fixed, ancestor);
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/chromium/third_party/blink/renderer/core/loader/frame_fetch_context.cc
index b9f29902c57..b1025b2413b 100644
--- a/chromium/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/chromium/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -32,6 +32,8 @@
#include <algorithm>
#include <memory>
+
+#include "base/feature_list.h"
#include "services/network/public/mojom/request_context_frame_type.mojom-blink.h"
#include "third_party/blink/public/common/client_hints/client_hints.h"
#include "third_party/blink/public/common/device_memory/approximated_device_memory.h"
@@ -100,6 +102,12 @@ namespace blink {
namespace {
+// If kAllowClientHintsToThirdParty is enabled, then device-memory,
+// resource-width and viewport-width client hints can be sent to third-party
+// origins if the first-party has opted in to receiving client hints.
+const base::Feature kAllowClientHintsToThirdParty{
+ "AllowClientHintsToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT};
+
enum class RequestMethod { kIsPost, kIsNotPost };
enum class RequestType { kIsConditional, kIsNotConditional };
enum class ResourceType { kIsMainResource, kIsNotMainResource };
@@ -881,6 +889,9 @@ void FrameFetchContext::AddClientHintsIfNecessary(
const FetchParameters::ResourceWidth& resource_width,
ResourceRequest& request) {
WebEnabledClientHints enabled_hints;
+
+ bool is_1p_origin = false;
+
if (blink::RuntimeEnabledFeatures::ClientHintsPersistentEnabled()) {
// If the feature is enabled, then client hints are allowed only on secure
// URLs.
@@ -896,17 +907,22 @@ void FrameFetchContext::AddClientHintsIfNecessary(
if (IsDetached())
return;
- if (!GetFrame()
- ->Tree()
- .Top()
- .GetSecurityContext()
- ->GetSecurityOrigin()
- ->IsSameSchemeHostPort(
- SecurityOrigin::Create(request.Url()).get())) {
+ is_1p_origin =
+ GetFrame()
+ ->Tree()
+ .Top()
+ .GetSecurityContext()
+ ->GetSecurityOrigin()
+ ->IsSameSchemeHostPort(SecurityOrigin::Create(request.Url()).get());
+
+ if (!base::FeatureList::IsEnabled(kAllowClientHintsToThirdParty) &&
+ !is_1p_origin) {
// No client hints for 3p origins.
return;
}
- if (GetContentSettingsClient()) {
+ // Persisted client hints preferences should be read for only the first
+ // party origins.
+ if (is_1p_origin && GetContentSettingsClient()) {
GetContentSettingsClient()->GetAllowedClientHintsFromSource(
request.Url(), &enabled_hints);
}
@@ -943,6 +959,12 @@ void FrameFetchContext::AddClientHintsIfNecessary(
AtomicString(String::Number(GetFrame()->View()->ViewportWidth())));
}
+ if (!is_1p_origin) {
+ // No network quality client hints for 3p origins. Only DPR, resource width
+ // and viewport width client hints are allowed for 1p origins.
+ return;
+ }
+
if (ShouldSendClientHint(mojom::WebClientHintsType::kRtt, hints_preferences,
enabled_hints)) {
unsigned long rtt = GetNetworkStateNotifier().RoundRtt(
diff --git a/chromium/third_party/blink/renderer/core/loader/threadable_loader.cc b/chromium/third_party/blink/renderer/core/loader/threadable_loader.cc
index 44b688f05be..6e269ec2080 100644
--- a/chromium/third_party/blink/renderer/core/loader/threadable_loader.cc
+++ b/chromium/third_party/blink/renderer/core/loader/threadable_loader.cc
@@ -33,6 +33,7 @@
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/loader/document_threadable_loader.h"
#include "third_party/blink/renderer/core/loader/threadable_loading_context.h"
+#include "third_party/blink/renderer/core/loader/worker_threadable_loader.h"
#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
namespace blink {
@@ -56,6 +57,12 @@ void ThreadableLoader::LoadResourceSynchronously(
ThreadableLoaderClient& client,
const ThreadableLoaderOptions& options,
const ResourceLoaderOptions& resource_loader_options) {
+ if (context.IsWorkerGlobalScope()) {
+ WorkerThreadableLoader::LoadResourceSynchronously(
+ ToWorkerGlobalScope(context), request, client, options,
+ resource_loader_options);
+ return;
+ }
DocumentThreadableLoader::LoadResourceSynchronously(
*ThreadableLoadingContext::Create(context), request, client, options,
resource_loader_options);
diff --git a/chromium/third_party/blink/renderer/core/paint/README.md b/chromium/third_party/blink/renderer/core/paint/README.md
index 641f09eb8ec..0a3e2ed55b7 100644
--- a/chromium/third_party/blink/renderer/core/paint/README.md
+++ b/chromium/third_party/blink/renderer/core/paint/README.md
@@ -26,6 +26,13 @@ are treated in different ways during painting:
* Stacking contexts: elements with non-auto z-indices or other properties
that affect stacking e.g. transform, opacity, blend-mode.
+ * Replaced normal-flow stacking elements: [replaced elements](https://html.spec.whatwg.org/multipage/rendering.html#replaced-elements)
+ that do not have non-auto z-index but are stacking contexts for
+ elements below them. Right now the only example is SVG <foreignObject>.
+ The difference between these elements and regular stacking contexts is
+ that they paint in the foreground phase of the painting algorithm
+ (as opposed to the positioned descendants phase).
+
* Elements that are not real stacking contexts but are treated as stacking
contexts but don't manage other stacked elements. Their z-ordering are
managed by real stacking contexts. They are positioned elements with
diff --git a/chromium/third_party/blink/renderer/core/paint/box_painter.cc b/chromium/third_party/blink/renderer/core/paint/box_painter.cc
index 77ba7b05a8e..79cfaa28616 100644
--- a/chromium/third_party/blink/renderer/core/paint/box_painter.cc
+++ b/chromium/third_party/blink/renderer/core/paint/box_painter.cc
@@ -9,6 +9,7 @@
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_table.h"
#include "third_party/blink/renderer/core/layout/layout_theme.h"
+#include "third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h"
#include "third_party/blink/renderer/core/paint/adjust_paint_offset_scope.h"
#include "third_party/blink/renderer/core/paint/background_image_geometry.h"
#include "third_party/blink/renderer/core/paint/box_decoration_data.h"
@@ -19,6 +20,7 @@
#include "third_party/blink/renderer/core/paint/object_painter.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
#include "third_party/blink/renderer/core/paint/scroll_recorder.h"
+#include "third_party/blink/renderer/core/paint/svg_foreign_object_painter.h"
#include "third_party/blink/renderer/core/paint/theme_painter.h"
#include "third_party/blink/renderer/platform/geometry/layout_point.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
@@ -42,9 +44,13 @@ void BoxPainter::PaintChildren(const PaintInfo& paint_info,
PaintInfo child_info(paint_info);
for (LayoutObject* child = layout_box_.SlowFirstChild(); child;
child = child->NextSibling()) {
- if (!child->IsBoxModelObject() ||
- !ToLayoutBoxModelObject(child)->HasSelfPaintingLayer())
+ if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled() &&
+ child->IsSVGForeignObject()) {
+ SVGForeignObjectPainter(ToLayoutSVGForeignObject(*child))
+ .PaintLayer(paint_info);
+ } else {
child->Paint(child_info, paint_offset);
+ }
}
}
diff --git a/chromium/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc b/chromium/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
index c3cc47a03f4..217062ed40f 100644
--- a/chromium/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
+++ b/chromium/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
@@ -3368,19 +3368,27 @@ IntRect CompositedLayerMapping::RecomputeInterestRect(
LayoutRect graphics_layer_bounds_in_root_view_space(
graphics_layer_bounds_in_object_space);
- // MapToVisualRectInAncestorSpace is exclusive of the scroll and clip on the
- // ancestor, so we map to nullptr instead of |root_view| to include these.
anchor_layout_object->MapToVisualRectInAncestorSpace(
- nullptr, graphics_layer_bounds_in_root_view_space);
+ root_view, graphics_layer_bounds_in_root_view_space);
+
+ // In RLS, the root_view is scrolled. However, MapToVisualRectInAncestorSpace
+ // doesn't account for this scroll, since it earlies out as soon as we reach
+ // this ancestor. That is, it only maps to the space of the root_view, not
+ // accounting for the fact that the root_view itself can be scrolled. If the
+ // root_view is our anchor_layout_object, then this extra offset is counted in
+ // offset_from_anchor_layout_object. In other cases, we need to account for it
+ // here. Otherwise, the paint clip below might clip the whole (visible) rect
+ // out.
+ if (RuntimeEnabledFeatures::RootLayerScrollingEnabled() &&
+ root_view != anchor_layout_object) {
+ if (auto* scrollable_area = root_view->GetScrollableArea()) {
+ graphics_layer_bounds_in_root_view_space.MoveBy(
+ -scrollable_area->VisibleContentRect().Location());
+ }
+ }
- // MapToVisualRectInAncestorSpace will not clip if the anchor is the root
- // view, because the rect is assumed to already be in the clipped space of
- // the root view. We need to manually apply the root view's clip in this case.
FloatRect visible_content_rect(graphics_layer_bounds_in_root_view_space);
- if (anchor_layout_object == root_view ||
- !RuntimeEnabledFeatures::RootLayerScrollingEnabled()) {
- root_view->GetFrameView()->ClipPaintRect(&visible_content_rect);
- }
+ root_view->GetFrameView()->ClipPaintRect(&visible_content_rect);
FloatRect enclosing_graphics_layer_bounds(
EnclosingIntRect(graphics_layer_bounds));
diff --git a/chromium/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc b/chromium/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
index 95b7ed761bf..e17ae8d3414 100644
--- a/chromium/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
+++ b/chromium/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
@@ -967,7 +967,10 @@ bool PaintLayerCompositor::CanBeComposited(const PaintLayer* layer) const {
return has_accelerated_compositing_ &&
(has_compositor_animation || !layer->SubtreeIsInvisible()) &&
layer->IsSelfPaintingLayer() &&
- !layer->GetLayoutObject().IsLayoutFlowThread();
+ !layer->GetLayoutObject().IsLayoutFlowThread() &&
+ // Don't composite <foreignObject> for the moment, to reduce
+ // instances of the "fundamental compositing bug" breaking content.
+ !layer->GetLayoutObject().IsSVGForeignObject();
}
// Return true if the given layer is a stacking context and has compositing
diff --git a/chromium/third_party/blink/renderer/core/paint/paint_layer.cc b/chromium/third_party/blink/renderer/core/paint/paint_layer.cc
index 79c2117f843..6c4a1ad30e0 100644
--- a/chromium/third_party/blink/renderer/core/paint/paint_layer.cc
+++ b/chromium/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -1856,16 +1856,6 @@ scoped_refptr<HitTestingTransformState> PaintLayer::CreateLocalTransformState(
ConvertToLayerCoords(root_layer, offset);
}
offset.MoveBy(translation_offset);
- // The location of a foreignObject element is added *after* transform, not
- // before (all SVG child elements have this behavior). Therefore, remove
- // the offset here to avoid applying it before the transform. It will be
- // added later.
- // TODO(chrishtr): this ugliness can be removed if we change the code to
- // to be based on PaintOffset rather than PaintLayer offsets, like the
- // paint code does. This is a larger effort though, that involves using
- // property trees to drive hit testing coordinate spaces.
- if (GetLayoutObject().IsSVGForeignObject())
- offset.MoveBy(-LayoutBoxLocation());
LayoutObject* container_layout_object =
container_layer ? &container_layer->GetLayoutObject() : nullptr;
@@ -1943,11 +1933,11 @@ PaintLayer* PaintLayer::HitTestLayer(
if (result.GetHitTestRequest().IgnoreClipping())
clip_behavior = kIgnoreOverflowClip;
- // Always send foreignObject PaintLayers through the "transform" code path,
- // even if they have no transform. This is in order to collect any ancestor
- // SVG transforms, including the SVG root to border box transform, which
- // are represented outside of the PaintLayer tree.
- bool use_transform = Transform() || GetLayoutObject().IsSVGForeignObject();
+ // We can only reach an SVG foreign object's PaintLayer from
+ // LayoutSVGForeignObject::NodeAtFloatPoint (because
+ // IsReplacedNormalFlowStacking() true for LayoutSVGForeignObject),
+ // where the hit_test_rect has already been transformed to local coordinates.
+ bool use_transform = Transform() && !GetLayoutObject().IsSVGForeignObject();
// Apply a transform if we have one.
if (use_transform && !applied_transform) {
@@ -1979,17 +1969,6 @@ PaintLayer* PaintLayer::HitTestLayer(
if (HitTestClippedOutByClipPath(root_layer, hit_test_location))
return nullptr;
- // TODO(chrishtr): this can have incorrect results for rects that are not
- // unit-sized due to use of Center().
- if (GetLayoutObject().IsSVGForeignObject() &&
- !GeometryMapper::PointVisibleInAncestorSpace(
- GetLayoutObject().FirstFragment().LocalBorderBoxProperties(),
- container_layer->GetLayoutObject()
- .FirstFragment()
- .LocalBorderBoxProperties(),
- FloatPoint(hit_test_location.BoundingBox().Center())))
- return nullptr;
-
// The natural thing would be to keep HitTestingTransformState on the stack,
// but it's big, so we heap-allocate.
scoped_refptr<HitTestingTransformState> local_transform_state;
@@ -2098,10 +2077,6 @@ PaintLayer* PaintLayer::HitTestLayer(
}
LayoutPoint offset = -LayoutBoxLocation();
- // See comment in CreateLocalTransformState. The code here is
- // where we re-add the location.
- if (root_layer->GetLayoutObject().IsSVGForeignObject())
- offset.MoveBy(root_layer->LayoutBoxLocation());
// Next we want to see if the mouse pos is inside the child LayoutObjects of
// the layer. Check every fragment in reverse order.
@@ -2315,6 +2290,14 @@ bool PaintLayer::HitTestContents(HitTestResult& result,
return true;
}
+bool PaintLayer::IsReplacedNormalFlowStacking() {
+ if (!GetLayoutObject().IsSVGForeignObject())
+ return false;
+ if (!GetLayoutObject().StyleRef().HasAutoZIndex())
+ return false;
+ return true;
+}
+
PaintLayer* PaintLayer::HitTestChildren(
ChildrenIteration childrento_visit,
PaintLayer* root_layer,
@@ -2334,6 +2317,10 @@ PaintLayer* PaintLayer::HitTestChildren(
childrento_visit);
while (PaintLayerStackingNode* child = iterator.Next()) {
PaintLayer* child_layer = child->Layer();
+
+ if (child_layer->IsReplacedNormalFlowStacking())
+ continue;
+
PaintLayer* hit_layer = nullptr;
HitTestResult temp_result(result.GetHitTestRequest(),
result.GetHitTestLocation());
diff --git a/chromium/third_party/blink/renderer/core/paint/paint_layer.h b/chromium/third_party/blink/renderer/core/paint/paint_layer.h
index 24a1578f33f..4bd4db980ac 100644
--- a/chromium/third_party/blink/renderer/core/paint/paint_layer.h
+++ b/chromium/third_party/blink/renderer/core/paint/paint_layer.h
@@ -1030,6 +1030,11 @@ class CORE_EXPORT PaintLayer : public DisplayItemClient {
bool ShouldFragmentCompositedBounds(
const PaintLayer* compositing_layer = nullptr) const;
+ // See
+ // https://chromium.googlesource.com/chromium/src.git/+/master/third_party/blink/renderer/core/paint/README.md
+ // for the definition of a replaced normal-flow stacking element.
+ bool IsReplacedNormalFlowStacking();
+
private:
void SetNeedsCompositingInputsUpdateInternal();
diff --git a/chromium/third_party/blink/renderer/core/paint/paint_layer_painter.cc b/chromium/third_party/blink/renderer/core/paint/paint_layer_painter.cc
index 5eb8f0c3223..5e50057e5e4 100644
--- a/chromium/third_party/blink/renderer/core/paint/paint_layer_painter.cc
+++ b/chromium/third_party/blink/renderer/core/paint/paint_layer_painter.cc
@@ -983,6 +983,9 @@ PaintResult PaintLayerPainter::PaintChildren(
painting_info.GetGlobalPaintFlags()))
continue;
+ if (child->Layer()->IsReplacedNormalFlowStacking())
+ continue;
+
PaintLayerPaintingInfo child_painting_info = painting_info;
child_painting_info.scroll_offset_accumulation =
scroll_offset_accumulation_for_children;
diff --git a/chromium/third_party/blink/renderer/core/paint/svg_container_painter.cc b/chromium/third_party/blink/renderer/core/paint/svg_container_painter.cc
index aad110b234a..529a5525b10 100644
--- a/chromium/third_party/blink/renderer/core/paint/svg_container_painter.cc
+++ b/chromium/third_party/blink/renderer/core/paint/svg_container_painter.cc
@@ -6,11 +6,13 @@
#include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_container.h"
+#include "third_party/blink/renderer/core/layout/svg/layout_svg_foreign_object.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_viewport_container.h"
#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/paint/float_clip_recorder.h"
#include "third_party/blink/renderer/core/paint/object_painter.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
+#include "third_party/blink/renderer/core/paint/svg_foreign_object_painter.h"
#include "third_party/blink/renderer/core/paint/svg_paint_context.h"
#include "third_party/blink/renderer/core/svg/svg_svg_element.h"
#include "third_party/blink/renderer/platform/wtf/optional.h"
@@ -83,8 +85,11 @@ void SVGContainerPainter::Paint(const PaintInfo& paint_info) {
if (continue_rendering) {
for (LayoutObject* child = layout_svg_container_.FirstChild(); child;
child = child->NextSibling()) {
- if (!child->IsBoxModelObject() ||
- !ToLayoutBoxModelObject(child)->HasSelfPaintingLayer()) {
+ if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled() &&
+ child->IsSVGForeignObject()) {
+ SVGForeignObjectPainter(ToLayoutSVGForeignObject(*child))
+ .PaintLayer(paint_context.GetPaintInfo());
+ } else {
child->Paint(paint_context.GetPaintInfo(), IntPoint());
}
}
diff --git a/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.cc b/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.cc
index 3e8cc8eb07b..d78a5fa6162 100644
--- a/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.cc
+++ b/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.cc
@@ -11,6 +11,7 @@
#include "third_party/blink/renderer/core/paint/object_painter.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
+#include "third_party/blink/renderer/core/paint/paint_layer_painter.h"
#include "third_party/blink/renderer/core/paint/svg_paint_context.h"
#include "third_party/blink/renderer/platform/wtf/optional.h"
@@ -34,6 +35,34 @@ class BlockPainterDelegate : public LayoutBlock {
} // namespace
+void SVGForeignObjectPainter::PaintLayer(const PaintInfo& paint_info) {
+ if (!RuntimeEnabledFeatures::SlimmingPaintV175Enabled())
+ return;
+ if (paint_info.phase != PaintPhase::kForeground &&
+ paint_info.phase != PaintPhase::kSelection)
+ return;
+
+ // Early out in the case of trying to paint an image filter before
+ // pre-paint has finished.
+ if (!layout_svg_foreign_object_.FirstFragment().HasLocalBorderBoxProperties())
+ return;
+
+ // <foreignObject> is a replaced normal-flow stacking element.
+ // See IsReplacedNormalFlowStacking in paint_layer_painter.cc.
+ PaintLayerPaintingInfo layer_painting_info(
+ layout_svg_foreign_object_.Layer(),
+ // Reset to an infinite cull rect, for simplicity. Otherwise
+ // an adjustment would be needed for ancestor scrolling, and any
+ // SVG transforms would have to be taken into account. Further,
+ // cull rects under transform are intentionally reset to infinity,
+ // to improve cache invalidation performance in the pre-paint tree
+ // walk (see https://http://crrev.com/482854).
+ LayoutRect(LayoutRect::InfiniteIntRect()),
+ paint_info.GetGlobalPaintFlags(), LayoutSize());
+ PaintLayerPainter(*layout_svg_foreign_object_.Layer())
+ .Paint(paint_info.context, layer_painting_info, paint_info.PaintFlags());
+}
+
void SVGForeignObjectPainter::Paint(const PaintInfo& paint_info) {
if (!RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) {
if (paint_info.phase != PaintPhase::kForeground &&
diff --git a/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h b/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
index c60e19da08d..095518a2849 100644
--- a/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
+++ b/chromium/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
@@ -21,6 +21,8 @@ class SVGForeignObjectPainter {
: layout_svg_foreign_object_(layout_svg_foreign_object) {}
void Paint(const PaintInfo&);
+ void PaintLayer(const PaintInfo& paint_info);
+
private:
const LayoutSVGForeignObject& layout_svg_foreign_object_;
};
diff --git a/chromium/third_party/blink/renderer/devtools/front_end/sdk/NetworkManager.js b/chromium/third_party/blink/renderer/devtools/front_end/sdk/NetworkManager.js
index 27a5d0c9ad0..78542b58ff5 100644
--- a/chromium/third_party/blink/renderer/devtools/front_end/sdk/NetworkManager.js
+++ b/chromium/third_party/blink/renderer/devtools/front_end/sdk/NetworkManager.js
@@ -807,8 +807,9 @@ SDK.NetworkDispatcher = class {
if (blockedCrossSiteDocument) {
const message = Common.UIString(
- `Blocked current origin from receiving cross-site document at %s with MIME type %s.`, networkRequest.url(),
- networkRequest.mimeType);
+ `Cross-Origin Read Blocking (CORB) blocked cross-origin response %s with MIME type %s. ` +
+ `See https://www.chromestatus.com/feature/5629709824032768 for more details.`,
+ networkRequest.url(), networkRequest.mimeType);
this._manager.dispatchEventToListeners(
SDK.NetworkManager.Events.MessageGenerated,
{message: message, requestId: networkRequest.requestId(), warning: true});
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.cc
index a79e51741ff..7c21b9a4003 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.cc
@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h"
+#include "third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
namespace blink {
@@ -14,4 +15,8 @@ MediaControlButtonPanelElement::MediaControlButtonPanelElement(
SetShadowPseudoId(AtomicString("-internal-media-controls-button-panel"));
}
+bool MediaControlButtonPanelElement::KeepEventInNode(Event* event) {
+ return MediaControlElementsHelper::IsUserInteractionEvent(event);
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h
index 460207cd939..d8bb310ffbe 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_button_panel_element.h
@@ -18,6 +18,9 @@ class MediaControlsImpl;
class MediaControlButtonPanelElement final : public MediaControlDivElement {
public:
explicit MediaControlButtonPanelElement(MediaControlsImpl&);
+
+ private:
+ bool KeepEventInNode(Event*) override;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
index e345cb06019..82d819a4482 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
@@ -215,31 +215,17 @@ void MediaControlOverlayPlayButtonElement::MaybeJump(int seconds) {
}
void MediaControlOverlayPlayButtonElement::DefaultEventHandler(Event* event) {
- if (event->type() == EventTypeNames::click) {
+ if (ShouldCausePlayPause(event)) {
+ event->SetDefaultHandled();
+ MaybePlayPause();
+ } else if (event->type() == EventTypeNames::click) {
event->SetDefaultHandled();
- // Double tap to navigate should only be available on modern controls.
- if (!MediaControlsImpl::IsModern() || !event->IsMouseEvent()) {
- MaybePlayPause();
- return;
- }
-
- // If the event doesn't have position data we should just default to
- // play/pause.
- // TODO(beccahughes): Move to PointerEvent.
+ DCHECK(event->IsMouseEvent());
MouseEvent* mouse_event = ToMouseEvent(event);
- if (!mouse_event->HasPosition()) {
- MaybePlayPause();
- return;
- }
+ DCHECK(mouse_event->HasPosition());
- // If the click happened on the internal button or a margin around it then
- // we should play/pause.
- if (IsPointInRect(*internal_button_->getBoundingClientRect(),
- kInnerButtonTouchPaddingSize, mouse_event->clientX(),
- mouse_event->clientY())) {
- MaybePlayPause();
- } else if (!tap_timer_.IsActive()) {
+ if (!tap_timer_.IsActive()) {
// If there was not a previous touch and this was outside of the button
// then we should toggle visibility with a small unnoticeable delay in
// case their is a second tap.
@@ -274,14 +260,37 @@ void MediaControlOverlayPlayButtonElement::DefaultEventHandler(Event* event) {
}
tap_was_touch_event_.reset();
- event->SetDefaultHandled();
}
}
MediaControlInputElement::DefaultEventHandler(event);
}
bool MediaControlOverlayPlayButtonElement::KeepEventInNode(Event* event) {
- return MediaControlElementsHelper::IsUserInteractionEvent(event);
+ return ShouldCausePlayPause(event);
+}
+
+bool MediaControlOverlayPlayButtonElement::ShouldCausePlayPause(
+ Event* event) const {
+ // Only click events cause a play/pause.
+ if (event->type() != EventTypeNames::click)
+ return false;
+
+ // Double tap to navigate should only be available on modern controls.
+ if (!MediaControlsImpl::IsModern() || !event->IsMouseEvent())
+ return true;
+
+ // If the event doesn't have position data we should just default to
+ // play/pause.
+ // TODO(beccahughes): Move to PointerEvent.
+ MouseEvent* mouse_event = ToMouseEvent(event);
+ if (!mouse_event->HasPosition())
+ return true;
+
+ // If the click happened on the internal button or a margin around it then
+ // we should play/pause.
+ return IsPointInRect(*internal_button_->getBoundingClientRect(),
+ kInnerButtonTouchPaddingSize, mouse_event->clientX(),
+ mouse_event->clientY());
}
WebSize MediaControlOverlayPlayButtonElement::GetSizeOrDefault() const {
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.h b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.h
index c37986b8c94..17d81918cb2 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.h
@@ -81,6 +81,7 @@ class MODULES_EXPORT MediaControlOverlayPlayButtonElement final
void DefaultEventHandler(Event*) override;
bool KeepEventInNode(Event*) override;
+ bool ShouldCausePlayPause(Event*) const;
void MaybePlayPause();
void MaybeJump(int);
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
index 91e142fa70c..8010bae15c4 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
@@ -134,7 +134,8 @@ void MediaControlPanelElement::DefaultEventHandler(Event* event) {
}
bool MediaControlPanelElement::KeepEventInNode(Event* event) {
- return MediaControlElementsHelper::IsUserInteractionEvent(event);
+ return !MediaControlsImpl::IsModern() &&
+ MediaControlElementsHelper::IsUserInteractionEvent(event);
}
void MediaControlPanelElement::DidBecomeVisible() {
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
index 772ddeaa7d0..89c356e3e28 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -871,6 +871,7 @@ void MediaControlsImpl::MaybeShow() {
timeline_->OnControlsShown();
UpdateCSSClassFromState();
+ UpdateActingAsAudioControls();
}
void MediaControlsImpl::Hide() {
@@ -896,6 +897,7 @@ void MediaControlsImpl::Hide() {
timeline_->OnControlsHidden();
UpdateCSSClassFromState();
+ UpdateActingAsAudioControls();
}
bool MediaControlsImpl::IsVisible() const {
@@ -1603,13 +1605,7 @@ void MediaControlsImpl::OnLoadedMetadata() {
// to be changed.
Reset();
UpdateCSSClassFromState();
-
- if (ShouldActAsAudioControls() != is_acting_as_audio_controls_) {
- if (is_acting_as_audio_controls_)
- StopActingAsAudioControls();
- else
- StartActingAsAudioControls();
- }
+ UpdateActingAsAudioControls();
}
void MediaControlsImpl::OnEnteredFullscreen() {
@@ -1828,8 +1824,9 @@ MediaControlsImpl::ToggleClosedCaptions() {
bool MediaControlsImpl::ShouldActAsAudioControls() const {
// A video element should act like an audio element when it has an audio track
// but no video track.
- return IsModern() && MediaElement().IsHTMLVideoElement() &&
- MediaElement().HasAudio() && !MediaElement().HasVideo();
+ return IsModern() && MediaElement().ShouldShowControls() &&
+ MediaElement().IsHTMLVideoElement() && MediaElement().HasAudio() &&
+ !MediaElement().HasVideo();
}
void MediaControlsImpl::StartActingAsAudioControls() {
@@ -1850,6 +1847,15 @@ void MediaControlsImpl::StopActingAsAudioControls() {
Reset();
}
+void MediaControlsImpl::UpdateActingAsAudioControls() {
+ if (ShouldActAsAudioControls() != is_acting_as_audio_controls_) {
+ if (is_acting_as_audio_controls_)
+ StopActingAsAudioControls();
+ else
+ StartActingAsAudioControls();
+ }
+}
+
bool MediaControlsImpl::ShouldShowAudioControls() const {
return IsModern() &&
(MediaElement().IsHTMLAudioElement() || is_acting_as_audio_controls_);
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.h b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
index 555d6a1ffa3..6d801ad45e3 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
@@ -280,6 +280,7 @@ class MODULES_EXPORT MediaControlsImpl final : public HTMLDivElement,
bool ShouldActAsAudioControls() const;
void StartActingAsAudioControls();
void StopActingAsAudioControls();
+ void UpdateActingAsAudioControls();
// Returns true/false based on which set of controls to display.
bool ShouldShowAudioControls() const;
diff --git a/chromium/third_party/blink/renderer/platform/graphics/paint/cull_rect.h b/chromium/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
index 28967a81b74..324659b3d2b 100644
--- a/chromium/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
+++ b/chromium/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
@@ -53,6 +53,7 @@ class PLATFORM_EXPORT CullRect {
// TODO(chrishtr): temporary while we implement CullRect everywhere.
friend class FramePainter;
friend class GridPainter;
+ friend class SVGForeignObjectPainter;
friend class SVGInlineTextBoxPainter;
friend class SVGPaintContext;
friend class SVGRootInlineBoxPainter;
diff --git a/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc b/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
index bccae25dbef..efbba23f75f 100644
--- a/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
+++ b/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.cc
@@ -279,12 +279,15 @@ FloatClipRect GeometryMapper::LocalToAncestorClipRect(
return result;
}
-static const FloatRoundedRect& GetClipRect(
- const ClipPaintPropertyNode* clip_node,
- OverlayScrollbarClipBehavior clip_behavior) {
- return UNLIKELY(clip_behavior == kExcludeOverlayScrollbarSizeForHitTesting)
- ? clip_node->ClipRectExcludingOverlayScrollbars()
- : clip_node->ClipRect();
+static FloatClipRect GetClipRect(const ClipPaintPropertyNode* clip_node,
+ OverlayScrollbarClipBehavior clip_behavior) {
+ FloatClipRect clip_rect(
+ UNLIKELY(clip_behavior == kExcludeOverlayScrollbarSizeForHitTesting)
+ ? clip_node->ClipRectExcludingOverlayScrollbars()
+ : clip_node->ClipRect());
+ if (clip_node->ClipPath())
+ clip_rect.ClearIsTight();
+ return clip_rect;
}
FloatClipRect GeometryMapper::LocalToAncestorClipRectInternal(
@@ -301,7 +304,7 @@ FloatClipRect GeometryMapper::LocalToAncestorClipRectInternal(
if (descendant->Parent() == ancestor_clip &&
descendant->LocalTransformSpace() == ancestor_transform) {
success = true;
- return FloatClipRect(GetClipRect(descendant, clip_behavior));
+ return GetClipRect(descendant, clip_behavior);
}
FloatClipRect clip;
diff --git a/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc b/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
index dc38a49cb36..42f1e3d3bb5 100644
--- a/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
+++ b/chromium/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_test.cc
@@ -361,6 +361,23 @@ TEST_P(GeometryMapperTest, RoundedClip) {
CHECK_MAPPINGS();
}
+TEST_P(GeometryMapperTest, ClipPath) {
+ FloatRoundedRect rect(FloatRect(10, 10, 50, 50),
+ FloatRoundedRect::Radii(FloatSize(1, 1), FloatSize(),
+ FloatSize(), FloatSize()));
+ auto clip = CreateClipPathClip(ClipPaintPropertyNode::Root(),
+ TransformPaintPropertyNode::Root(),
+ FloatRoundedRect(10, 10, 50, 50));
+ local_state.SetClip(clip.get());
+
+ input_rect = FloatRect(0, 0, 100, 100);
+ expected_transformed_rect = input_rect;
+ expected_clip = FloatClipRect(FloatRect(10, 10, 50, 50));
+ expected_clip.ClearIsTight();
+ expected_visual_rect = expected_clip;
+ CHECK_MAPPINGS();
+}
+
TEST_P(GeometryMapperTest, TwoClips) {
FloatRoundedRect clip_rect1(
FloatRect(10, 10, 30, 40),
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc b/chromium/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc
index 88a956d43af..7dd29cbbd58 100644
--- a/chromium/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc
+++ b/chromium/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc
@@ -123,7 +123,9 @@ void FetchParameters::MakeSynchronous() {
// renderer.
resource_request_.SetPriority(ResourceLoadPriority::kHighest);
if (resource_request_.TimeoutInterval() == INT_MAX) {
- resource_request_.SetTimeoutInterval(10);
+ // This 1 day timeout is a temporary value to avoid the 100% CPU usage bug
+ // in stable (crbug/848210) and mitigate the timeout bug (crbug/844268).
+ resource_request_.SetTimeoutInterval(60 * 60 * 24);
}
// Skip ServiceWorker for synchronous loads from the main thread to avoid
// deadlocks.
diff --git a/chromium/third_party/blink/renderer/platform/mhtml/mhtml_archive.cc b/chromium/third_party/blink/renderer/platform/mhtml/mhtml_archive.cc
index 9319926f6c7..5d3cc087814 100644
--- a/chromium/third_party/blink/renderer/platform/mhtml/mhtml_archive.cc
+++ b/chromium/third_party/blink/renderer/platform/mhtml/mhtml_archive.cc
@@ -149,6 +149,10 @@ MHTMLArchive::MHTMLArchive() = default;
MHTMLArchive* MHTMLArchive::Create(const KURL& url,
scoped_refptr<const SharedBuffer> data) {
+ // |data| may be null if archive file is empty.
+ if (!data)
+ return nullptr;
+
// MHTML pages can only be loaded from local URLs, http/https URLs, and
// content URLs(Android specific). The latter is now allowed due to full
// sandboxing enforcement on MHTML pages.
diff --git a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_id.xtb b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_id.xtb
index b2e28052c1b..6ccce4dee4f 100644
--- a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_id.xtb
+++ b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_id.xtb
@@ -4,7 +4,7 @@
<translation id="1340068511406764697">Anda harus memberikan kode pos, misalnya <ph name="EXAMPLE" />. Tidak tahu kode pos Anda? Temukan <ph name="BEGIN_LINK" />di sini<ph name="END_LINK" />.</translation>
<translation id="2053553514270667976">Kode pos</translation>
<translation id="2096368010154057602">Departemen</translation>
-<translation id="2577522251608256362">RT/RW</translation>
+<translation id="2577522251608256362">Kawasan</translation>
<translation id="3050787670591910834">Anda harus memberikan kode pos, misalnya <ph name="EXAMPLE" />.</translation>
<translation id="3174168572213147020">Pulau</translation>
<translation id="3713769522066937702">Format kode pos ini tidak dikenali. Contoh kode pos yang valid: <ph name="EXAMPLE" />. Tidak tahu kode pos Anda? Temukan <ph name="BEGIN_LINK" />di sini<ph name="END_LINK" />.</translation>
diff --git a/chromium/third_party/opus/README.chromium b/chromium/third_party/opus/README.chromium
index 853f7eb235a..8ee3d507123 100644
--- a/chromium/third_party/opus/README.chromium
+++ b/chromium/third_party/opus/README.chromium
@@ -16,3 +16,4 @@ Local changes:
* set 'x' flags: "chmod 750 win32/genversion.bat"
* Apply https://git.xiph.org/?p=opus.git;a=commitdiff;h=46560534fcb5710a894a341c2f9526db58fd7087#patch1
* Apply https://github.com/xiph/opus/pull/73
+* Make sure HB_gain is not NaN in an attempt to fix chromium:826914
diff --git a/chromium/third_party/opus/src/src/opus_encoder.c b/chromium/third_party/opus/src/src/opus_encoder.c
index cd37fcdfe4a..e8e54be757e 100644
--- a/chromium/third_party/opus/src/src/opus_encoder.c
+++ b/chromium/third_party/opus/src/src/opus_encoder.c
@@ -1679,6 +1679,12 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_
/* Increasingly attenuate high band when it gets allocated fewer bits */
celt_rate = total_bitRate - st->silk_mode.bitRate;
HB_gain = Q15ONE - SHR32(celt_exp2(-celt_rate * QCONST16(1.f/1024, 10)), 1);
+#ifndef FIXED_POINT
+ /* Sanity check of high band gain */
+ if (celt_isnan(HB_gain)) {
+ HB_gain = Q15ONE;
+ }
+#endif
}
} else {
/* SILK gets all bits */
diff --git a/chromium/third_party/skia/src/core/SkScan_Path.cpp b/chromium/third_party/skia/src/core/SkScan_Path.cpp
index 2373e62d46f..1854a7edd74 100644
--- a/chromium/third_party/skia/src/core/SkScan_Path.cpp
+++ b/chromium/third_party/skia/src/core/SkScan_Path.cpp
@@ -564,7 +564,10 @@ static bool clip_to_limit(const SkRegion& orig, SkRegion* reduced) {
// Bias used for conservative rounding of float rects to int rects, to nudge the irects a little
// larger, so we don't "think" a path's bounds are inside a clip, when (due to numeric drift in
// the scan-converter) we might walk beyond the predicted limits.
-static const double kConservativeRoundBias = 0.5 + 0.5 / SK_FDot6One;
+//
+// This value has been determined trial and error: pick the smallest value (after the 0.5) that
+// fixes any problematic cases (e.g. crbug.com/844457)
+static const double kConservativeRoundBias = 0.5 + 1.0 / SK_FDot6One;
/**
* Round the value down. This is used to round the top and left of a rectangle,
diff --git a/chromium/tools/metrics/histograms/enums.xml b/chromium/tools/metrics/histograms/enums.xml
index 761ea1842ac..01eac14eac8 100644
--- a/chromium/tools/metrics/histograms/enums.xml
+++ b/chromium/tools/metrics/histograms/enums.xml
@@ -12982,6 +12982,8 @@ Called by update_net_error_codes.py.-->
<int value="436"
label="CertificateTransparencyEnforcementDisabledForLegacyCas"/>
<int value="437" label="MediaRouterCastAllowAllIPs"/>
+ <int value="447" label="ArcAppInstallEventLoggingEnabled"/>
+ <int value="451" label="EnableSyncConsent"/>
</enum>
<enum name="EnterprisePolicyInvalidations">
diff --git a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb
index e34e49d76fe..32630f2641e 100644
--- a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb
+++ b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb
@@ -26,7 +26,7 @@
<translation id="3812541808639806898">বৈকল্পিক পাঠ্য প্রদর্শক ছবি</translation>
<translation id="381767806621926835">কোনো "longdesc" বা "aria-describedat" অ্যাট্রিবিউটগুলির সাথে যেকোনো কিছুর উপর ডান-ক্লিক করুন৷</translation>
<translation id="4023902424053835668">তীর চিহ্নগুলি ব্যবহার করে ওয়েব পৃষ্ঠাগুলির পাঠ্য ব্রাউজ করুন৷</translation>
-<translation id="4388820049312272371">একটি দ্রুত ফ্ল্যাশের সাথে কার্সারের অবস্থান হাইলাইট করুন৷</translation>
+<translation id="4388820049312272371">একটি দ্রুত ফ্ল্যাশের সাথে কার্সারের লোকেশন হাইলাইট করুন৷</translation>
<translation id="4394049700291259645">অক্ষম</translation>
<translation id="4769065380738716500">চিত্রগুলিকে তাদের বিকল্প পাঠ্যের দ্বারা প্রতিস্থাপিত করা হয়েছে৷</translation>
<translation id="4896660567607030658">কোনো প্রতিক্রিয়া নেই, শুধুমাত্র কার্সার প্রদর্শন করুন৷</translation>
@@ -34,7 +34,7 @@
<translation id="4954450790315188152">যখন ক্যারেট ব্রাউজিং সক্ষম করা থাকবে:</translation>
<translation id="5041932793799765940">রঙের সমন্বয়</translation>
<translation id="5094574508723441140">বর্ধিত কনট্রাস্ট</translation>
-<translation id="5173942593318174089">কোনো অ্যানিমেশনের সাথে কার্সারের অবস্থান হাইলাইট করুন৷</translation>
+<translation id="5173942593318174089">কোনো অ্যানিমেশনের সাথে কার্সারের লোকেশন হাইলাইট করুন৷</translation>
<translation id="5287723860611749454">&lt;p&gt;দস্তাবেজটি বরাবর সরাতে নির্দেশক তীরচিহ্নগুলি ব্যবহার করুন৷ &lt;/p&gt;&lt;p&gt;সেই অবস্থানে কার্সার সরাতে যেকোনো স্থানে ক্লিক করুন৷ &lt;/p&gt; &lt;p&gt; পাঠ্য নির্বাচন করতে &lt;span class='key'&gt;Shift&lt;/span&gt; + তীরচিহ্নগুলি টিপুন৷</translation>
<translation id="5331422999063554397">ইনভার্টেড রঙ</translation>
<translation id="5555153510860501336">উচ্চ কনট্রাস্ট অক্ষম রয়েছে</translation>
diff --git a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_mr.xtb b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_mr.xtb
index a15ee0b6b70..6fa25569fc4 100644
--- a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_mr.xtb
+++ b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_mr.xtb
@@ -2,11 +2,11 @@
<!DOCTYPE translationbundle>
<translationbundle lang="mr">
<translation id="1287053896835709737">काळ्‍यावर पिवळे</translation>
-<translation id="1408730541890277710">त्यांच्या वैकल्पिक मजकूरासह प्रतिमा बदला.</translation>
+<translation id="1408730541890277710">त्यांच्या वैकल्पिक मजकूरासह इमेज बदला.</translation>
<translation id="145360476452865422">अ‍ॅनिमेशन धोरण:</translation>
<translation id="1555130319947370107">निळा</translation>
<translation id="1588438908519853928">सामान्य</translation>
-<translation id="1591070050619849194">सर्व प्रतिमा अॅनिमेशन अक्षम करा</translation>
+<translation id="1591070050619849194">सर्व इमेज अॅनिमेशन अक्षम करा</translation>
<translation id="1703735871906654364">कॅरेट ब्राउझिंग</translation>
<translation id="1791496371305830581">सर्व अ‍ॅनिमेटेड प्रतिमांना अनुमती द्या.</translation>
<translation id="1996252509865389616">सक्षम करायचे?</translation>
@@ -23,16 +23,16 @@
<translation id="3410969471888629217">साइट सानुकूलने विसरा</translation>
<translation id="3435896845095436175">सक्षम करा</translation>
<translation id="3622586652998721735">डीफॉल्‍ट योजना म्‍हणून सेट करा</translation>
-<translation id="3812541808639806898">प्रतिमा Alt मजकूर दर्शक</translation>
+<translation id="3812541808639806898">इमेज Alt मजकूर दर्शक</translation>
<translation id="381767806621926835">त्याच्या मोठ्या वर्णनावर प्रवेश करण्यासाठी "longdesc" किंवा "aria-describedat" विशेषतेसह कशावरही उजवीकडे-क्लिक करा.</translation>
<translation id="4023902424053835668">बाण की चा वापर करून वेबपृष्‍ठांचा मजकूर ब्राऊझ करा.</translation>
<translation id="4388820049312272371">द्रुत फ्‍लॅशने कर्सर स्‍थिती हायलाइट करा.</translation>
<translation id="4394049700291259645">अक्षम करा</translation>
-<translation id="4769065380738716500">प्रतिमा त्यांच्या alt मजकूराद्वारे पुनर्स्थित केल्या गेल्या आहेत.</translation>
+<translation id="4769065380738716500">इमेज त्यांच्या alt मजकूराद्वारे पुनर्स्थित केल्या गेल्या आहेत.</translation>
<translation id="4896660567607030658">अभिप्राय नाही, फक्त कर्सर दर्शवा</translation>
<translation id="4937901943818762779">अॅनिमेटेड प्रतिमांना, केवळ एकदाच अनुमती द्या.</translation>
<translation id="4954450790315188152">कॅरेट ब्राउझिंग सक्षम केले असते तेव्‍हा:</translation>
-<translation id="5041932793799765940">रंग समायोजन</translation>
+<translation id="5041932793799765940">रंग अॅडजस्टमेंट</translation>
<translation id="5094574508723441140">वाढविलेली तीव्रता</translation>
<translation id="5173942593318174089">अॅनिमेशनसह कर्सर स्‍थिती हायलाइट करा.</translation>
<translation id="5287723860611749454">&lt;p&gt;संपूर्ण दस्‍तऐवजामधून हलविण्‍यासाठी बाण की चा वापर करा. &lt;/p&gt;&lt;p&gt;त्या स्‍थानावर कर्सर हलविण्‍यासाठी कुठेही क्लिक करा. &lt;/p&gt; &lt;p&gt; मजकूर निवडण्यासाठी &lt;span class='key'&gt;Shift&lt;/span&gt; + बाण दाबा.&lt;/p&gt;</translation>
diff --git a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
index 1a394f503d4..29780e4ec83 100644
--- a/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
+++ b/chromium/ui/accessibility/extensions/strings/accessibility_extensions_strings_sw.xtb
@@ -22,7 +22,7 @@
<translation id="3252573918265662711">Usanidi</translation>
<translation id="3410969471888629217">Sahau ugeuzaji wa tovuti ili zikufae</translation>
<translation id="3435896845095436175">Washa</translation>
-<translation id="3622586652998721735">Weka uwe mpango chaguo-msingi</translation>
+<translation id="3622586652998721735">Weka uwe mpango chaguo msingi</translation>
<translation id="3812541808639806898">Kitazamaji cha Maandishi ya Alt ya Picha</translation>
<translation id="381767806621926835">Bofya kulia kwenye kitu chochote kilicho na kipengele cha "longdesc" au "aria-describedat" ili kufikia maelezo yake marefu.</translation>
<translation id="4023902424053835668">Vinjari maandishi ya kurasa za wavuti ukitumia vitufe vya vishale.</translation>
diff --git a/chromium/ui/android/delegated_frame_host_android.cc b/chromium/ui/android/delegated_frame_host_android.cc
index cea1307c5eb..31e31c71f9c 100644
--- a/chromium/ui/android/delegated_frame_host_android.cc
+++ b/chromium/ui/android/delegated_frame_host_android.cc
@@ -120,21 +120,23 @@ void DelegatedFrameHostAndroid::CopyFromCompositingSurface(
return;
}
- WindowAndroidCompositor* compositor =
- view_->GetWindowAndroid()->GetCompositor();
- compositor->IncrementReadbackRequestCount();
+ scoped_refptr<cc::Layer> readback_layer =
+ CreateSurfaceLayer(surface_info_.id(), surface_info_.size_in_pixels(),
+ !has_transparent_background_);
+ readback_layer->SetHideLayerAndSubtree(true);
+ view_->GetWindowAndroid()->GetCompositor()->AttachLayerForReadback(
+ readback_layer);
std::unique_ptr<viz::CopyOutputRequest> request =
std::make_unique<viz::CopyOutputRequest>(
viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP,
base::BindOnce(
[](base::OnceCallback<void(const SkBitmap&)> callback,
- base::WeakPtr<WindowAndroidCompositor> compositor_weak_ptr,
+ scoped_refptr<cc::Layer> readback_layer,
std::unique_ptr<viz::CopyOutputResult> result) {
- if (compositor_weak_ptr)
- compositor_weak_ptr->DecrementReadbackRequestCount();
+ readback_layer->RemoveFromParent();
std::move(callback).Run(result->AsSkBitmap());
},
- std::move(callback), compositor->GetWeakPtr()));
+ std::move(callback), std::move(readback_layer)));
if (src_subrect.IsEmpty()) {
request->set_area(gfx::Rect(surface_info_.size_in_pixels()));
diff --git a/chromium/ui/android/delegated_frame_host_android_unittest.cc b/chromium/ui/android/delegated_frame_host_android_unittest.cc
index fc0c6c4b95d..9ba18560e82 100644
--- a/chromium/ui/android/delegated_frame_host_android_unittest.cc
+++ b/chromium/ui/android/delegated_frame_host_android_unittest.cc
@@ -37,9 +37,7 @@ class MockDelegatedFrameHostAndroidClient
class MockWindowAndroidCompositor : public WindowAndroidCompositor {
public:
- MOCK_METHOD0(GetWeakPtr, base::WeakPtr<ui::WindowAndroidCompositor>());
- MOCK_METHOD0(IncrementReadbackRequestCount, void());
- MOCK_METHOD0(DecrementReadbackRequestCount, void());
+ MOCK_METHOD1(AttachLayerForReadback, void(scoped_refptr<cc::Layer>));
MOCK_METHOD1(DoRequestCopyOfOutputOnRootLayer, void(viz::CopyOutputRequest*));
MOCK_METHOD0(SetNeedsAnimate, void());
MOCK_METHOD0(GetResourceManager, ResourceManager&());
diff --git a/chromium/ui/android/window_android_compositor.h b/chromium/ui/android/window_android_compositor.h
index 740e69e8486..7446d2a4932 100644
--- a/chromium/ui/android/window_android_compositor.h
+++ b/chromium/ui/android/window_android_compositor.h
@@ -7,12 +7,15 @@
#include <memory>
-#include "base/memory/weak_ptr.h"
#include "components/viz/common/frame_sinks/copy_output_request.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "ui/android/ui_android_export.h"
#include "ui/compositor/compositor_lock.h"
+namespace cc {
+class Layer;
+}
+
namespace ui {
class ResourceManager;
@@ -22,9 +25,7 @@ class UI_ANDROID_EXPORT WindowAndroidCompositor {
public:
virtual ~WindowAndroidCompositor() {}
- virtual base::WeakPtr<WindowAndroidCompositor> GetWeakPtr() = 0;
- virtual void IncrementReadbackRequestCount() = 0;
- virtual void DecrementReadbackRequestCount() = 0;
+ virtual void AttachLayerForReadback(scoped_refptr<cc::Layer> layer) = 0;
virtual void RequestCopyOfOutputOnRootLayer(
std::unique_ptr<viz::CopyOutputRequest> request) = 0;
virtual void SetNeedsAnimate() = 0;
diff --git a/chromium/ui/base/material_design/material_design_controller.cc b/chromium/ui/base/material_design/material_design_controller.cc
index 5abb641690c..d5522971fc4 100644
--- a/chromium/ui/base/material_design/material_design_controller.cc
+++ b/chromium/ui/base/material_design/material_design_controller.cc
@@ -37,7 +37,7 @@ namespace {
// Whether to use MATERIAL_TOUCH_OPTIMIZED when a touch device is detected.
// Enabled by default on ChromeOS.
const base::Feature kTouchOptimizedUi = {"TouchOptimizedUi",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
MaterialDesignController::Mode GetDefaultTouchDeviceMode() {
return base::FeatureList::IsEnabled(kTouchOptimizedUi)
diff --git a/chromium/ui/display/display_switches.cc b/chromium/ui/display/display_switches.cc
index 880fba64afe..72da86a7ee2 100644
--- a/chromium/ui/display/display_switches.cc
+++ b/chromium/ui/display/display_switches.cc
@@ -76,13 +76,7 @@ const base::Feature kUseMonitorColorSpace{"UseMonitorColorSpace",
// TODO(malaykeshav): Remove this in M68 when the feature has been in stable for
// atleast one milestone.
constexpr base::Feature kEnableDisplayZoomSetting{
- "EnableDisplayZoomSetting",
-#if defined(OS_CHROMEOS)
- base::FEATURE_ENABLED_BY_DEFAULT
-#else
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
-};
+ "EnableDisplayZoomSetting", base::FEATURE_DISABLED_BY_DEFAULT};
bool IsDisplayZoomSettingEnabled() {
return base::FeatureList::IsEnabled(kEnableDisplayZoomSetting);
diff --git a/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc b/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc
index d0a82568e4a..186f4cc7cb7 100644
--- a/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc
@@ -32,8 +32,10 @@ scoped_refptr<ScanoutBuffer> GetBufferForPageFlipTest(
}
}
+ const std::vector<uint64_t>
+ modifiers; // TODO(dcastagna): use the right modifiers.
scoped_refptr<ScanoutBuffer> scanout_buffer =
- buffer_generator->Create(drm_device, format, size);
+ buffer_generator->Create(drm_device, format, modifiers, size);
if (scanout_buffer)
reusable_buffers->push_back(scanout_buffer);
diff --git a/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc b/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
index 3b3642b8d88..31fc4af5cbf 100644
--- a/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
@@ -134,7 +134,7 @@ void DrmOverlayValidatorTest::AddPlane(const ui::OverlayCheck_Params& params) {
scoped_refptr<ui::DrmDevice> drm =
window_->GetController()->GetAllocationDrmDevice();
scoped_refptr<ui::ScanoutBuffer> scanout_buffer = buffer_generator_->Create(
- drm, ui::GetFourCCFormatFromBufferFormat(params.format),
+ drm, ui::GetFourCCFormatFromBufferFormat(params.format), {},
params.buffer_size);
ui::OverlayPlane plane(std::move(scanout_buffer), params.plane_z_order,
params.transform, params.display_rect,
diff --git a/chromium/ui/ozone/platform/drm/gpu/drm_thread.cc b/chromium/ui/ozone/platform/drm/gpu/drm_thread.cc
index 6e187761ea9..d53e4acf1be 100644
--- a/chromium/ui/ozone/platform/drm/gpu/drm_thread.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/drm_thread.cc
@@ -41,10 +41,15 @@ class GbmBufferGenerator : public ScanoutBufferGenerator {
// ScanoutBufferGenerator:
scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) override {
scoped_refptr<GbmDevice> gbm(static_cast<GbmDevice*>(drm.get()));
- // TODO(dcastagna): Use GBM_BO_USE_MAP modifier once minigbm exposes it.
- return GbmBuffer::CreateBuffer(gbm, format, size, GBM_BO_USE_SCANOUT);
+ if (modifiers.size() > 0) {
+ return GbmBuffer::CreateBufferWithModifiers(
+ gbm, format, size, GBM_BO_USE_SCANOUT, modifiers);
+ } else {
+ return GbmBuffer::CreateBuffer(gbm, format, size, GBM_BO_USE_SCANOUT);
+ }
}
protected:
diff --git a/chromium/ui/ozone/platform/drm/gpu/drm_window_unittest.cc b/chromium/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
index 40a207ec1c3..0fa311fbfe4 100644
--- a/chromium/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
@@ -175,7 +175,7 @@ TEST_F(DrmWindowTest, CheckCallbackOnFailedSwap) {
ui::MockDumbBufferGenerator buffer_generator;
ui::DrmWindow* window = screen_manager_->GetWindow(kDefaultWidgetHandle);
ui::OverlayPlane plane(
- buffer_generator.Create(drm_, DRM_FORMAT_XRGB8888, window_size),
+ buffer_generator.Create(drm_, DRM_FORMAT_XRGB8888, {}, window_size),
base::kInvalidPlatformFile);
drm_->set_page_flip_expectation(false);
diff --git a/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.cc b/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.cc
index d6d0cf7efd1..0276dea0317 100644
--- a/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.cc
@@ -16,6 +16,7 @@ MockDumbBufferGenerator::~MockDumbBufferGenerator() {}
scoped_refptr<ScanoutBuffer> MockDumbBufferGenerator::Create(
const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) {
scoped_refptr<DrmBuffer> buffer(new DrmBuffer(drm));
SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height());
diff --git a/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.h b/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.h
index ecba7c761e9..f29f7e20ede 100644
--- a/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.h
+++ b/chromium/ui/ozone/platform/drm/gpu/mock_dumb_buffer_generator.h
@@ -19,6 +19,7 @@ class MockDumbBufferGenerator : public ScanoutBufferGenerator {
// ScanoutBufferGenerator:
scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) override;
private:
diff --git a/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.cc b/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.cc
index 08cd50acd63..c934a1db040 100644
--- a/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.cc
@@ -16,8 +16,11 @@ MockScanoutBufferGenerator::~MockScanoutBufferGenerator() {}
scoped_refptr<ScanoutBuffer> MockScanoutBufferGenerator::Create(
const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) {
- return CreateWithModifier(drm, format, DRM_FORMAT_MOD_NONE, size);
+ return CreateWithModifier(
+ drm, format, modifiers.empty() ? DRM_FORMAT_MOD_NONE : modifiers.front(),
+ size);
}
scoped_refptr<ScanoutBuffer> MockScanoutBufferGenerator::CreateWithModifier(
diff --git a/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h b/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h
index 2cb3161abaf..c904501b58b 100644
--- a/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h
+++ b/chromium/ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h
@@ -19,6 +19,7 @@ class MockScanoutBufferGenerator : public ScanoutBufferGenerator {
// ScanoutBufferGenerator:
scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) override;
scoped_refptr<ScanoutBuffer> CreateWithModifier(
diff --git a/chromium/ui/ozone/platform/drm/gpu/scanout_buffer.h b/chromium/ui/ozone/platform/drm/gpu/scanout_buffer.h
index b6b588562df..3d4f2c37f4b 100644
--- a/chromium/ui/ozone/platform/drm/gpu/scanout_buffer.h
+++ b/chromium/ui/ozone/platform/drm/gpu/scanout_buffer.h
@@ -61,6 +61,7 @@ class ScanoutBufferGenerator {
virtual scoped_refptr<ScanoutBuffer> Create(
const scoped_refptr<DrmDevice>& drm,
uint32_t format,
+ const std::vector<uint64_t>& modifiers,
const gfx::Size& size) = 0;
};
diff --git a/chromium/ui/ozone/platform/drm/gpu/screen_manager.cc b/chromium/ui/ozone/platform/drm/gpu/screen_manager.cc
index e8e477733e4..68cfa2a9735 100644
--- a/chromium/ui/ozone/platform/drm/gpu/screen_manager.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/screen_manager.cc
@@ -351,7 +351,7 @@ OverlayPlane ScreenManager::GetModesetBuffer(
gfx::BufferFormat format = display::DisplaySnapshot::PrimaryFormat();
uint32_t fourcc_format = ui::GetFourCCFormatForOpaqueFramebuffer(format);
-
+ const auto& modifiers = controller->GetFormatModifiers(fourcc_format);
if (window) {
const OverlayPlane* primary = window->GetLastModesetBuffer();
const DrmDevice* drm = controller->GetAllocationDrmDevice().get();
@@ -361,7 +361,6 @@ OverlayPlane ScreenManager::GetModesetBuffer(
// modifier either and we can reuse the buffer. Otherwise, check
// to see if the controller supports the buffers format
// modifier.
- const auto& modifiers = controller->GetFormatModifiers(fourcc_format);
if (modifiers.empty())
return *primary;
for (const uint64_t modifier : modifiers) {
@@ -373,7 +372,7 @@ OverlayPlane ScreenManager::GetModesetBuffer(
scoped_refptr<DrmDevice> drm = controller->GetAllocationDrmDevice();
scoped_refptr<ScanoutBuffer> buffer =
- buffer_generator_->Create(drm, fourcc_format, bounds.size());
+ buffer_generator_->Create(drm, fourcc_format, modifiers, bounds.size());
if (!buffer) {
LOG(ERROR) << "Failed to create scanout buffer";
return OverlayPlane(nullptr, 0, gfx::OVERLAY_TRANSFORM_INVALID, gfx::Rect(),
diff --git a/chromium/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc b/chromium/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc
index a50a0ac275a..24c7bdd0fec 100644
--- a/chromium/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc
+++ b/chromium/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc
@@ -498,8 +498,9 @@ TEST_F(ScreenManagerTest, EnableControllerWhenWindowHasBuffer) {
new ui::DrmWindow(1, device_manager_.get(), screen_manager_.get()));
window->Initialize(buffer_generator_.get());
window->SetBounds(GetPrimaryBounds());
+
scoped_refptr<ui::ScanoutBuffer> buffer = buffer_generator_->Create(
- drm_, DRM_FORMAT_XRGB8888, GetPrimaryBounds().size());
+ drm_, DRM_FORMAT_XRGB8888, {}, GetPrimaryBounds().size());
window->SchedulePageFlip(
std::vector<ui::OverlayPlane>(
1, ui::OverlayPlane(buffer, base::kInvalidPlatformFile)),
diff --git a/chromium/ui/strings/translations/ui_strings_fa.xtb b/chromium/ui/strings/translations/ui_strings_fa.xtb
index a1973a57996..0033ecf5b90 100644
--- a/chromium/ui/strings/translations/ui_strings_fa.xtb
+++ b/chromium/ui/strings/translations/ui_strings_fa.xtb
@@ -101,7 +101,7 @@
<translation id="6022924867608035986">پاک کردن نوشتار کادر جستجو</translation>
<translation id="6040143037577758943">بستن</translation>
<translation id="6119846243427417423">فعالسازی</translation>
-<translation id="6129953537138746214">فضا</translation>
+<translation id="6129953537138746214">فاصله</translation>
<translation id="6135826906199951471">حذف</translation>
<translation id="6142413573757616983"><ph name="QUANTITY" /> بایت/ثانیه</translation>
<translation id="6156262341071374681">بزرگ کردن برای مشاهده همه برنامه‌ها</translation>
diff --git a/chromium/ui/strings/translations/ui_strings_mr.xtb b/chromium/ui/strings/translations/ui_strings_mr.xtb
index 88b069f7341..deb9ca502c5 100644
--- a/chromium/ui/strings/translations/ui_strings_mr.xtb
+++ b/chromium/ui/strings/translations/ui_strings_mr.xtb
@@ -40,7 +40,7 @@
<translation id="2497284189126895209">सर्व फाइल</translation>
<translation id="2522350507219695259">कॅलिब्रेशन पूर्ण झाले</translation>
<translation id="252373100621549798">अज्ञात प्रदर्शन</translation>
-<translation id="2583543531130364912">आपली टचस्क्रीन कॅलिब्रेट करा</translation>
+<translation id="2583543531130364912">तुमची टचस्क्रीन कॅलिब्रेट करा</translation>
<translation id="2666092431469916601">शीर्ष</translation>
<translation id="2743387203779672305">क्लिपबोर्डवर कॉपी करा</translation>
<translation id="2803313416453193357">फोल्डर उघडा</translation>
diff --git a/chromium/ui/strings/translations/ui_strings_pt-BR.xtb b/chromium/ui/strings/translations/ui_strings_pt-BR.xtb
index 81faabeb213..c0a02b87213 100644
--- a/chromium/ui/strings/translations/ui_strings_pt-BR.xtb
+++ b/chromium/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -86,7 +86,7 @@
<translation id="5266161281976477809">Triângulo de divulgação</translation>
<translation id="528468243742722775">End</translation>
<translation id="5329858601952122676">&amp;Excluir</translation>
-<translation id="5463830097259460683">Emoticons e símbolos</translation>
+<translation id="5463830097259460683">Emojis e símbolos</translation>
<translation id="5476505524087279545">desmarcar</translation>
<translation id="5574202486608032840">Sistema <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
<translation id="5583640892426849032">Backspace</translation>
@@ -138,7 +138,7 @@
<translation id="7389409599945284130">- <ph name="MESSAGE" /></translation>
<translation id="7410957453383678442">{MINUTES,plural, =1{Um minuto restante}one{# minutos restantes}other{# minutos restantes}}</translation>
<translation id="7460907917090416791"><ph name="QUANTITY" /> TB</translation>
-<translation id="7507604095951736240">Emoticons</translation>
+<translation id="7507604095951736240">Emojis</translation>
<translation id="7658239707568436148">Cancelar</translation>
<translation id="7781829728241885113">Ontem</translation>
<translation id="7814458197256864873">Co&amp;piar</translation>
diff --git a/chromium/ui/views/animation/ink_drop_host_view.cc b/chromium/ui/views/animation/ink_drop_host_view.cc
index 8a60f37c9fb..922600f1375 100644
--- a/chromium/ui/views/animation/ink_drop_host_view.cc
+++ b/chromium/ui/views/animation/ink_drop_host_view.cc
@@ -297,9 +297,12 @@ InkDrop* InkDropHostView::GetInkDrop() {
}
void InkDropHostView::InstallInkDropMask(ui::Layer* ink_drop_layer) {
+// Layer masks don't work on Windows. See crbug.com/713359
+#if !defined(OS_WIN)
ink_drop_mask_ = CreateInkDropMask();
if (ink_drop_mask_)
ink_drop_layer->SetMaskLayer(ink_drop_mask_->layer());
+#endif
}
void InkDropHostView::ResetInkDropMask() {
diff --git a/chromium/ui/views/controls/native/native_view_host_aura.cc b/chromium/ui/views/controls/native/native_view_host_aura.cc
index 420b005a433..28033ad99d5 100644
--- a/chromium/ui/views/controls/native/native_view_host_aura.cc
+++ b/chromium/ui/views/controls/native/native_view_host_aura.cc
@@ -149,12 +149,17 @@ void NativeViewHostAura::RemovedFromWidget() {
}
bool NativeViewHostAura::SetCornerRadius(int corner_radius) {
+#if defined(OS_WIN)
+ // Layer masks don't work on Windows. See crbug.com/713359
+ return false;
+#else
mask_ = views::Painter::CreatePaintedLayer(
views::Painter::CreateSolidRoundRectPainter(SK_ColorBLACK,
corner_radius));
mask_->layer()->SetFillsBoundsOpaquely(false);
InstallMask();
return true;
+#endif
}
void NativeViewHostAura::InstallClip(int x, int y, int w, int h) {
diff --git a/chromium/ui/views/controls/textfield/textfield.cc b/chromium/ui/views/controls/textfield/textfield.cc
index 6cd683a7ee9..82cdf5b8669 100644
--- a/chromium/ui/views/controls/textfield/textfield.cc
+++ b/chromium/ui/views/controls/textfield/textfield.cc
@@ -1749,8 +1749,8 @@ gfx::RenderText* Textfield::GetRenderText() const {
return model_->render_text();
}
-gfx::Point Textfield::GetLastClickLocation() const {
- return selection_controller_.last_click_location();
+gfx::Point Textfield::GetLastClickRootLocation() const {
+ return selection_controller_.last_click_root_location();
}
base::string16 Textfield::GetSelectionClipboardText() const {
diff --git a/chromium/ui/views/controls/textfield/textfield.h b/chromium/ui/views/controls/textfield/textfield.h
index 9c4b28d689f..8f26353fa19 100644
--- a/chromium/ui/views/controls/textfield/textfield.h
+++ b/chromium/ui/views/controls/textfield/textfield.h
@@ -366,7 +366,8 @@ class VIEWS_EXPORT Textfield : public View,
// Returns the TextfieldModel's text/cursor/selection rendering model.
gfx::RenderText* GetRenderText() const;
- gfx::Point GetLastClickLocation() const;
+ // Returns the last click root location (relative to the root window).
+ gfx::Point GetLastClickRootLocation() const;
// Get the text from the selection clipboard.
virtual base::string16 GetSelectionClipboardText() const;
diff --git a/chromium/ui/views/selection_controller.cc b/chromium/ui/views/selection_controller.cc
index b4a3a403932..61d83ff3750 100644
--- a/chromium/ui/views/selection_controller.cc
+++ b/chromium/ui/views/selection_controller.cc
@@ -165,7 +165,7 @@ void SelectionController::TrackMouseClicks(const ui::MouseEvent& event) {
if (!last_click_time_.is_null() &&
time_delta.InMilliseconds() <= GetDoubleClickInterval() &&
!View::ExceededDragThreshold(event.root_location() -
- last_click_location_)) {
+ last_click_root_location_)) {
// Upon clicking after a triple click, the count should go back to
// double click and alternate between double and triple. This assignment
// maps 0 to 1, 1 to 2, 2 to 1.
@@ -174,7 +174,7 @@ void SelectionController::TrackMouseClicks(const ui::MouseEvent& event) {
aggregated_clicks_ = 0;
}
last_click_time_ = event.time_stamp();
- last_click_location_ = event.root_location();
+ last_click_root_location_ = event.root_location();
}
}
diff --git a/chromium/ui/views/selection_controller.h b/chromium/ui/views/selection_controller.h
index cb929fdd621..46ec0607d11 100644
--- a/chromium/ui/views/selection_controller.h
+++ b/chromium/ui/views/selection_controller.h
@@ -49,8 +49,10 @@ class VIEWS_EXPORT SelectionController {
void OnMouseReleased(const ui::MouseEvent& event);
void OnMouseCaptureLost();
- // Returns the latest click location.
- const gfx::Point& last_click_location() const { return last_click_location_; }
+ // Returns the latest click location in root coordinates.
+ const gfx::Point& last_click_root_location() const {
+ return last_click_root_location_;
+ }
// Sets whether the SelectionController should update or paste the
// selection clipboard on middle-click. Default is false.
@@ -86,7 +88,7 @@ class VIEWS_EXPORT SelectionController {
// State variables used to track the last click time and location.
base::TimeTicks last_click_time_;
- gfx::Point last_click_location_;
+ gfx::Point last_click_root_location_;
// Used to track double and triple clicks. Can take the values 0, 1 and 2
// which specify a single, double and triple click respectively. Alternates
diff --git a/chromium/v8/include/v8-platform.h b/chromium/v8/include/v8-platform.h
index 80e51aedc08..ddc200abab0 100644
--- a/chromium/v8/include/v8-platform.h
+++ b/chromium/v8/include/v8-platform.h
@@ -7,6 +7,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <stdlib.h> // For abort.
#include <memory>
#include <string>
diff --git a/chromium/v8/include/v8-version.h b/chromium/v8/include/v8-version.h
index c8d312b8552..ed513b5b80d 100644
--- a/chromium/v8/include/v8-version.h
+++ b/chromium/v8/include/v8-version.h
@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 6
#define V8_MINOR_VERSION 7
#define V8_BUILD_NUMBER 288
-#define V8_PATCH_LEVEL 33
+#define V8_PATCH_LEVEL 44
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
diff --git a/chromium/v8/src/builtins/builtins-date.cc b/chromium/v8/src/builtins/builtins-date.cc
index c60275d94ea..73c7098c06b 100644
--- a/chromium/v8/src/builtins/builtins-date.cc
+++ b/chromium/v8/src/builtins/builtins-date.cc
@@ -166,11 +166,13 @@ void ToDateString(double time_val, Vector<char> str, DateCache* date_cache,
kShortMonths[month], day, year);
return;
case kTimeOnly:
+ // TODO(842085): str may be silently truncated.
SNPrintF(str, "%02d:%02d:%02d GMT%c%02d%02d (%s)", hour, min, sec,
(timezone_offset < 0) ? '-' : '+', timezone_hour, timezone_min,
local_timezone);
return;
case kDateAndTime:
+ // TODO(842085): str may be silently truncated.
SNPrintF(str, "%s %s %02d %04d %02d:%02d:%02d GMT%c%02d%02d (%s)",
kShortWeekDays[weekday], kShortMonths[month], day, year, hour,
min, sec, (timezone_offset < 0) ? '-' : '+', timezone_hour,
diff --git a/chromium/v8/src/builtins/builtins-regexp-gen.cc b/chromium/v8/src/builtins/builtins-regexp-gen.cc
index 392c60d90e6..2cc354cb945 100644
--- a/chromium/v8/src/builtins/builtins-regexp-gen.cc
+++ b/chromium/v8/src/builtins/builtins-regexp-gen.cc
@@ -1866,27 +1866,9 @@ void RegExpBuiltinsAssembler::RegExpPrototypeMatchBody(Node* const context,
Branch(IsNull(result), &if_didnotmatch, &load_match);
BIND(&load_match);
- {
- Label fast_result(this), slow_result(this);
- BranchIfFastRegExpResult(context, result, &fast_result, &slow_result);
-
- BIND(&fast_result);
- {
- Node* const result_fixed_array = LoadElements(result);
- Node* const match = LoadFixedArrayElement(result_fixed_array, 0);
-
- var_match.Bind(ToString_Inline(context, match));
- Goto(&if_didmatch);
- }
-
- BIND(&slow_result);
- {
- // TODO(ishell): Use GetElement stub once it's available.
- Node* const match = GetProperty(context, result, smi_zero);
- var_match.Bind(ToString_Inline(context, match));
- Goto(&if_didmatch);
- }
- }
+ Node* const match = GetProperty(context, result, smi_zero);
+ var_match.Bind(ToString_Inline(context, match));
+ Goto(&if_didmatch);
}
BIND(&if_didnotmatch);
diff --git a/chromium/v8/src/compiler/js-call-reducer.cc b/chromium/v8/src/compiler/js-call-reducer.cc
index 8a50aa20f6d..451ec80a8d4 100644
--- a/chromium/v8/src/compiler/js-call-reducer.cc
+++ b/chromium/v8/src/compiler/js-call-reducer.cc
@@ -2506,6 +2506,7 @@ Reduction JSCallReducer::ReduceArrayIndexOfIncludes(
if (!NodeProperties::GetMapWitness(node).ToHandle(&receiver_map))
return NoChange();
+ if (receiver_map->instance_type() != JS_ARRAY_TYPE) return NoChange();
if (!IsFastElementsKind(receiver_map->elements_kind())) return NoChange();
Callable const callable =
@@ -2535,8 +2536,20 @@ Reduction JSCallReducer::ReduceArrayIndexOfIncludes(
Node* new_from_index = jsgraph()->ZeroConstant();
if (node->op()->ValueInputCount() >= 4) {
Node* from_index = NodeProperties::GetValueInput(node, 3);
- new_from_index = effect = graph()->NewNode(
- simplified()->CheckSmi(p.feedback()), from_index, effect, control);
+ from_index = effect = graph()->NewNode(simplified()->CheckSmi(p.feedback()),
+ from_index, effect, control);
+ // If the index is negative, it means the offset from the end and therefore
+ // needs to be added to the length. If the result is still negative, it
+ // needs to be clamped to 0.
+ new_from_index = graph()->NewNode(
+ common()->Select(MachineRepresentation::kTagged, BranchHint::kFalse),
+ graph()->NewNode(simplified()->NumberLessThan(), from_index,
+ jsgraph()->ZeroConstant()),
+ graph()->NewNode(
+ simplified()->NumberMax(),
+ graph()->NewNode(simplified()->NumberAdd(), length, from_index),
+ jsgraph()->ZeroConstant()),
+ from_index);
}
Node* context = NodeProperties::GetContextInput(node);
diff --git a/chromium/v8/src/compiler/representation-change.cc b/chromium/v8/src/compiler/representation-change.cc
index 71aa1433711..34b532a6c6c 100644
--- a/chromium/v8/src/compiler/representation-change.cc
+++ b/chromium/v8/src/compiler/representation-change.cc
@@ -608,6 +608,16 @@ Node* RepresentationChanger::MakeTruncatedInt32Constant(double value) {
return jsgraph()->Int32Constant(DoubleToInt32(value));
}
+void RepresentationChanger::InsertUnconditionalDeopt(Node* node,
+ DeoptimizeReason reason) {
+ Node* effect = NodeProperties::GetEffectInput(node);
+ Node* control = NodeProperties::GetControlInput(node);
+ Node* deopt =
+ jsgraph()->graph()->NewNode(simplified()->CheckIf(reason),
+ jsgraph()->Int32Constant(0), effect, control);
+ NodeProperties::ReplaceEffectInput(node, deopt);
+}
+
Node* RepresentationChanger::GetWord32RepresentationFor(
Node* node, MachineRepresentation output_rep, Type* output_type,
Node* use_node, UseInfo use_info) {
@@ -639,7 +649,17 @@ Node* RepresentationChanger::GetWord32RepresentationFor(
return jsgraph()->graph()->NewNode(
jsgraph()->common()->DeadValue(MachineRepresentation::kWord32), node);
} else if (output_rep == MachineRepresentation::kBit) {
- return node; // Sloppy comparison -> word32
+ CHECK(output_type->Is(Type::Boolean()));
+ if (use_info.truncation().IsUsedAsWord32()) {
+ return node;
+ } else {
+ CHECK(Truncation::Any(kIdentifyZeros)
+ .IsLessGeneralThan(use_info.truncation()));
+ CHECK_NE(use_info.type_check(), TypeCheckKind::kNone);
+ InsertUnconditionalDeopt(use_node, DeoptimizeReason::kNotASmi);
+ return jsgraph()->graph()->NewNode(
+ jsgraph()->common()->DeadValue(MachineRepresentation::kWord32), node);
+ }
} else if (output_rep == MachineRepresentation::kFloat64) {
if (output_type->Is(Type::Signed32())) {
op = machine()->ChangeFloat64ToInt32();
diff --git a/chromium/v8/src/compiler/representation-change.h b/chromium/v8/src/compiler/representation-change.h
index 571f13cd7dc..ed6c0a596e9 100644
--- a/chromium/v8/src/compiler/representation-change.h
+++ b/chromium/v8/src/compiler/representation-change.h
@@ -337,8 +337,8 @@ class RepresentationChanger final {
Node* InsertChangeTaggedSignedToInt32(Node* node);
Node* InsertChangeTaggedToFloat64(Node* node);
Node* InsertChangeUint32ToFloat64(Node* node);
-
Node* InsertConversion(Node* node, const Operator* op, Node* use_node);
+ void InsertUnconditionalDeopt(Node* node, DeoptimizeReason reason);
JSGraph* jsgraph() const { return jsgraph_; }
Isolate* isolate() const { return isolate_; }
diff --git a/chromium/v8/src/flag-definitions.h b/chromium/v8/src/flag-definitions.h
index 7c12b8ba72e..311620ebc5f 100644
--- a/chromium/v8/src/flag-definitions.h
+++ b/chromium/v8/src/flag-definitions.h
@@ -681,7 +681,13 @@ DEFINE_BOOL(incremental_marking_wrappers, true,
DEFINE_BOOL(trace_unmapper, false, "Trace the unmapping")
DEFINE_BOOL(parallel_scavenge, true, "parallel scavenge")
DEFINE_BOOL(trace_parallel_scavenge, false, "trace parallel scavenge")
-DEFINE_BOOL(write_protect_code_memory, true, "write protect code memory")
+#if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_ARM64)
+#define V8_WRITE_PROTECT_CODE_MEMORY_BOOL false
+#else
+#define V8_WRITE_PROTECT_CODE_MEMORY_BOOL true
+#endif
+DEFINE_BOOL(write_protect_code_memory, V8_WRITE_PROTECT_CODE_MEMORY_BOOL,
+ "write protect code memory")
#ifdef V8_CONCURRENT_MARKING
#define V8_CONCURRENT_MARKING_BOOL true
#else
diff --git a/chromium/v8/src/heap/array-buffer-tracker-inl.h b/chromium/v8/src/heap/array-buffer-tracker-inl.h
index 3ab5aefaaf6..8ed4a66664b 100644
--- a/chromium/v8/src/heap/array-buffer-tracker-inl.h
+++ b/chromium/v8/src/heap/array-buffer-tracker-inl.h
@@ -51,12 +51,15 @@ void ArrayBufferTracker::Unregister(Heap* heap, JSArrayBuffer* buffer) {
template <typename Callback>
void LocalArrayBufferTracker::Free(Callback should_free) {
size_t new_retained_size = 0;
+ Isolate* isolate = heap_->isolate();
for (TrackingData::iterator it = array_buffers_.begin();
it != array_buffers_.end();) {
- JSArrayBuffer* buffer = reinterpret_cast<JSArrayBuffer*>(*it);
- const size_t length = buffer->byte_length()->Number();
+ JSArrayBuffer* buffer = reinterpret_cast<JSArrayBuffer*>(it->first);
+ const size_t length = it->second;
if (should_free(buffer)) {
- buffer->FreeBackingStore();
+ JSArrayBuffer::FreeBackingStore(
+ isolate, {buffer->backing_store(), length, buffer->backing_store(),
+ buffer->allocation_mode(), buffer->is_wasm_memory()});
it = array_buffers_.erase(it);
} else {
new_retained_size += length;
@@ -87,7 +90,7 @@ void ArrayBufferTracker::FreeDead(Page* page, MarkingState* marking_state) {
void LocalArrayBufferTracker::Add(JSArrayBuffer* buffer, size_t length) {
DCHECK_GE(retained_size_ + length, retained_size_);
retained_size_ += length;
- auto ret = array_buffers_.insert(buffer);
+ auto ret = array_buffers_.insert({buffer, length});
USE(ret);
// Check that we indeed inserted a new value and did not overwrite an existing
// one (which would be a bug).
@@ -100,6 +103,7 @@ void LocalArrayBufferTracker::Remove(JSArrayBuffer* buffer, size_t length) {
TrackingData::iterator it = array_buffers_.find(buffer);
// Check that we indeed find a key to remove.
DCHECK(it != array_buffers_.end());
+ DCHECK_EQ(length, it->second);
array_buffers_.erase(it);
}
diff --git a/chromium/v8/src/heap/array-buffer-tracker.cc b/chromium/v8/src/heap/array-buffer-tracker.cc
index 1b870491ac2..589756fdc37 100644
--- a/chromium/v8/src/heap/array-buffer-tracker.cc
+++ b/chromium/v8/src/heap/array-buffer-tracker.cc
@@ -29,7 +29,7 @@ void LocalArrayBufferTracker::Process(Callback callback) {
size_t moved_size = 0;
for (TrackingData::iterator it = array_buffers_.begin();
it != array_buffers_.end();) {
- old_buffer = reinterpret_cast<JSArrayBuffer*>(*it);
+ old_buffer = reinterpret_cast<JSArrayBuffer*>(it->first);
const CallbackResult result = callback(old_buffer, &new_buffer);
if (result == kKeepEntry) {
new_retained_size += NumberToSize(old_buffer->byte_length());
@@ -51,14 +51,12 @@ void LocalArrayBufferTracker::Process(Callback callback) {
}
it = array_buffers_.erase(it);
} else if (result == kRemoveEntry) {
- // Size of freed memory is computed to avoid looking at dead objects.
- void* allocation_base = old_buffer->allocation_base();
- DCHECK_NOT_NULL(allocation_base);
-
+ // We pass backing_store() and stored length to the collector for freeing
+ // the backing store. Wasm allocations will go through their own tracker
+ // based on the backing store.
backing_stores_to_free->emplace_back(
- allocation_base, old_buffer->allocation_length(),
- old_buffer->backing_store(), old_buffer->allocation_mode(),
- old_buffer->is_wasm_memory());
+ old_buffer->backing_store(), it->second, old_buffer->backing_store(),
+ old_buffer->allocation_mode(), old_buffer->is_wasm_memory());
it = array_buffers_.erase(it);
} else {
UNREACHABLE();
diff --git a/chromium/v8/src/heap/array-buffer-tracker.h b/chromium/v8/src/heap/array-buffer-tracker.h
index 6bf4f79261b..c9c1a5b645e 100644
--- a/chromium/v8/src/heap/array-buffer-tracker.h
+++ b/chromium/v8/src/heap/array-buffer-tracker.h
@@ -5,7 +5,7 @@
#ifndef V8_HEAP_ARRAY_BUFFER_TRACKER_H_
#define V8_HEAP_ARRAY_BUFFER_TRACKER_H_
-#include <unordered_set>
+#include <unordered_map>
#include "src/allocation.h"
#include "src/base/platform/mutex.h"
@@ -111,7 +111,12 @@ class LocalArrayBufferTracker {
}
};
- typedef std::unordered_set<JSArrayBuffer*, Hasher> TrackingData;
+ // Keep track of the backing store and the corresponding length at time of
+ // registering. The length is accessed from JavaScript and can be a
+ // HeapNumber. The reason for tracking the length is that in the case of
+ // length being a HeapNumber, the buffer and its length may be stored on
+ // different memory pages, making it impossible to guarantee order of freeing.
+ typedef std::unordered_map<JSArrayBuffer*, size_t, Hasher> TrackingData;
Heap* heap_;
// The set contains raw heap pointers which are removed by the GC upon
diff --git a/chromium/v8/src/inspector/wasm-translation.cc b/chromium/v8/src/inspector/wasm-translation.cc
index 1982f4932ab..4754af5442c 100644
--- a/chromium/v8/src/inspector/wasm-translation.cc
+++ b/chromium/v8/src/inspector/wasm-translation.cc
@@ -88,7 +88,13 @@ class WasmTranslation::TranslatorImpl::RawTranslator
void TranslateBack(TransLocation*) override {}
const WasmSourceInformation& GetSourceInformation(v8::Isolate*,
int index) override {
- static const WasmSourceInformation singleEmptySourceInformation;
+ // NOTE(mmarchini): prior to 3.9, clang won't accept const object
+ // instantiations with non-user-provided default constructors, unless an
+ // empty initializer is explicitly given. Node.js still supports older
+ // clang versions, therefore we must take care when using const objects
+ // with default constructors. For more informations, please refer to CWG
+ // 253 (http://open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#253)
+ static const WasmSourceInformation singleEmptySourceInformation = {};
return singleEmptySourceInformation;
}
const String16 GetHash(v8::Isolate*, int index) override {
diff --git a/chromium/v8/src/intl.cc b/chromium/v8/src/intl.cc
index 5c2cb4e8fe1..139bb4daf54 100644
--- a/chromium/v8/src/intl.cc
+++ b/chromium/v8/src/intl.cc
@@ -358,17 +358,17 @@ ICUTimezoneCache::~ICUTimezoneCache() { Clear(); }
const char* ICUTimezoneCache::LocalTimezone(double time_ms) {
bool is_dst = DaylightSavingsOffset(time_ms) != 0;
- char* name = is_dst ? dst_timezone_name_ : timezone_name_;
- if (name[0] == '\0') {
+ std::string* name = is_dst ? &dst_timezone_name_ : &timezone_name_;
+ if (name->empty()) {
icu::UnicodeString result;
GetTimeZone()->getDisplayName(is_dst, icu::TimeZone::LONG, result);
result += '\0';
- icu::CheckedArrayByteSink byte_sink(name, kMaxTimezoneChars);
+ icu::StringByteSink<std::string> byte_sink(name);
result.toUTF8(byte_sink);
- CHECK(!byte_sink.Overflowed());
}
- return const_cast<const char*>(name);
+ DCHECK(!name->empty());
+ return name->c_str();
}
icu::TimeZone* ICUTimezoneCache::GetTimeZone() {
@@ -418,8 +418,8 @@ double ICUTimezoneCache::LocalTimeOffset(double time_ms, bool is_utc) {
void ICUTimezoneCache::Clear() {
delete timezone_;
timezone_ = nullptr;
- timezone_name_[0] = '\0';
- dst_timezone_name_[0] = '\0';
+ timezone_name_.clear();
+ dst_timezone_name_.clear();
}
} // namespace internal
diff --git a/chromium/v8/src/intl.h b/chromium/v8/src/intl.h
index 967a3e92777..627cb4980de 100644
--- a/chromium/v8/src/intl.h
+++ b/chromium/v8/src/intl.h
@@ -9,6 +9,8 @@
#ifndef V8_INTL_H_
#define V8_INTL_H_
+#include <string>
+
#include "src/base/timezone-cache.h"
#include "src/objects.h"
#include "src/objects/string.h"
@@ -64,9 +66,8 @@ class ICUTimezoneCache : public base::TimezoneCache {
icu::TimeZone* timezone_;
- static const int32_t kMaxTimezoneChars = 100;
- char timezone_name_[kMaxTimezoneChars];
- char dst_timezone_name_[kMaxTimezoneChars];
+ std::string timezone_name_;
+ std::string dst_timezone_name_;
};
} // namespace internal
diff --git a/chromium/v8/src/isolate.cc b/chromium/v8/src/isolate.cc
index 2502ea3edd0..adb30b12ace 100644
--- a/chromium/v8/src/isolate.cc
+++ b/chromium/v8/src/isolate.cc
@@ -9,6 +9,7 @@
#include <atomic>
#include <fstream> // NOLINT(readability/streams)
#include <sstream>
+#include <unordered_map>
#include "src/api.h"
#include "src/assembler-inl.h"
@@ -178,8 +179,6 @@ void ThreadLocalTop::Free() {
base::Thread::LocalStorageKey Isolate::isolate_key_;
base::Thread::LocalStorageKey Isolate::thread_id_key_;
base::Thread::LocalStorageKey Isolate::per_isolate_thread_data_key_;
-base::LazyMutex Isolate::thread_data_table_mutex_ = LAZY_MUTEX_INITIALIZER;
-Isolate::ThreadDataTable* Isolate::thread_data_table_ = nullptr;
base::Atomic32 Isolate::isolate_counter_ = 0;
#if DEBUG
base::Atomic32 Isolate::isolate_key_created_ = 0;
@@ -190,13 +189,13 @@ Isolate::PerIsolateThreadData*
ThreadId thread_id = ThreadId::Current();
PerIsolateThreadData* per_thread = nullptr;
{
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- per_thread = thread_data_table_->Lookup(this, thread_id);
+ base::LockGuard<base::Mutex> lock_guard(&thread_data_table_mutex_);
+ per_thread = thread_data_table_.Lookup(thread_id);
if (per_thread == nullptr) {
per_thread = new PerIsolateThreadData(this, thread_id);
- thread_data_table_->Insert(per_thread);
+ thread_data_table_.Insert(per_thread);
}
- DCHECK(thread_data_table_->Lookup(this, thread_id) == per_thread);
+ DCHECK(thread_data_table_.Lookup(thread_id) == per_thread);
}
return per_thread;
}
@@ -207,12 +206,11 @@ void Isolate::DiscardPerThreadDataForThisThread() {
if (thread_id_int) {
ThreadId thread_id = ThreadId(thread_id_int);
DCHECK(!thread_manager_->mutex_owner_.Equals(thread_id));
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- PerIsolateThreadData* per_thread =
- thread_data_table_->Lookup(this, thread_id);
+ base::LockGuard<base::Mutex> lock_guard(&thread_data_table_mutex_);
+ PerIsolateThreadData* per_thread = thread_data_table_.Lookup(thread_id);
if (per_thread) {
DCHECK(!per_thread->thread_state_);
- thread_data_table_->Remove(per_thread);
+ thread_data_table_.Remove(per_thread);
}
}
}
@@ -228,23 +226,20 @@ Isolate::PerIsolateThreadData* Isolate::FindPerThreadDataForThread(
ThreadId thread_id) {
PerIsolateThreadData* per_thread = nullptr;
{
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- per_thread = thread_data_table_->Lookup(this, thread_id);
+ base::LockGuard<base::Mutex> lock_guard(&thread_data_table_mutex_);
+ per_thread = thread_data_table_.Lookup(thread_id);
}
return per_thread;
}
void Isolate::InitializeOncePerProcess() {
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- CHECK_NULL(thread_data_table_);
isolate_key_ = base::Thread::CreateThreadLocalKey();
#if DEBUG
base::Relaxed_Store(&isolate_key_created_, 1);
#endif
thread_id_key_ = base::Thread::CreateThreadLocalKey();
per_isolate_thread_data_key_ = base::Thread::CreateThreadLocalKey();
- thread_data_table_ = new Isolate::ThreadDataTable();
}
Address Isolate::get_address_from_id(IsolateAddressId id) {
@@ -2292,14 +2287,9 @@ char* Isolate::RestoreThread(char* from) {
return from + sizeof(ThreadLocalTop);
}
-Isolate::ThreadDataTable::ThreadDataTable() : list_(nullptr) {}
+Isolate::ThreadDataTable::ThreadDataTable() : table_() {}
-Isolate::ThreadDataTable::~ThreadDataTable() {
- // TODO(svenpanne) The assertion below would fire if an embedder does not
- // cleanly dispose all Isolates before disposing v8, so we are conservative
- // and leave it out for now.
- // DCHECK_NULL(list_);
-}
+Isolate::ThreadDataTable::~ThreadDataTable() {}
void Isolate::ReleaseManagedObjects() {
Isolate::ManagedObjectFinalizer* current =
@@ -2346,40 +2336,30 @@ Isolate::PerIsolateThreadData::~PerIsolateThreadData() {
#endif
}
-
-Isolate::PerIsolateThreadData*
- Isolate::ThreadDataTable::Lookup(Isolate* isolate,
- ThreadId thread_id) {
- for (PerIsolateThreadData* data = list_; data != nullptr;
- data = data->next_) {
- if (data->Matches(isolate, thread_id)) return data;
- }
- return nullptr;
+Isolate::PerIsolateThreadData* Isolate::ThreadDataTable::Lookup(
+ ThreadId thread_id) {
+ auto t = table_.find(thread_id);
+ if (t == table_.end()) return nullptr;
+ return t->second;
}
void Isolate::ThreadDataTable::Insert(Isolate::PerIsolateThreadData* data) {
- if (list_ != nullptr) list_->prev_ = data;
- data->next_ = list_;
- list_ = data;
+ bool inserted = table_.insert(std::make_pair(data->thread_id_, data)).second;
+ CHECK(inserted);
}
void Isolate::ThreadDataTable::Remove(PerIsolateThreadData* data) {
- if (list_ == data) list_ = data->next_;
- if (data->next_ != nullptr) data->next_->prev_ = data->prev_;
- if (data->prev_ != nullptr) data->prev_->next_ = data->next_;
+ table_.erase(data->thread_id_);
delete data;
}
-
-void Isolate::ThreadDataTable::RemoveAllThreads(Isolate* isolate) {
- PerIsolateThreadData* data = list_;
- while (data != nullptr) {
- PerIsolateThreadData* next = data->next_;
- if (data->isolate() == isolate) Remove(data);
- data = next;
+void Isolate::ThreadDataTable::RemoveAllThreads() {
+ for (auto& x : table_) {
+ delete x.second;
}
+ table_.clear();
}
@@ -2554,10 +2534,6 @@ Isolate::Isolate(bool enable_serializer)
cancelable_task_manager_(new CancelableTaskManager()),
abort_on_uncaught_exception_callback_(nullptr),
total_regexp_code_generated_(0) {
- {
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- CHECK(thread_data_table_);
- }
id_ = base::Relaxed_AtomicIncrement(&isolate_counter_, 1);
TRACE_ISOLATE(constructor);
@@ -2615,8 +2591,8 @@ void Isolate::TearDown() {
Deinit();
{
- base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
- thread_data_table_->RemoveAllThreads(this);
+ base::LockGuard<base::Mutex> lock_guard(&thread_data_table_mutex_);
+ thread_data_table_.RemoveAllThreads();
}
#ifdef DEBUG
@@ -2630,12 +2606,6 @@ void Isolate::TearDown() {
}
-void Isolate::GlobalTearDown() {
- delete thread_data_table_;
- thread_data_table_ = nullptr;
-}
-
-
void Isolate::ClearSerializerData() {
delete external_reference_map_;
external_reference_map_ = nullptr;
diff --git a/chromium/v8/src/isolate.h b/chromium/v8/src/isolate.h
index 16b4d663cb8..75b447f1629 100644
--- a/chromium/v8/src/isolate.h
+++ b/chromium/v8/src/isolate.h
@@ -8,6 +8,7 @@
#include <cstddef>
#include <memory>
#include <queue>
+#include <unordered_map>
#include <vector>
#include "include/v8-inspector.h"
@@ -248,6 +249,8 @@ class ThreadId {
return *this;
}
+ bool operator==(const ThreadId& other) const { return Equals(other); }
+
// Returns ThreadId for current thread.
static ThreadId Current() { return ThreadId(GetCurrentThreadId()); }
@@ -288,7 +291,6 @@ class ThreadId {
friend class Isolate;
};
-
#define FIELD_ACCESSOR(type, name) \
inline void set_##name(type v) { name##_ = v; } \
inline type name() const { return name##_; }
@@ -551,8 +553,6 @@ class Isolate {
void ReleaseManagedObjects();
- static void GlobalTearDown();
-
void ClearSerializerData();
// Find the PerThread for this particular (isolate, thread) combination
@@ -1398,20 +1398,24 @@ class Isolate {
void* embedder_data_[Internals::kNumIsolateDataSlots];
Heap heap_;
- // The per-process lock should be acquired before the ThreadDataTable is
- // modified.
class ThreadDataTable {
public:
ThreadDataTable();
~ThreadDataTable();
- PerIsolateThreadData* Lookup(Isolate* isolate, ThreadId thread_id);
+ PerIsolateThreadData* Lookup(ThreadId thread_id);
void Insert(PerIsolateThreadData* data);
void Remove(PerIsolateThreadData* data);
- void RemoveAllThreads(Isolate* isolate);
+ void RemoveAllThreads();
private:
- PerIsolateThreadData* list_;
+ struct Hasher {
+ std::size_t operator()(const ThreadId& t) const {
+ return std::hash<int>()(t.ToInteger());
+ }
+ };
+
+ std::unordered_map<ThreadId, PerIsolateThreadData*, Hasher> table_;
};
// These items form a stack synchronously with threads Enter'ing and Exit'ing
@@ -1439,12 +1443,15 @@ class Isolate {
DISALLOW_COPY_AND_ASSIGN(EntryStackItem);
};
- static base::LazyMutex thread_data_table_mutex_;
+ // TODO(kenton@cloudflare.com): This mutex can be removed if
+ // thread_data_table_ is always accessed under the isolate lock. I do not
+ // know if this is the case, so I'm preserving it for now.
+ base::Mutex thread_data_table_mutex_;
static base::Thread::LocalStorageKey per_isolate_thread_data_key_;
static base::Thread::LocalStorageKey isolate_key_;
static base::Thread::LocalStorageKey thread_id_key_;
- static ThreadDataTable* thread_data_table_;
+ ThreadDataTable thread_data_table_;
// A global counter for all generated Isolates, might overflow.
static base::Atomic32 isolate_counter_;
diff --git a/chromium/v8/src/objects.cc b/chromium/v8/src/objects.cc
index 1412e4baf36..8057cb837b1 100644
--- a/chromium/v8/src/objects.cc
+++ b/chromium/v8/src/objects.cc
@@ -19122,7 +19122,7 @@ void JSArrayBuffer::Neuter() {
}
}
-void JSArrayBuffer::FreeBackingStore() {
+void JSArrayBuffer::FreeBackingStoreFromMainThread() {
if (allocation_base() == nullptr) {
return;
}
diff --git a/chromium/v8/src/objects/js-array.h b/chromium/v8/src/objects/js-array.h
index 157ce29c6f2..6df0af17cb8 100644
--- a/chromium/v8/src/objects/js-array.h
+++ b/chromium/v8/src/objects/js-array.h
@@ -140,6 +140,8 @@ class JSArrayBuffer : public JSObject {
// [backing_store]: backing memory for this array
DECL_ACCESSORS(backing_store, void)
+ // For non-wasm, allocation_length and allocation_base are byte_length and
+ // backing_store, respectively.
inline size_t allocation_length() const;
inline void* allocation_base() const;
@@ -194,7 +196,7 @@ class JSArrayBuffer : public JSObject {
// Sets whether the buffer is tracked by the WasmMemoryTracker.
void set_is_wasm_memory(bool is_wasm_memory);
- void FreeBackingStore();
+ void FreeBackingStoreFromMainThread();
static void FreeBackingStore(Isolate* isolate, Allocation allocation);
V8_EXPORT_PRIVATE static void Setup(
diff --git a/chromium/v8/src/v8.cc b/chromium/v8/src/v8.cc
index ab4918efec2..d3b4c471a4f 100644
--- a/chromium/v8/src/v8.cc
+++ b/chromium/v8/src/v8.cc
@@ -49,7 +49,6 @@ void V8::TearDown() {
Bootstrapper::TearDownExtensions();
ElementsAccessor::TearDown();
RegisteredExtension::UnregisterAll();
- Isolate::GlobalTearDown();
sampler::Sampler::TearDown();
FlagList::ResetAllFlags(); // Frees memory held by string arguments.
}
diff --git a/chromium/v8/src/wasm/wasm-memory.cc b/chromium/v8/src/wasm/wasm-memory.cc
index cd55cc1cf7f..9bb8002a4f0 100644
--- a/chromium/v8/src/wasm/wasm-memory.cc
+++ b/chromium/v8/src/wasm/wasm-memory.cc
@@ -294,7 +294,7 @@ void DetachMemoryBuffer(Isolate* isolate, Handle<JSArrayBuffer> buffer,
// by Neuter. This means there is a dangling pointer until we neuter the
// buffer. Since there is no way for the user to directly call
// FreeBackingStore, we can ensure this is safe.
- buffer->FreeBackingStore();
+ buffer->FreeBackingStoreFromMainThread();
}
}