diff --git a/AUTHORS b/AUTHORS index e3ea698..f002fb26 100644 --- a/AUTHORS +++ b/AUTHORS
@@ -856,6 +856,7 @@ Mingeun Park <mindal99546@gmail.com> Minggang Wang <minggang.wang@intel.com> Mingmin Xie <melvinxie@gmail.com> +Mingming Xu <mingming1.xu@intel.com> Minjeong Kim <deoxyribonucleicacid150@gmail.com> Minjeong Lee <apenr1234@gmail.com> Minseok Koo <kei98301@gmail.com>
diff --git a/DEPS b/DEPS index 9a9ecd9..39e56950 100644 --- a/DEPS +++ b/DEPS
@@ -304,15 +304,15 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '5a51583d09dd2577676d6a627bb868a0d936f1ca', + 'skia_revision': '3704033dd106683c0a2c32178becee105d8cdfc7', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '46e349bb83ea96bd63b10c659a72e3821c98c496', + 'v8_revision': '29c8fed90670209095d32450989d82f9a0f0486f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '8964933f60561b22a1e1340d9e6cdc79901f527e', + 'angle_revision': '3f5fcf15e6e80c7c06e2b3d94f7b231d9995e9c9', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -383,7 +383,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'b9a4a2ed8bfef0db561f29cda54532f0730af8bb', + 'devtools_frontend_revision': 'd40275a6af622399f1f1368133d406881edc05c7', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -419,7 +419,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'd21f362b9c6bb8c3c8a6cb8404d4a6aaf8834abd', + 'dawn_revision': '8b032edf0c5d618320d476f0b1c8b4b4eb935935', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -770,12 +770,12 @@ 'src/clank': { 'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' + - '6fd7cd3e3b2c483dc158739e4c0dedfb0eb0efb9', + '5cfa4ab1503d9ab78b8d9961bc8c471d56634185', 'condition': 'checkout_android and checkout_src_internal', }, 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'd3af706919c5ba1c420d0dc8a39371b1e3dfe736', + 'url': Var('chromium_git') + '/website.git' + '@' + '331c66794c361d3e976a4f1d7b914e3d9438d494', }, 'src/ios/third_party/earl_grey2/src': { @@ -1210,7 +1210,7 @@ Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + 'ca1f77bf9d8b7f33bde9b41c60d3dfd40701e3e2', + 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '6c74db74fe57716397b716c640108fbcdef9b0cd', 'condition': 'checkout_src_internal', }, @@ -1644,7 +1644,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'a0d461d40f902c8223780bbd1185c813c03f5b99', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'cff532835a1cb2d38c524feadaf82076cd213e74', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1782,14 +1782,14 @@ 'packages': [ { 'package': 'chromium/third_party/turbine', - 'version': 'tkDRS82bARx4x6zEAw-ZmPcOBVY2WnTvK2Gai3TqPSsC', + 'version': 'uQFvRkwygckj0pmxUx9_4WqWm-VdcDxs2o1t3xyEDjYC', }, ], 'condition': 'checkout_android', 'dep_type': 'cipd', }, - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@d52b983a8d1023512b507f5712352fc782e71c38', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@dda150867e4a7978ed784593e884f811e59cec6e', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907', @@ -1826,10 +1826,10 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'd1b65aa5a88f6efd900604dfcda840154e9f16e2', 'src/third_party/webgpu-cts/src': - Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'bb8f114de913ecece46b82b59d26775327dcf4ea', + Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '408f94109dd5698c0507aa09facd04a55db8c120', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'c01410ea1ebd21a8f00f2b41f3a2de33e393e28b', + Var('webrtc_git') + '/src.git' + '@' + 'efbe75361705198cab3f4eb3c12368fd3b7930ef', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1899,7 +1899,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@79b2da3cddd3985b72ec877165d57e461d383cd2', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@a7dcbf630910e2c883dbbe4811d363ea5c2717d4', 'condition': 'checkout_src_internal', }, @@ -1929,7 +1929,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': 'bEICrBjzBwOmHev00rZ7D-QG6eIMKirA4sjMYAvNo1YC', + 'version': 'pr0vr6pcU_92NTeSDPr7JMbvjlg0dk7XBH5ILatjVNcC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1951,7 +1951,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'R9R-YO1XBGojH8iAHepK8ucceT0cErQP8-bb_GEJw7IC', + 'version': 'lCOGWVcR7bdARkUQrOrbIliX7jePOlZJOVl50aSVQcIC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/WATCHLISTS b/WATCHLISTS index 0cd65af..3358005c 100644 --- a/WATCHLISTS +++ b/WATCHLISTS
@@ -2284,7 +2284,8 @@ 'app_management': ['jshikaram+watch-app_management@chromium.org'], 'app_preload_service': ['jshikaram+watch-app_preload_service@chromium.org'], 'app_service': ['dominickn+watch-app_service@chromium.org', - 'nancylingwang@chromium.org'], + 'nancylingwang@chromium.org', + 'tsergeant+watch@chromium.org'], 'app_service_protos': ['cros-reporting-team+watch@google.com', 'vshenvi+watch@google.com'], 'app_shortcuts': ['dominickn+watch-app_shortcuts@chromium.org',
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java index c3f1fe3..6a3dc5356 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -272,8 +272,6 @@ Flag.baseFeature(BlinkFeatures.EARLY_EXIT_ON_NOOP_CLASS_OR_STYLE_CHANGE, "Early exit when the style or class attribute of a DOM element is set to the" + " same value as before."), - Flag.baseFeature(BlinkFeatures.INVALIDATION_SET_CLASS_BLOOM_FILTER, - "If enabled, style invalidation will use a Bloom filter."), Flag.baseFeature(BlinkFeatures.THREADED_PRELOAD_SCANNER, "If enabled, the HTMLPreloadScanner will run on a worker thread."), Flag.baseFeature(BlinkFeatures.TIMED_HTML_PARSER_BUDGET,
diff --git a/android_webview/tools/system_webview_shell/BUILD.gn b/android_webview/tools/system_webview_shell/BUILD.gn index bcc758e0..adad2289 100644 --- a/android_webview/tools/system_webview_shell/BUILD.gn +++ b/android_webview/tools/system_webview_shell/BUILD.gn
@@ -38,6 +38,7 @@ ":system_webview_shell_apk_resources", ] enable_lint = true + min_sdk_version = 19 lint_baseline_file = "lint-baseline.xml" lint_suppressions_file = "lint-suppressions.xml" }
diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java index 10d89144..dba4b4e 100644 --- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java +++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java
@@ -5,7 +5,6 @@ package org.chromium.webview_shell; import android.Manifest; -import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.UiModeManager; @@ -155,7 +154,7 @@ // Work around our wonky API by wrapping a geo permission prompt inside a regular // PermissionRequest. - @SuppressLint("NewApi") // GeoPermissionRequest class requires API level 21. + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) // GeoPermissionRequest class requires API level 21. private static class GeoPermissionRequest extends PermissionRequest { private String mOrigin; private GeolocationPermissions.Callback mCallback; @@ -190,7 +189,7 @@ // For simplicity, also treat the read access needed for file:// URLs as a regular // PermissionRequest. - @SuppressLint("NewApi") // FilePermissionRequest class requires API level 21. + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) // FilePermissionRequest class requires API level 21. private class FilePermissionRequest extends PermissionRequest { private String mOrigin; @@ -581,7 +580,7 @@ return PackageManager.PERMISSION_GRANTED == checkSelfPermission(androidPermission); } - @SuppressLint("NewApi") // PermissionRequest#deny requires API level 21. + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) // PermissionRequest#deny requires API level 21. private void requestPermissionsForPage(PermissionRequest request) { // Deny any unrecognized permissions. for (String webkitPermission : request.getResources()) { @@ -627,9 +626,10 @@ } @Override - @SuppressLint("NewApi") // PermissionRequest#deny requires API level 21. - public void onRequestPermissionsResult(int requestCode, - String permissions[], int[] grantResults) { + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) // PermissionRequest#deny requires API level 21. + public void onRequestPermissionsResult( + int requestCode, String permissions[], int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); // Verify that we can now grant all the requested permissions. Note that although grant() // takes a list of permissions, grant() is actually all-or-nothing. If there are any // requested permissions not included in the granted permissions, all will be denied.
diff --git a/android_webview/tools/system_webview_shell/lint-baseline.xml b/android_webview/tools/system_webview_shell/lint-baseline.xml index 36ab207..f15318c 100644 --- a/android_webview/tools/system_webview_shell/lint-baseline.xml +++ b/android_webview/tools/system_webview_shell/lint-baseline.xml
@@ -2,17 +2,6 @@ <issues format="6" by="lint 8.0.0-alpha10" type="baseline" client="" dependencies="true" name="" variant="all" version="8.0.0-alpha10"> <issue - id="MissingSuperCall" - message="Overriding method should call `super.onRequestPermissionsResult`" - errorLine1=" public void onRequestPermissionsResult(int requestCode," - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="631" - column="17"/> - </issue> - - <issue id="MissingClass" message="Class referenced in the manifest, `org.chromium.test.broker.OnDeviceInstrumentationBroker`, was not found in the project or the libraries" errorLine1=" <activity android:name="org.chromium.test.broker.OnDeviceInstrumentationBroker" android:exported="true"/>" @@ -156,314 +145,6 @@ </issue> <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 23" - errorLine1="@RequiresApi(Build.VERSION_CODES.M)" - errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/compat/ApiHelperForM.java" - line="37" - column="1"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1="@RequiresApi(Build.VERSION_CODES.N)" - errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/compat/ApiHelperForN.java" - line="35" - column="1"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" @RequiresApi(Build.VERSION_CODES.N)" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/process_launcher/BindService.java" - line="66" - column="5"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/BuildInfo.java" - line="198" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java" - line="320" - column="21"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java" - line="31" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return false;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/ContentUriUtils.java" - line="251" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) return false;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/ContentUriUtils.java" - line="279" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1="@RequiresApi(api = VERSION_CODES.N)" - errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java" - line="23" - column="1"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" @RequiresApi(api = VERSION_CODES.N)" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java" - line="41" - column="5"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (!mutable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/IntentUtils.java" - line="492" - column="25"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1="@RequiresApi(api = VERSION_CODES.N)" - errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java" - line="25" - column="1"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" Build.VERSION.SDK_INT >= Build.VERSION_CODES.N;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java" - line="19" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="135" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" @RequiresApi(Build.VERSION_CODES.N)" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="169" - column="5"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="218" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="264" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="276" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" @RequiresApi(Build.VERSION_CODES.N)" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/LocaleUtils.java" - line="286" - column="5"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/PathUtils.java" - line="91" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return 0;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/PowerMonitor.java" - line="99" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (appContext != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../base/android/java/src/org/chromium/base/SysUtils.java" - line="185" - column="35"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="452" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="520" - column="21"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 23" - errorLine1=" @RequiresApi(Build.VERSION_CODES.M)" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="575" - column="5"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is never < 24" - errorLine1=" if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="595" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="905" - column="13"/> - </issue> - - <issue - id="ObsoleteSdkInt" - message="Unnecessary; SDK_INT is always >= 24" - errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="../../android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java" - line="932" - column="13"/> - </issue> - - <issue id="AssertionSideEffect" message="Assertion condition has a side effect: f.setAccessible(true)" errorLine1=" assert reachesWindowCallback(activity.getWindow().getCallback());"
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 69919ec9..c5c9f91 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -942,6 +942,11 @@ "FilesAppExperimental", base::FEATURE_DISABLED_BY_DEFAULT); +// Enables the files transfer conflict dialog in Files app. +BASE_FEATURE(kFilesConflictDialog, + "FilesConflictDialog", + base::FEATURE_DISABLED_BY_DEFAULT); + // Enable inline sync status in Files app. BASE_FEATURE(kFilesInlineSyncStatus, "FilesInlineSyncStatus", @@ -2575,6 +2580,10 @@ return base::FeatureList::IsEnabled(kFilesSearchV2); } +bool IsFilesConflictDialogEnabled() { + return base::FeatureList::IsEnabled(kFilesConflictDialog); +} + bool IsFloatingWorkspaceEnabled() { return base::FeatureList::IsEnabled(kFloatingWorkspace); }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 0b7b02e..9551f67 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -278,6 +278,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kFederatedTimezoneCodePhh); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kFilesAppExperimental); +COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kFilesConflictDialog); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kFilesInlineSyncStatus); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kFilesSearchV2); COMPONENT_EXPORT(ASH_CONSTANTS) @@ -702,7 +703,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFederatedServiceEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFederatedServiceScheduleTasksEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFileManagerFuseBoxDebugEnabled(); -COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFilesWebDriveOfficeEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFilesConflictDialogEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFloatingWorkspaceEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsFloatingWorkspaceV2Enabled(); COMPONENT_EXPORT(ASH_CONSTANTS)
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index e72a938ad..6b6ec3b 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> is geskuif na vouer <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nie beskikbaar nie</translation> <translation id="4303223480529385476">Vou statusarea uit</translation> +<translation id="4311195029067684288">Vol</translation> <translation id="4312840429157639164">Kamera is geglip na hoek bo regs. Konflik met stelseloppervlak.</translation> <translation id="4316910396681052118">ALLE PROGRAMME</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 54693ac..1963090 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ወደ <ph name="FOLDER_NAME" /> አቃፊ ተንቀሳቅሷል።</translation> <translation id="4302592941791324970">አይገኝም</translation> <translation id="4303223480529385476">የሁኔታ አካባቢን ዘርጋ</translation> +<translation id="4311195029067684288">ሙሉ</translation> <translation id="4312840429157639164">ካሜራ ላይኛው ቀኝ ጥግ ላይ ገጥሟል። ከስርዓት ወለል ጋር ግጭት።</translation> <translation id="4316910396681052118">ሁሉም መተግበሪያዎች</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 56f2d62..1324b93 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -610,6 +610,7 @@ <translation id="430191667033048642">تم نقل <ph name="MOVED_APP_NAME" /> إلى المجلد <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">غير متوفّر</translation> <translation id="4303223480529385476">توسيع منطقة الحالة</translation> +<translation id="4311195029067684288">كامل</translation> <translation id="4312840429157639164">تم توجيه الكاميرا إلى الزاوية العلوية اليمنى. هناك تعارض مع مساحة عرض نظام آخر.</translation> <translation id="4316910396681052118">جميع التطبيقات</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index b27b2e50..cf7d44f2 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" />ক <ph name="FOLDER_NAME" /> ফ’ল্ডাৰলৈ স্থানান্তৰ কৰা হ’ল।</translation> <translation id="4302592941791324970">উপলব্ধ নহয়</translation> <translation id="4303223480529385476">বিভিন্ন স্থিতি দেখুওৱা ঠাই বিস্তাৰ কৰক</translation> +<translation id="4311195029067684288">পূৰ্ণ</translation> <translation id="4312840429157639164">কেমেৰা ওপৰৰ সোঁফালৰ কোণলৈ স্নেপ কৰা হৈছে। ছিষ্টেম ছাৰ্ফেচৰ সৈতে সংঘাত।</translation> <translation id="4316910396681052118">সকলো এপ্</translation> <translation id="4321179778687042513">Ctrl</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index ca0ff01..0c7b9ef 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> <ph name="FOLDER_NAME" /> qovluğuna köçürülüb.</translation> <translation id="4302592941791324970">Əlçatan deyil</translation> <translation id="4303223480529385476">Status sahəsini genişləndirin</translation> +<translation id="4311195029067684288">Tam</translation> <translation id="4312840429157639164">Kamera yuxarı sağ küncə çəkildi. Sistem səthi ilə ziddiyyət yarandı.</translation> <translation id="4316910396681052118">BÜTÜN TƏTBİQLƏR</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index bb62203f..78414f9 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Праграма <ph name="MOVED_APP_NAME" /> перамешчана ў папку <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Недаступна</translation> <translation id="4303223480529385476">Разгарнуць панэль стану</translation> +<translation id="4311195029067684288">Поўнасцю</translation> <translation id="4312840429157639164">Акно перадпрагляду камеры прывязана да правага верхняга вугла, бо яно перакрывала інтэрфейс сістэмы.</translation> <translation id="4316910396681052118">УСЕ ПРАГРАМЫ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index a74113e..fbd6909 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Приложението <ph name="MOVED_APP_NAME" /> бе преместено в папката <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Не е налице</translation> <translation id="4303223480529385476">Разгъване на лентата на състоянието</translation> +<translation id="4311195029067684288">Пълно</translation> <translation id="4312840429157639164">Картината от камерата е прилепена към горния десен ъгъл. Възникна конфликт с интерфейса на системата.</translation> <translation id="4316910396681052118">ВСИЧКИ ПРИЛОЖЕНИЯ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 8e54be3..f9d6eb8 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> অ্যাপ <ph name="FOLDER_NAME" /> ফোল্ডারে সরানো হয়েছে।</translation> <translation id="4302592941791324970">উপলভ্য নেই</translation> <translation id="4303223480529385476">স্ট্যাটাস এরিয়া বড় করুন</translation> +<translation id="4311195029067684288">পূর্ণ</translation> <translation id="4312840429157639164">ক্যামেরাটি উপরে ডানদিকের কোণে স্ন্যাপ করা হয়েছে। সিস্টেমের সারফেসে ছবির কিছুটা ঢাকা পড়ছে।</translation> <translation id="4316910396681052118">সব অ্যাপ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index 21a58cdf..cdb93211 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Aplikacija <ph name="MOVED_APP_NAME" /> je premještena u folder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nije dostupno</translation> <translation id="4303223480529385476">Proširi područje statusa</translation> +<translation id="4311195029067684288">Puno</translation> <translation id="4312840429157639164">Kamera se uklopila u gornji desni ugao. Došlo je do konflikta s površinom sistema.</translation> <translation id="4316910396681052118">SVE APLIKACIJE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 4dc4eab..5df32532 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> s'ha mogut a la carpeta <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">No disponible</translation> <translation id="4303223480529385476">Desplega l'àrea d'estat</translation> +<translation id="4311195029067684288">Complet</translation> <translation id="4312840429157639164">La càmera s'ha ajustat a l'extrem superior dret. S'ha produït un conflicte amb la superfície del sistema.</translation> <translation id="4316910396681052118">TOTES LES APLICACIONS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index dab5befc..7cf25f35 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Aplikace <ph name="MOVED_APP_NAME" /> byla přesunuta do složky <ph name="FOLDER_NAME" /></translation> <translation id="4302592941791324970">Nedostupné</translation> <translation id="4303223480529385476">Rozbalit stavovou oblast</translation> +<translation id="4311195029067684288">Plné</translation> <translation id="4312840429157639164">Kamera byla připnuta do pravého horního rohu Konflikt s platformou systému.</translation> <translation id="4316910396681052118">VŠECHNY APLIKACE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb index e60f935..00136720 100644 --- a/ash/strings/ash_strings_cy.xtb +++ b/ash/strings/ash_strings_cy.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Symudwyd <ph name="MOVED_APP_NAME" /> i'r ffolder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ddim ar gael</translation> <translation id="4303223480529385476">Ehangu'r ardal statws</translation> +<translation id="4311195029067684288">Llawn</translation> <translation id="4312840429157639164">Mae'r camera wedi'i snapio i'r gornel dde uchaf. Gwrthdaro ag arwyneb y system.</translation> <translation id="4316910396681052118">POB AP</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index 0a294025..68d10412 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -581,6 +581,7 @@ <translation id="4177913004758410636">{0,plural, =1{Genstart enheden inden for en dag}one{Genstart enheden inden for # dag}other{Genstart enheden inden for # dage}}</translation> <translation id="4181841719683918333">Sprog</translation> <translation id="4192112279662688596">Eller</translation> +<translation id="4193857202545160520">Vis klik og taster</translation> <translation id="4195814663415092787">Fortsæt, hvor du slap</translation> <translation id="4195877955194704651">Knap til automatisk klik</translation> <translation id="4197790712631116042">Fra</translation> @@ -608,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> blev flyttet til mappen <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ikke tilgængelig</translation> <translation id="4303223480529385476">Udvid statusområde</translation> +<translation id="4311195029067684288">Fuld</translation> <translation id="4312840429157639164">Kameraet er fastgjort til hjørnet øverst til højre. Dette er i strid med systemfladen.</translation> <translation id="4316910396681052118">ALLE APPS</translation> <translation id="4321179778687042513">ctrl</translation> @@ -762,6 +764,7 @@ <translation id="5107522548814527560">Internet</translation> <translation id="5111318697104479778"><ph name="DESC" />, <ph name="STRENGTH" /></translation> <translation id="5117590920725113268">Vis næste måned</translation> +<translation id="5127986747308934633">Din administrator styrer din enhed</translation> <translation id="5136175204352732067">Du har tilsluttet et andet tastatur</translation> <translation id="5147567197700016471">Låst op</translation> <translation id="5150070631291639005">Privatlivsindstillinger</translation> @@ -990,6 +993,7 @@ <translation id="639644700271529076">CAPS LOCK er deaktiveret</translation> <translation id="6406704438230478924">altgr</translation> <translation id="6417265370957905582">Google Assistent</translation> +<translation id="641867537956679916">Din administrator er logget ind for at undersøge et problem. Du kan fortsætte med at bruge enheden, når administratoren har givet dig kontrollen tilbage.</translation> <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, signalstyrke <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Ryd alle notifikationer</translation> <translation id="643147933154517414">Færdig</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 81494d2..14692a3 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> verschoben in <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nicht verfügbar</translation> <translation id="4303223480529385476">Statusbereich maximieren</translation> +<translation id="4311195029067684288">Vollständig</translation> <translation id="4312840429157639164">Kamera ist an der oberen rechten Ecke angepinnt. Konflikt mit der Systemoberfläche.</translation> <translation id="4316910396681052118">ALLE APPS</translation> <translation id="4321179778687042513">Strg</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index b6314b0..a77dab4 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Η εφαρμογή <ph name="MOVED_APP_NAME" /> μεταφέρθηκε στον φάκελο <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Μη διαθέσιμη</translation> <translation id="4303223480529385476">Ανάπτυξη περιοχής κατάστασης</translation> +<translation id="4311195029067684288">Πλήρης</translation> <translation id="4312840429157639164">Η προεπισκόπηση κάμερας τοποθετήθηκε στην επάνω δεξιά γωνία. Διένεξη με επιφάνεια συστήματος.</translation> <translation id="4316910396681052118">ΟΛΕΣ ΟΙ ΕΦΑΡΜΟΓΕΣ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 39088f5..6c924d0d 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> moved to folder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Not available</translation> <translation id="4303223480529385476">Expand status area</translation> +<translation id="4311195029067684288">Full</translation> <translation id="4312840429157639164">Camera snapped to the top-right corner. Conflict with system surface.</translation> <translation id="4316910396681052118">ALL APPS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 34d5c2c..b2807b77 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">Se movió <ph name="MOVED_APP_NAME" /> a la carpeta <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">No disponible</translation> <translation id="4303223480529385476">Expandir el área de estado</translation> +<translation id="4311195029067684288">Total</translation> <translation id="4312840429157639164">Se ajustó la cámara a la esquina superior derecha. Entra en conflicto con la superficie del sistema.</translation> <translation id="4316910396681052118">TODAS LAS APPS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index b5cc607f..750ceec7 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">Se ha movido <ph name="MOVED_APP_NAME" /> a la carpeta <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">No disponible</translation> <translation id="4303223480529385476">Ampliar área de estado</translation> +<translation id="4311195029067684288">Vista completa</translation> <translation id="4312840429157639164">Cámara ajustada a la esquina superior derecha. Conflicto con la superficie del sistema.</translation> <translation id="4316910396681052118">TODAS LAS APLICACIONES</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 90c08a77..2a876a63 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> teisaldati kausta <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Pole saadaval</translation> <translation id="4303223480529385476">Laienda olekuala</translation> +<translation id="4311195029067684288">Täielik</translation> <translation id="4312840429157639164">Kaamera kinnitati paremasse ülanurka. Konflikt süsteemi platvormiga.</translation> <translation id="4316910396681052118">KÕIK RAKENDUSED</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb index f4dd243..c3963ae 100644 --- a/ash/strings/ash_strings_eu.xtb +++ b/ash/strings/ash_strings_eu.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">Eraman da <ph name="MOVED_APP_NAME" /> aplikazioa <ph name="FOLDER_NAME" /> karpetara.</translation> <translation id="4302592941791324970">Ez dago erabilgarri</translation> <translation id="4303223480529385476">Zabaldu egoeraren eremua</translation> +<translation id="4311195029067684288">Osoa</translation> <translation id="4312840429157639164">Atxiki egin da kamera goiko eskuinaldeko izkinan, sistemaren beste gainazal batean gainjartzen zelako.</translation> <translation id="4316910396681052118">APLIKAZIO GUZTIAK</translation> <translation id="4321179778687042513">ktrl</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 7178d964..8e531e10 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> به پوشه <ph name="FOLDER_NAME" /> منتقل شد.</translation> <translation id="4302592941791324970">موجود نیست</translation> <translation id="4303223480529385476">بزرگ کردن ناحیه نشانگر وضعیت</translation> +<translation id="4311195029067684288">پر</translation> <translation id="4312840429157639164">دوربین به گوشه بالا سمت راست چسبید. تداخلی با سطح سیستم روی داد.</translation> <translation id="4316910396681052118">همه برنامهها</translation> <translation id="4321179778687042513">مهار</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index ae9da14..b8dd642 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> siirrettiin kansioon <ph name="FOLDER_NAME" /></translation> <translation id="4302592941791324970">Ei käytössä</translation> <translation id="4303223480529385476">Laajenna tila-alue</translation> +<translation id="4311195029067684288">Täynnä</translation> <translation id="4312840429157639164">Kamera kohdistettu oikeaan yläkulmaan. Ristiriita järjestelmän alustan kanssa.</translation> <translation id="4316910396681052118">KAIKKI SOVELLUKSET</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index 422209b..1d6692e1 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -581,6 +581,7 @@ <translation id="4177913004758410636">{0,plural, =1{I-update ang device sa loob ng isang araw}one{I-update ang device sa loob ng # araw}other{I-update ang device sa loob ng # na araw}}</translation> <translation id="4181841719683918333">Mga Wika</translation> <translation id="4192112279662688596">O</translation> +<translation id="4193857202545160520">Ipakita ang mga click at key</translation> <translation id="4195814663415092787">Magpatuloy kung saan ka tumigil</translation> <translation id="4195877955194704651">Button ng mga awtomatikong pag-click</translation> <translation id="4197790712631116042">Naka-off</translation> @@ -608,6 +609,7 @@ <translation id="430191667033048642">Inilipat ang <ph name="MOVED_APP_NAME" /> sa folder na <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Hindi available</translation> <translation id="4303223480529385476">I-expand ang lugar ng status</translation> +<translation id="4311195029067684288">Buo</translation> <translation id="4312840429157639164">Nag-snap ang camera sa kanang sulok sa itaas. Pagsasalungat sa surface ng system.</translation> <translation id="4316910396681052118">LAHAT NG APP</translation> <translation id="4321179778687042513">ctrl</translation> @@ -762,6 +764,7 @@ <translation id="5107522548814527560">Web</translation> <translation id="5111318697104479778"><ph name="DESC" />, <ph name="STRENGTH" /></translation> <translation id="5117590920725113268">Ipakita ang susunod na buwan</translation> +<translation id="5127986747308934633">Kinokontrol ng iyong administrator ang device mo</translation> <translation id="5136175204352732067">Ibang keyboard ang nakakonekta</translation> <translation id="5147567197700016471">Na-unlock na</translation> <translation id="5150070631291639005">Mga setting ng privacy</translation> @@ -990,6 +993,7 @@ <translation id="639644700271529076">Naka-off ang CAPS LOCK</translation> <translation id="6406704438230478924">altgr</translation> <translation id="6417265370957905582">Google Assistant</translation> +<translation id="641867537956679916">Nag-log in ang iyong administrator para suriin ang isang isyu. Puwede mong patuloy na gamitin ang device kapag ibinalik na sa iyo ng administrator ang kontrol.</translation> <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">I-clear ang lahat ng notification</translation> <translation id="643147933154517414">Tapos na ang lahat</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb index 7f390d32..c7b7568 100644 --- a/ash/strings/ash_strings_fr-CA.xtb +++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">L'application <ph name="MOVED_APP_NAME" /> a été déplacée dans le dossier <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Non accessible</translation> <translation id="4303223480529385476">Développer la zone de notifications</translation> +<translation id="4311195029067684288">Complet</translation> <translation id="4312840429157639164">Caméra alignée sur le coin supérieur droit. Conflit avec la surface du système.</translation> <translation id="4316910396681052118">TOUTES LES APPLICATIONS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 11dd41e2..4f76c58 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642">L'application <ph name="MOVED_APP_NAME" /> a été déplacée vers le dossier "<ph name="FOLDER_NAME" />".</translation> <translation id="4302592941791324970">Non disponible</translation> <translation id="4303223480529385476">Développer la zone d'état</translation> +<translation id="4311195029067684288">Plein écran</translation> <translation id="4312840429157639164">Appareil photo aligné sur l'angle supérieur droit. Conflit avec la surface du système.</translation> <translation id="4316910396681052118">TOUTES LES APPLICATIONS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index 61fc119..610348c 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> moveuse ao cartafol <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Non dispoñible</translation> <translation id="4303223480529385476">Despregar área de estado</translation> +<translation id="4311195029067684288">Completa</translation> <translation id="4312840429157639164">Cámara axustada á esquina superior dereita. Conflito coa plataforma do sistema.</translation> <translation id="4316910396681052118">TODAS AS APLICACIÓNS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 1d942ad..747def82 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" />ને ફોલ્ડર <ph name="FOLDER_NAME" />માં ખસેડી.</translation> <translation id="4302592941791324970">ઉપલબ્ધ નથી</translation> <translation id="4303223480529385476">સ્ટેટસ એરિયા વધારો</translation> +<translation id="4311195029067684288">પૂર્ણ</translation> <translation id="4312840429157639164">કૅમેરાને ઉપરના જમણા ખૂણામાં સ્નેપ કર્યો. સિસ્ટમની સપાટીને ઓવરલેપ કરે છે.</translation> <translation id="4316910396681052118">બધી ઍપ્લિકેશનો</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 9a74e19..45b5440a6 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> को <ph name="FOLDER_NAME" /> में ले जाया गया</translation> <translation id="4302592941791324970">उपलब्ध नहीं है</translation> <translation id="4303223480529385476">स्टेटस बताने वाली जगह को बड़ा करें</translation> +<translation id="4311195029067684288">पूर्ण</translation> <translation id="4312840429157639164">कैमरा इनपुट की झलक, अब ऊपर दाएं कोने में दिखेगी. ऐसा, सिस्टम पर दूसरे ऐप्लिकेशन के साथ ओवरलैप होने की वजह से किया गया है.</translation> <translation id="4316910396681052118">सभी ऐप्लिकेशन</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index a96cba99..cc78d7a 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642">Aplikacija <ph name="MOVED_APP_NAME" /> premještena je u mapu <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nedostupno</translation> <translation id="4303223480529385476">Proširite područje statusa</translation> +<translation id="4311195029067684288">Potpuno</translation> <translation id="4312840429157639164">Kamera je poravnata s gornjim desnim kutom. Došlo je do sukoba s površinom sustava.</translation> <translation id="4316910396681052118">SVE APLIKACIJE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index 92fc9364..50238437 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> áthelyezve a következő mappába: <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nem áll rendelkezésre</translation> <translation id="4303223480529385476">Állapotsor kibontása</translation> +<translation id="4311195029067684288">Teljes</translation> <translation id="4312840429157639164">Kamera a jobb felső sarokhoz igazítva. Ütközés a rendszerfelülettel.</translation> <translation id="4316910396681052118">MINDEN ALKALMAZÁS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 0c0cb89..533b8884 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642">«<ph name="MOVED_APP_NAME" />» հավելվածը տեղափոխվեց «<ph name="FOLDER_NAME" />» պանակ։</translation> <translation id="4302592941791324970">Հասանելի չէ</translation> <translation id="4303223480529385476">Ծավալել կարգավիճակի տարածքը</translation> +<translation id="4311195029067684288">Ամբողջական</translation> <translation id="4312840429157639164">Տեսախցիկի պատկերն ամրացված է վերևի աջ անկյունում, քանի որ ծածկում էր համակարգի միջերեսի տարրերը։</translation> <translation id="4316910396681052118">ԲՈԼՈՐ ՀԱՎԵԼՎԱԾՆԵՐԸ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index 8affe06..c52bb14 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> dipindahkan ke folder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Tidak tersedia</translation> <translation id="4303223480529385476">Luaskan area status</translation> +<translation id="4311195029067684288">Penuh</translation> <translation id="4312840429157639164">Kamera dipaskan ke pojok kanan atas. Bertentangan dengan platform sistem.</translation> <translation id="4316910396681052118">SEMUA APLIKASI</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index 83af58c6..36a254f 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> var fært í möppuna <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ekki tiltækt</translation> <translation id="4303223480529385476">Stækka stöðusvæði</translation> +<translation id="4311195029067684288">Allur</translation> <translation id="4312840429157639164">Myndavél fest við efra horn hægra megin. Skörun við vettvang kerfis.</translation> <translation id="4316910396681052118">ÖLL FORRIT</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 4bf01a9b..b13a7fd 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> spostata nella cartella <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Non disponibile</translation> <translation id="4303223480529385476">Espandi area di stato</translation> +<translation id="4311195029067684288">Completo</translation> <translation id="4312840429157639164">Fotocamera allineata all'angolo in alto a destra. Conflitto con la piattaforma di sistema.</translation> <translation id="4316910396681052118">TUTTE LE APP</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index d6ad6bb1..b14012b6 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">האפליקציה <ph name="MOVED_APP_NAME" /> הועברה אל התיקייה <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">לא זמינה</translation> <translation id="4303223480529385476">הרחבה של אזור הסטטוס</translation> +<translation id="4311195029067684288">מלא</translation> <translation id="4312840429157639164">המצלמה מוצמדת לפינה השמאלית העליונה. התנגשות עם תצוגת המערכת.</translation> <translation id="4316910396681052118">כל האפליקציות</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 2860fb4..bdaa320 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> をフォルダ <ph name="FOLDER_NAME" /> に移動しました。</translation> <translation id="4302592941791324970">使用できません</translation> <translation id="4303223480529385476">ステータス領域を拡大</translation> +<translation id="4311195029067684288">100%</translation> <translation id="4312840429157639164">カメラは右上にスナップされています。システムのサーフェスと競合しています。</translation> <translation id="4316910396681052118">すべてのアプリ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index f6aabc91..3a9401a 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> გადატანილია საქაღალდეში <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">მიუწვდომელი</translation> <translation id="4303223480529385476">სტატუსის არის გაშლა</translation> +<translation id="4311195029067684288">მთლიანი</translation> <translation id="4312840429157639164">კამერა მიზიდულია ზედა მარჯვენა კუთხეში. ის კონფლიქტშია სისტემის ზედაპირთან.</translation> <translation id="4316910396681052118">ყველა აპი</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index 986ade1..954cb5e 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> қолданбасы <ph name="FOLDER_NAME" /> қалтасына ауысты.</translation> <translation id="4302592941791324970">Қолжетімді емес</translation> <translation id="4303223480529385476">Күй аумағын жаю</translation> +<translation id="4311195029067684288">Толық</translation> <translation id="4312840429157639164">Камера жоғарғы оң жақ бұрышқа ауыстырылды. Жүйе платформасына қатысты қарама-қайшылық туындады.</translation> <translation id="4316910396681052118">БАРЛЫҚ ҚОЛДАНБАЛАР</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 3405d8c6..215d283 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ត្រូវបានផ្លាស់ទីទៅថត <ph name="FOLDER_NAME" />។</translation> <translation id="4302592941791324970">មិនអាចប្រើបានទេ</translation> <translation id="4303223480529385476">ពង្រីកតំបន់ស្ថានភាព</translation> +<translation id="4311195029067684288">ពេញ</translation> <translation id="4312840429157639164">បានតម្រៀបកាមេរ៉ាទៅជ្រុងខាងស្ដាំផ្នែកខាងលើ។ ខុសគ្នាជាមួយនឹងផ្ទៃប្រព័ន្ធ។</translation> <translation id="4316910396681052118">កម្មវិធីទាំងអស់</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index d3359a7..38ec3e2 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ಆ್ಯಪ್ ಅನ್ನು <ph name="FOLDER_NAME" /> ಫೋಲ್ಡರ್ಗೆ ಸರಿಸಲಾಗಿದೆ.</translation> <translation id="4302592941791324970">ಲಭ್ಯವಿಲ್ಲ</translation> <translation id="4303223480529385476">ಸ್ಥಿತಿ ಪ್ರದೇಶವನ್ನು ಹಿಗ್ಗಿಸಿ</translation> +<translation id="4311195029067684288">ಪೂರ್ಣ</translation> <translation id="4312840429157639164">ಕ್ಯಾಮರಾವನ್ನು ಮೇಲಿನ ಬಲ ಮೂಲೆಯಲ್ಲಿ ಸ್ನ್ಯಾಪ್ ಮಾಡಲಾಗಿದೆ. ಸಿಸ್ಟಮ್ ಮೇಲ್ಮೈ ಜೊತೆಗೆ ಸಂಘರ್ಷ.</translation> <translation id="4316910396681052118">ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳು</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index bc769fe..10b19a6 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> 앱이 <ph name="FOLDER_NAME" /> 폴더로 이동했습니다.</translation> <translation id="4302592941791324970">사용할 수 없음</translation> <translation id="4303223480529385476">상태 영역 확장</translation> +<translation id="4311195029067684288">전체화면</translation> <translation id="4312840429157639164">카메라 미리보기가 오른쪽 상단으로 맞춰졌습니다. 시스템 표시 경로와 충돌합니다.</translation> <translation id="4316910396681052118">모든 앱</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index e99d788..6bde3fa 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> <ph name="FOLDER_NAME" /> папкасына жылдырылды.</translation> <translation id="4302592941791324970">Жеткиликсиз</translation> <translation id="4303223480529385476">Статус аймагын жайып көрсөтүү</translation> +<translation id="4311195029067684288">Толук</translation> <translation id="4312840429157639164">Камера жогорку оң бурчка кадалды. Системанын платформасына туура келген жок.</translation> <translation id="4316910396681052118">БАРДЫК КОЛДОНМОЛОР</translation> <translation id="4321179778687042513">Ctrl</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb index c69cbacc..f86f9656 100644 --- a/ash/strings/ash_strings_lo.xtb +++ b/ash/strings/ash_strings_lo.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">ຍ້າຍ <ph name="MOVED_APP_NAME" /> ໄປຫາໂຟນເດີ <ph name="FOLDER_NAME" /> ແລ້ວ.</translation> <translation id="4302592941791324970">ບໍ່ສາມາດໃຊ້ໄດ້</translation> <translation id="4303223480529385476">ຂະຫຍາຍພື້ນທີ່ສະແດງສະຖານະ</translation> +<translation id="4311195029067684288">ເຕັມ</translation> <translation id="4312840429157639164">ແນບກ້ອງຖ່າຍຮູບໄປໃສ່ມຸມຂວາເທິງແລ້ວ. ຂັດແຍ້ງກັບພື້ນຜິວຂອງລະບົບ.</translation> <translation id="4316910396681052118">ທຸກແອັບ</translation> <translation id="4321179778687042513">Ctrl</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 4dd6969e..16847e372 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">„<ph name="MOVED_APP_NAME" />“ perkelta į aplanką „<ph name="FOLDER_NAME" />“.</translation> <translation id="4302592941791324970">Nepasiekiama</translation> <translation id="4303223480529385476">Išskleisti būsenos sritį</translation> +<translation id="4311195029067684288">Visas</translation> <translation id="4312840429157639164">Fotoaparato peržiūra pridėta viršutiniame dešiniajame kampe. Nesuderinama su sistemos platforma.</translation> <translation id="4316910396681052118">VISOS PROGRAMOS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index d1e2ef8..4a669b13 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Lietotne <ph name="MOVED_APP_NAME" /> pārvietota uz mapi <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nav pieejama</translation> <translation id="4303223480529385476">Izvērst statusa apgabalu</translation> +<translation id="4311195029067684288">Pilns</translation> <translation id="4312840429157639164">Kamera pārnesta uz labo augšējo stūri. Konflikts ar sistēmas virsmu.</translation> <translation id="4316910396681052118">VISAS LIETOTNES</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb index b780d25..0887f09 100644 --- a/ash/strings/ash_strings_mk.xtb +++ b/ash/strings/ash_strings_mk.xtb
@@ -610,6 +610,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> е преместена во папката <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Не е достапно</translation> <translation id="4303223480529385476">Прошири ја статусната област</translation> +<translation id="4311195029067684288">Целосно</translation> <translation id="4312840429157639164">Камерата е поставена во горниот десен агол. Конфликт со површината на системот.</translation> <translation id="4316910396681052118">СИТЕ АПЛИКАЦИИ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 3be35a7..81413ff 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> എന്ന ആപ്പിനെ <ph name="FOLDER_NAME" /> എന്ന ഫോൾഡറിലേക്ക് നീക്കി.</translation> <translation id="4302592941791324970">ലഭ്യമല്ല</translation> <translation id="4303223480529385476">സ്റ്റാറ്റസ് ഏരിയ വികസിപ്പിക്കുക</translation> +<translation id="4311195029067684288">പൂർണ്ണം</translation> <translation id="4312840429157639164">മുകളിൽ വലത് കോണിലേക്ക് ക്യാമറ സ്നാപ്പ് ചെയ്തു. സിസ്റ്റം സർഫേസിനെ ഓവർലാപ്പ് ചെയ്യുന്നു.</translation> <translation id="4316910396681052118">എല്ലാ ആപ്പുകളും</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb index 4723e3c..83b0e9ce 100644 --- a/ash/strings/ash_strings_mn.xtb +++ b/ash/strings/ash_strings_mn.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" />-г <ph name="FOLDER_NAME" /> фолдерт зөөсөн.</translation> <translation id="4302592941791324970">Боломжгүй</translation> <translation id="4303223480529385476">Төлөв байдал илэрхийлэгчийг дэлгэх</translation> +<translation id="4311195029067684288">Бүтэн</translation> <translation id="4312840429157639164">Камерыг баруун дээд булан руу зэрэгцүүлсэн. Системийн гадаргуутай зөрчилдсөн.</translation> <translation id="4316910396681052118">БҮХ АПП</translation> <translation id="4321179778687042513">Ctrl</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index aeb7831..2dac576 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> फोल्डर <ph name="FOLDER_NAME" /> वर हलवले.</translation> <translation id="4302592941791324970">उपलब्ध नाही</translation> <translation id="4303223480529385476">स्थिती क्षेत्राचा विस्तार करा</translation> +<translation id="4311195029067684288">पूर्ण</translation> <translation id="4312840429157639164">कॅमेरा सर्वात वरच्या उजव्या कोपर्यात स्नॅप केला आहे. सिस्टीम सर्फेसवरील इतर ॲपवर ओव्हरलॅप होत आहे.</translation> <translation id="4316910396681052118">सर्व अॅप्स</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 3432f8b..6c74a1f 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> dialihkan kepada folder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Tidak tersedia</translation> <translation id="4303223480529385476">Kembangkan area status</translation> +<translation id="4311195029067684288">Penuh</translation> <translation id="4312840429157639164">Kamera diautojajar ke penjuru kanan sebelah atas. Bercanggah dengan permukaan sistem.</translation> <translation id="4316910396681052118">SEMUA APL</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb index 4fa55cd..618b5b3 100644 --- a/ash/strings/ash_strings_my.xtb +++ b/ash/strings/ash_strings_my.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ကို <ph name="FOLDER_NAME" /> ဖိုင်တွဲသို့ ရွှေ့လိုက်ပါပြီ။</translation> <translation id="4302592941791324970">မရနိုင်ပါ</translation> <translation id="4303223480529385476">အခြေအနေပြ နေရာကို ချဲ့ရန်</translation> +<translation id="4311195029067684288">အပြည့်</translation> <translation id="4312840429157639164">ကင်မရာကို အပေါ်ညာဘက်ထောင့်သို့ ကပ်ထားသည်။ စနစ်မျက်နှာပြင်နှင့် ငြိနေသည်။</translation> <translation id="4316910396681052118">အက်ပ်များ အားလုံး</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index 6513bec..5fd8402 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> फोल्डर <ph name="FOLDER_NAME" /> मा सारियो।</translation> <translation id="4302592941791324970">उपलब्ध छैन</translation> <translation id="4303223480529385476">वस्तुस्थिति देखाउने क्षेत्र विस्तृत गर्नुहोस्</translation> +<translation id="4311195029067684288">फुल स्क्रिन खोल्नुहोस्</translation> <translation id="4312840429157639164">क्यामेरा सिरानको दायाँ कुनामा स्न्याप गरियो। सिस्टमको सतहसँग बाझियो।</translation> <translation id="4316910396681052118">सबै एपहरू</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index e86bc21c..b9751fc 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> is verplaatst naar de map <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Niet beschikbaar</translation> <translation id="4303223480529385476">Statusgedeelte uitvouwen</translation> +<translation id="4311195029067684288">Volledig</translation> <translation id="4312840429157639164">Camera uitgelijnd op de rechterbovenhoek. Conflict met systeemoppervlak.</translation> <translation id="4316910396681052118">ALLE APPS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 46c2636..39b4b289 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> er flyttet til mappen <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ikke tilgjengelig</translation> <translation id="4303223480529385476">Vis statusområdet</translation> +<translation id="4311195029067684288">Full</translation> <translation id="4312840429157639164">Kameraet er festet til øvre høyre hjørne. Konflikt med systemoverflaten.</translation> <translation id="4316910396681052118">ALLE APPER</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index 89632f9..2a12ea8 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="FOLDER_NAME" /> ଫୋଲ୍ଡରକୁ <ph name="MOVED_APP_NAME" /> ନିଆଗଲା।</translation> <translation id="4302592941791324970">ଉପଲବ୍ଧ ନାହିଁ</translation> <translation id="4303223480529385476">ସ୍ଥିତି କ୍ଷେତ୍ର ବିସ୍ତାର କରନ୍ତୁ</translation> +<translation id="4311195029067684288">ସମ୍ପୂର୍ଣ୍ଣ</translation> <translation id="4312840429157639164">କ୍ୟାମେରାକୁ ଉପର ଡାହାଣପାର୍ଶ୍ୱ କୋଣକୁ ସ୍ନାପ କରାଯାଇଛି। ସିଷ୍ଟମ ସର୍ଫେସ ସହ ବିବାଦ।</translation> <translation id="4316910396681052118">ସମସ୍ତ ଆପ୍</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb index c99d31d..15ce986 100644 --- a/ash/strings/ash_strings_pa.xtb +++ b/ash/strings/ash_strings_pa.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ਨੂੰ <ph name="FOLDER_NAME" /> ਫੋਲਡਰ ਵਿੱਚ ਲਿਜਾਇਆ ਗਿਆ।</translation> <translation id="4302592941791324970">ਉਪਲਬਧ ਨਹੀਂ</translation> <translation id="4303223480529385476">ਸਥਿਤੀ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕਰੋ</translation> +<translation id="4311195029067684288">ਪੂਰੀ ਸਕ੍ਰੀਨ</translation> <translation id="4312840429157639164">ਕੈਮਰੇ ਨੂੰ ਉੱਪਰਲੇ ਸੱਜੇ ਕੋਨੇ 'ਤੇ ਵਿਵਸਥਿਤ ਕੀਤਾ ਗਿਆ। ਸਿਸਟਮ ਸਰਫ਼ੇਸ ਨਾਲ ਓਵਰਲੈਪ ਕਰਦਾ ਹੈ।</translation> <translation id="4316910396681052118">ਸਭ ਐਪਾਂ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index d1f38e74..8614328 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Aplikacja <ph name="MOVED_APP_NAME" /> została przeniesiona do folderu <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Brak dostępu</translation> <translation id="4303223480529385476">Rozwiń pasek stanu</translation> +<translation id="4311195029067684288">Pełne</translation> <translation id="4312840429157639164">Podgląd z kamery został przyciągnięty do prawego górnego rogu. Konflikt z obszarem systemowym.</translation> <translation id="4316910396681052118">WSZYSTKIE APLIKACJE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 50925e8..ea8d650 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> movido para a pasta <ph name="FOLDER_NAME" /></translation> <translation id="4302592941791324970">Indisponível</translation> <translation id="4303223480529385476">Expandir área de status</translation> +<translation id="4311195029067684288">Inteira</translation> <translation id="4312840429157639164">Câmera alinhada ao canto direito de cima. Conflito com a superfície do sistema.</translation> <translation id="4316910396681052118">TODOS OS APPS</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index f9a1a3d4..579665c 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">A aplicação <ph name="MOVED_APP_NAME" /> foi movida para a pasta <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Não disponível</translation> <translation id="4303223480529385476">Expandir área de estado</translation> +<translation id="4311195029067684288">Completo</translation> <translation id="4312840429157639164">Câmara ajustada ao canto superior direito. Há um conflito com a superfície do sistema.</translation> <translation id="4316910396681052118">TODAS AS APLICAÇÕES</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 49507069..103e0b2 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -581,6 +581,7 @@ <translation id="4177913004758410636">{0,plural, =1{Actualizează dispozitivul în cel mult o zi}few{Actualizează dispozitivul în cel mult # zile}other{Actualizează dispozitivul în cel mult # de zile}}</translation> <translation id="4181841719683918333">Limbi</translation> <translation id="4192112279662688596">Sau</translation> +<translation id="4193857202545160520">Afișează clicurile și tastele</translation> <translation id="4195814663415092787">Continuați de unde ați rămas</translation> <translation id="4195877955194704651">Butonul Clicuri automate</translation> <translation id="4197790712631116042">Dezactivat</translation> @@ -608,6 +609,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> s-a mutat în dosarul <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Indisponibilă</translation> <translation id="4303223480529385476">Extinde zona de stare</translation> +<translation id="4311195029067684288">Maxim</translation> <translation id="4312840429157639164">Camera foto este aliniată cu colțul din dreapta sus. Conflict cu platforma de sistem.</translation> <translation id="4316910396681052118">TOATE APLICAȚIILE</translation> <translation id="4321179778687042513">ctrl</translation> @@ -762,6 +764,7 @@ <translation id="5107522548814527560">Web</translation> <translation id="5111318697104479778"><ph name="DESC" /> <ph name="STRENGTH" /></translation> <translation id="5117590920725113268">Afișează luna următoare</translation> +<translation id="5127986747308934633">Administratorul a preluat controlul asupra dispozitivului tău</translation> <translation id="5136175204352732067">Altă tastatură conectată</translation> <translation id="5147567197700016471">Deblocat</translation> <translation id="5150070631291639005">Setări de confidențialitate</translation> @@ -990,6 +993,7 @@ <translation id="639644700271529076">Tasta CAPS LOCK este dezactivată</translation> <translation id="6406704438230478924">altgr</translation> <translation id="6417265370957905582">Asistent Google</translation> +<translation id="641867537956679916">Administratorul s-a conectat pentru a investiga o problemă. Poți folosi în continuare dispozitivul după ce administratorul îți redă controlul.</translation> <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">Șterge toate notificările</translation> <translation id="643147933154517414">Gata</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 5bdca27..0dd4ed0 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Приложение "<ph name="MOVED_APP_NAME" />" перемещено в папку "<ph name="FOLDER_NAME" />".</translation> <translation id="4302592941791324970">Недоступно</translation> <translation id="4303223480529385476">Развернуть панель состояния</translation> +<translation id="4311195029067684288">Максимальное увеличение</translation> <translation id="4312840429157639164">Окно предварительного просмотра камеры привязано к правому верхнему углу, так как перекрывало элементы системного интерфейса</translation> <translation id="4316910396681052118">ВСЕ ПРИЛОЖЕНИЯ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb index 4607c26f..169742d 100644 --- a/ash/strings/ash_strings_si.xtb +++ b/ash/strings/ash_strings_si.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="FOLDER_NAME" /> ෆෝල්ඩරයට <ph name="MOVED_APP_NAME" /> ගෙන යැවිණි.</translation> <translation id="4302592941791324970">නොමැත</translation> <translation id="4303223480529385476">තත්ත්ව ප්රදේශය දිග හරින්න</translation> +<translation id="4311195029067684288">පූර්ණ</translation> <translation id="4312840429157639164">කැමරාව ඉහළ දකුණු කෙළවරට සවි කර ඇත. පද්ධති මතුපිට සමග ගැටුම.</translation> <translation id="4316910396681052118">සියලු යෙදුම්</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index c857b3b..f6c931f 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> bola presunutá do priečinka <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nie je k dispozícii</translation> <translation id="4303223480529385476">Rozbaliť stavovú oblasť</translation> +<translation id="4311195029067684288">Úplné</translation> <translation id="4312840429157639164">Kamera bola prichytená do pravého horného rohu. Konflikt s platformou systému.</translation> <translation id="4316910396681052118">VŠETKY APLIKÁCIE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 99dcc52..cd2ace3 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Aplikacija <ph name="MOVED_APP_NAME" /> premaknjena v mapo <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ni na voljo</translation> <translation id="4303223480529385476">Razširitev območja stanja</translation> +<translation id="4311195029067684288">V celoti</translation> <translation id="4312840429157639164">Fotoaparat je pripet v zgornji desni kot. To je v navzkrižju s sistemskim okoljem.</translation> <translation id="4316910396681052118">VSE APLIKACIJE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index a3759220..1bdcc5c 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> u zhvendos te skedari <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nuk ofrohet</translation> <translation id="4303223480529385476">Zgjero zonën e statusit</translation> +<translation id="4311195029067684288">I plotë</translation> <translation id="4312840429157639164">Pamja paraprake e kamerës ka kaluar në këndin e sipërm djathtas. Në konflikt me sipërfaqen e sistemit.</translation> <translation id="4316910396681052118">TË GJITHA APLIKACIONET</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb index 4433a927a..ebda41e 100644 --- a/ash/strings/ash_strings_sr-Latn.xtb +++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">Aplikacija <ph name="MOVED_APP_NAME" /> je premeštena u folder <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Nije dostupno</translation> <translation id="4303223480529385476">Proširite oblast statusa</translation> +<translation id="4311195029067684288">Potpuno</translation> <translation id="4312840429157639164">Kamera je uklopljena u gornji desni ugao. Neusaglašenost sa površinom sistema.</translation> <translation id="4316910396681052118">SVE APLIKACIJE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 254ea39..05253379 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -609,6 +609,7 @@ <translation id="430191667033048642">Апликација <ph name="MOVED_APP_NAME" /> је премештена у фолдер <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Није доступно</translation> <translation id="4303223480529385476">Проширите област статуса</translation> +<translation id="4311195029067684288">Потпуно</translation> <translation id="4312840429157639164">Камера је уклопљена у горњи десни угао. Неусаглашеност са површином система.</translation> <translation id="4316910396681052118">СВЕ АПЛИКАЦИЈЕ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index 7b9d7e8..d253e91 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> har flyttats till mappen <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Inte tillgängligt</translation> <translation id="4303223480529385476">Utöka statusfält</translation> +<translation id="4311195029067684288">Fullt</translation> <translation id="4312840429157639164">Kameran har fästs i det övre högra hörnet. Konflikt med systemyta.</translation> <translation id="4316910396681052118">ALLA APPAR</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 2deebba..bc98d5c 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> imehamishiwa kwenye folda ya <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Haipatikani</translation> <translation id="4303223480529385476">Panua eneo la hali</translation> +<translation id="4311195029067684288">Imejaa</translation> <translation id="4312840429157639164">Onyesho la kukagua kamera limelinganishwa kwenye kona ya juu kulia. Linakinzana na mfumo wa kiolesura uliopo.</translation> <translation id="4316910396681052118">PROGRAMU ZOTE</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index c575f10d..190d2bd 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="FOLDER_NAME" /> ஃபோல்டருக்கு <ph name="MOVED_APP_NAME" /> ஆப்ஸ் நகர்த்தப்பட்டது.</translation> <translation id="4302592941791324970">இல்லை</translation> <translation id="4303223480529385476">நிலைப் பகுதியை விரிவாக்கும்</translation> +<translation id="4311195029067684288">முழு</translation> <translation id="4312840429157639164">கேமரா மாதிரிக்காட்சி மேல் வலது மூலையில் பொருத்தப்பட்டது. ஏனெனில் சிஸ்டத்தின் காட்சியை இது மறைக்கும்.</translation> <translation id="4316910396681052118">எல்லாப் பயன்பாடுகளும்</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 09c2c71d..a66e6c6 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -582,6 +582,7 @@ <translation id="4177913004758410636">{0,plural, =1{ఒక రోజు లోపు పరికరాన్ని అప్డేట్ చేయండి}other{# రోజులలోపు పరికరాన్ని అప్డేట్ చేయండి}}</translation> <translation id="4181841719683918333">భాషలు</translation> <translation id="4192112279662688596">లేదా</translation> +<translation id="4193857202545160520">క్లిక్లు, కీలను చూడండి</translation> <translation id="4195814663415092787">మీరు నిష్క్రమించిన చోటు నుండే కొనసాగించండి</translation> <translation id="4195877955194704651">ఆటోమేటిక్ క్లిక్ల బటన్</translation> <translation id="4197790712631116042">ఆఫ్</translation> @@ -609,6 +610,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> అనేది <ph name="FOLDER_NAME" /> ఫోల్డర్కు తరలించబడింది.</translation> <translation id="4302592941791324970">అందుబాటులో లేదు</translation> <translation id="4303223480529385476">స్టేటస్ ప్రాంతాన్ని విస్తరించండి</translation> +<translation id="4311195029067684288">సంపూర్ణం</translation> <translation id="4312840429157639164">కెమెరా ఎగువ కుడి మూలకు స్నాప్ చేయబడింది. సిస్టమ్ ప్లాట్ఫామ్కు విరుద్ధంగా.</translation> <translation id="4316910396681052118">అన్ని యాప్లు</translation> <translation id="4321179778687042513">ctrl</translation> @@ -763,6 +765,7 @@ <translation id="5107522548814527560">వెబ్</translation> <translation id="5111318697104479778"><ph name="DESC" />, <ph name="STRENGTH" /></translation> <translation id="5117590920725113268">తరువాత నెలను చూపుతుంది</translation> +<translation id="5127986747308934633">మీ అడ్మినిస్ట్రేటర్ మీ పరికరాన్ని కంట్రోల్ చేస్తున్నారు</translation> <translation id="5136175204352732067">వేరే కీబోర్డ్ కనెక్ట్ చేయబడింది</translation> <translation id="5147567197700016471">అన్లాక్ చేయబడింది</translation> <translation id="5150070631291639005">గోప్యతా సెట్టింగ్లు</translation> @@ -991,6 +994,7 @@ <translation id="639644700271529076">CAPS LOCK ఆపివేయబడింది</translation> <translation id="6406704438230478924">altgr</translation> <translation id="6417265370957905582">Google Assistant</translation> +<translation id="641867537956679916">సమస్యను పరిశీలించడం కోసం మీ అడ్మినిస్ట్రేటర్ లాగిన్ చేశారు. అడ్మినిస్ట్రేటర్ మీకు కంట్రోల్ను తిరిగి ఇచ్చిన తర్వాత మీరు పరికరాన్ని ఉపయోగించడం కొనసాగించవచ్చు.</translation> <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" /></translation> <translation id="642644398083277086">అన్ని నోటిఫికేషన్లను క్లియర్ చేయండి</translation> <translation id="643147933154517414">పూర్తయింది</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index 28b37254..cc3f028 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">ย้าย <ph name="MOVED_APP_NAME" /> ไปยังโฟลเดอร์ <ph name="FOLDER_NAME" /> แล้ว</translation> <translation id="4302592941791324970">ไม่พร้อมใช้งาน</translation> <translation id="4303223480529385476">ขยายพื้นที่แสดงสถานะ</translation> +<translation id="4311195029067684288">เต็ม</translation> <translation id="4312840429157639164">จัดกล้องพอดีกับมุมขวาบนแล้ว เนื่องจากขัดแย้งกับแพลตฟอร์มของระบบ</translation> <translation id="4316910396681052118">แอปทั้งหมด</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index ba0a5900..9cbed1b 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" />, <ph name="FOLDER_NAME" />klasörüne taşındı</translation> <translation id="4302592941791324970">Kullanılamıyor</translation> <translation id="4303223480529385476">Durum alanını genişlet</translation> +<translation id="4311195029067684288">Tam</translation> <translation id="4312840429157639164">Kamera sağ üst köşeye tutturuldu. Sistem yüzeyi ile çakışıyor.</translation> <translation id="4316910396681052118">TÜM UYGULAMALAR</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index 95c8950..ff2bd20 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Додаток <ph name="MOVED_APP_NAME" /> переміщено в папку "<ph name="FOLDER_NAME" />".</translation> <translation id="4302592941791324970">Недоступно</translation> <translation id="4303223480529385476">Розгорнути панель стану</translation> +<translation id="4311195029067684288">Повністю</translation> <translation id="4312840429157639164">Зображення з камери закріплено у верхньому правому куті, що конфліктує із системною платформою.</translation> <translation id="4316910396681052118">УСІ ДОДАТКИ</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb index b70e390a..d17d0f0 100644 --- a/ash/strings/ash_strings_ur.xtb +++ b/ash/strings/ash_strings_ur.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> کو فولڈر<ph name="FOLDER_NAME" /> میں منتقل کر دیا گیا۔</translation> <translation id="4302592941791324970">دستیاب نہیں ہے</translation> <translation id="4303223480529385476">اسٹیٹس ایریا کو پھیلائیں</translation> +<translation id="4311195029067684288">مکمل</translation> <translation id="4312840429157639164">کیمرا اوپری دائیں کونے میں اسنیپ کیا گیا ہے۔ سسٹم کی سطح سے متصادم ہے۔</translation> <translation id="4316910396681052118">سبھی ایپس</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb index 7517e25..1fbe1da 100644 --- a/ash/strings/ash_strings_uz.xtb +++ b/ash/strings/ash_strings_uz.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> ilovasi <ph name="FOLDER_NAME" /> jildiga olindi.</translation> <translation id="4302592941791324970">Mavjud emas</translation> <translation id="4303223480529385476">Holat panelini yoyish</translation> +<translation id="4311195029067684288">Toʻliq</translation> <translation id="4312840429157639164">Kamera yuqori oʻng burchakka joylandi. Tizim platfromasi bilan muammo chiqdi.</translation> <translation id="4316910396681052118">BARCHA ILOVALAR</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 5082b3d7..11286fea 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">Đã chuyển <ph name="MOVED_APP_NAME" /> vào thư mục <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Không dùng được</translation> <translation id="4303223480529385476">Mở rộng khu vực trạng thái</translation> +<translation id="4311195029067684288">Toàn màn hình</translation> <translation id="4312840429157639164">Máy ảnh đang bám theo góc trên bên phải. Xung đột với khu vực hệ thống.</translation> <translation id="4316910396681052118">TẤT CẢ ỨNG DỤNG</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 07e9519d..13a6327 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">“<ph name="MOVED_APP_NAME" />”已移至文件夹“<ph name="FOLDER_NAME" />”</translation> <translation id="4302592941791324970">不可用</translation> <translation id="4303223480529385476">展开状态区</translation> +<translation id="4311195029067684288">全屏</translation> <translation id="4312840429157639164">相机已对准右上角。与系统界面冲突。</translation> <translation id="4316910396681052118">所有应用</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 785521e..2bf5a16 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642">「<ph name="MOVED_APP_NAME" />」已經移咗去「<ph name="FOLDER_NAME" />」資料夾。</translation> <translation id="4302592941791324970">無法使用</translation> <translation id="4303223480529385476">展開狀態區</translation> +<translation id="4311195029067684288">完整</translation> <translation id="4312840429157639164">攝錄機已經對齊右上角,同系統平台有衝突。</translation> <translation id="4316910396681052118">所有應用程式</translation> <translation id="4321179778687042513">ctrl</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index 3693d74..ea935d1 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -607,6 +607,7 @@ <translation id="430191667033048642">已將「<ph name="MOVED_APP_NAME" />」移至「<ph name="FOLDER_NAME" />」資料夾。</translation> <translation id="4302592941791324970">無法使用</translation> <translation id="4303223480529385476">展開狀態區</translation> +<translation id="4311195029067684288">完整</translation> <translation id="4312840429157639164">攝影機已對齊右上角,與系統平台發生衝突。</translation> <translation id="4316910396681052118">所有應用程式</translation> <translation id="4321179778687042513">Ctrl</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index 7bd0e5ec..f61447a 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -608,6 +608,7 @@ <translation id="430191667033048642"><ph name="MOVED_APP_NAME" /> iyiswe kufolda <ph name="FOLDER_NAME" />.</translation> <translation id="4302592941791324970">Ayitholakali</translation> <translation id="4303223480529385476">Nweba indawo yesimo</translation> +<translation id="4311195029067684288">Igcwele</translation> <translation id="4312840429157639164">Ikhamera iqondaniswe ekhoneni elingaphezulu ngakwesokudla. Ukungqubuzana nendawo yesistimu.</translation> <translation id="4316910396681052118">ZONKE IZINHLELO ZOKUSEBENZA</translation> <translation id="4321179778687042513">i-ctrl</translation>
diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java index e5e1ec27..2750131 100644 --- a/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java
@@ -248,7 +248,6 @@ * @return True for virtual file, false for any other file. */ private static boolean isVirtualDocument(Uri uri) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return false; if (uri == null) return false; if (!DocumentsContract.isDocumentUri(ContextUtils.getApplicationContext(), uri)) { return false;
diff --git a/base/android/java/src/org/chromium/base/SysUtils.java b/base/android/java/src/org/chromium/base/SysUtils.java index e46c6007..049aa06 100644 --- a/base/android/java/src/org/chromium/base/SysUtils.java +++ b/base/android/java/src/org/chromium/base/SysUtils.java
@@ -182,7 +182,7 @@ // For evaluation purposes check whether our computation agrees with Android API value. Context appContext = ContextUtils.getApplicationContext(); boolean isLowRam = false; - if (appContext != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (appContext != null) { isLowRam = ((ActivityManager) ContextUtils.getApplicationContext().getSystemService( Context.ACTIVITY_SERVICE)) .isLowRamDevice();
diff --git a/base/android/java/src/org/chromium/base/TraceEvent.java b/base/android/java/src/org/chromium/base/TraceEvent.java index e0fd1c74..1f9f6be 100644 --- a/base/android/java/src/org/chromium/base/TraceEvent.java +++ b/base/android/java/src/org/chromium/base/TraceEvent.java
@@ -494,7 +494,7 @@ private static final class IdleTracingLooperMonitor extends BasicLooperMonitor implements MessageQueue.IdleHandler { // Tags for dumping to logcat or TraceEvent - private static final String TAG = "TraceEvent_LooperMonitor"; + private static final String TAG = "TraceEvt_LooperMonitor"; private static final String IDLE_EVENT_NAME = "Looper.queueIdle"; // Calculation constants
diff --git a/build/clobber.py b/build/clobber.py index 91927774..b84027b0 100755 --- a/build/clobber.py +++ b/build/clobber.py
@@ -7,119 +7,47 @@ import argparse import os -import shutil import subprocess import sys -def extract_gn_build_commands(build_ninja_file): - """Extracts from a build.ninja the commands to run GN. - - The commands to run GN are the gn rule and build.ninja build step at the - top of the build.ninja file. We want to keep these when deleting GN builds - since we want to preserve the command-line flags to GN. - - On error, returns the empty string.""" - result = "" - with open(build_ninja_file, 'r') as f: - # Reads until the first empty line after the "build build.ninja:" target. - # We assume everything before it necessary as well (eg the - # "ninja_required_version" line). - found_build_dot_ninja_target = False - for line in f.readlines(): - result += line - if line.startswith('build build.ninja:'): - found_build_dot_ninja_target = True - if found_build_dot_ninja_target and line[0] == '\n': - return result - return '' # We got to EOF and didn't find what we were looking for. +_SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -def delete_dir(build_dir): - if os.path.islink(build_dir): - return - # For unknown reasons (anti-virus?) rmtree of Chromium build directories - # often fails on Windows. - if sys.platform.startswith('win'): - subprocess.check_call(['rmdir', '/s', '/q', build_dir], shell=True) - else: - shutil.rmtree(build_dir) +def _gn_cmd(cmd, build_dir): + gn_exe = 'gn' + if sys.platform == 'win32': + gn_exe += '.bat' + return [gn_exe, cmd, '--root=%s' % _SRC_DIR, '-C', build_dir] -def delete_build_dir(build_dir): - # GN writes a build.ninja.d file. Note that not all GN builds have args.gn. - build_ninja_d_file = os.path.join(build_dir, 'build.ninja.d') - if not os.path.exists(build_ninja_d_file): - delete_dir(build_dir) - return +def _generate_build_ninja(build_dir): + gn_gen_cmd = _gn_cmd('gen', build_dir) + print('Running %s' % ' '.join(gn_gen_cmd)) + subprocess.run(gn_gen_cmd, check=True) - # GN builds aren't automatically regenerated when you sync. To avoid - # messing with the GN workflow, erase everything but the args file, and - # write a dummy build.ninja file that will automatically rerun GN the next - # time Ninja is run. - build_ninja_file = os.path.join(build_dir, 'build.ninja') - build_commands = extract_gn_build_commands(build_ninja_file) +def _clean_build_dir(build_dir): + print('Cleaning %s' % build_dir) + + gn_clean_cmd = _gn_cmd('clean', build_dir) + print('Running %s' % ' '.join(gn_clean_cmd)) try: - gn_args_file = os.path.join(build_dir, 'args.gn') - with open(gn_args_file, 'r') as f: - args_contents = f.read() - except IOError: - args_contents = '' - - exception_during_rm = None - try: - # delete_dir and os.mkdir() may fail, such as when chrome.exe is running, - # and we still want to restore args.gn/build.ninja/build.ninja.d, so catch - # the exception and rethrow it later. - delete_dir(build_dir) - os.mkdir(build_dir) - except Exception as e: - exception_during_rm = e - - # Put back the args file (if any). - if args_contents != '': - with open(gn_args_file, 'w') as f: - f.write(args_contents) - - # Write the build.ninja file sufficiently to regenerate itself. - with open(os.path.join(build_dir, 'build.ninja'), 'w') as f: - if build_commands != '': - f.write(build_commands) - else: - # Couldn't parse the build.ninja file, write a default thing. - f.write('''ninja_required_version = 1.7.2 - -rule gn - command = gn -q gen //out/%s/ - description = Regenerating ninja files - -build build.ninja: gn - generator = 1 - depfile = build.ninja.d -''' % (os.path.split(build_dir)[1])) - - # Write a .d file for the build which references a nonexistant file. This - # will make Ninja always mark the build as dirty. - with open(build_ninja_d_file, 'w') as f: - f.write('build.ninja: nonexistant_file.gn\n') - - if exception_during_rm: - # Rethrow the exception we caught earlier. - raise exception_during_rm + subprocess.run(gn_clean_cmd, check=True) + except Exception: + # gn clean may fail when build.ninja is corrupted or missing. + # Regenerate build.ninja and retry gn clean again. + _generate_build_ninja(build_dir) + print('Running %s' % ' '.join(gn_clean_cmd)) + subprocess.run(gn_clean_cmd, check=True) def clobber(out_dir): - """Clobber contents of build directory. - - Don't delete the directory itself: some checkouts have the build directory - mounted.""" + """Clobber contents of build directory.""" for f in os.listdir(out_dir): path = os.path.join(out_dir, f) - if os.path.isfile(path): - os.unlink(path) - elif os.path.isdir(path): - delete_build_dir(path) + if os.path.isdir(path): + _clean_build_dir(path) def main():
diff --git a/build/clobber_unittest.py b/build/clobber_unittest.py index 908718d..990926c 100755 --- a/build/clobber_unittest.py +++ b/build/clobber_unittest.py
@@ -7,125 +7,33 @@ import pathlib import shutil import tempfile -import textwrap import unittest -from unittest import mock import clobber -class TestExtractBuildCommand(unittest.TestCase): - def setUp(self): - _, self.build_ninja_path = tempfile.mkstemp(text=True) - - def tearDown(self): - os.remove(self.build_ninja_path) - - def test_normal_extraction(self): - build_ninja_file_contents = textwrap.dedent(""" - ninja_required_version = 1.7.2 - - rule gn - command = ../../buildtools/gn --root=../.. -q --regeneration gen . - pool = console - description = Regenerating ninja files - - build build.ninja.stamp: gn - generator = 1 - depfile = build.ninja.d - - build build.ninja: phony build.ninja.stamp - generator = 1 - - pool build_toolchain_action_pool - depth = 72 - - pool build_toolchain_link_pool - depth = 23 - - subninja toolchain.ninja - subninja clang_newlib_x64/toolchain.ninja - subninja glibc_x64/toolchain.ninja - subninja irt_x64/toolchain.ninja - subninja nacl_bootstrap_x64/toolchain.ninja - subninja newlib_pnacl/toolchain.ninja - - build blink_python_tests: phony obj/blink_python_tests.stamp - build blink_tests: phony obj/blink_tests.stamp - - default all - """) # Based off of a standard linux build dir. - with open(self.build_ninja_path, 'w') as f: - f.write(build_ninja_file_contents) - - expected_build_ninja_file_contents = textwrap.dedent(""" - ninja_required_version = 1.7.2 - - rule gn - command = ../../buildtools/gn --root=../.. -q --regeneration gen . - pool = console - description = Regenerating ninja files - - build build.ninja.stamp: gn - generator = 1 - depfile = build.ninja.d - - build build.ninja: phony build.ninja.stamp - generator = 1 - - """) - - self.assertEqual(clobber.extract_gn_build_commands(self.build_ninja_path), - expected_build_ninja_file_contents) - - def test_unexpected_format(self): - # No "build build.ninja:" line should make it return an empty string. - build_ninja_file_contents = textwrap.dedent(""" - ninja_required_version = 1.7.2 - - rule gn - command = ../../buildtools/gn --root=../.. -q --regeneration gen . - pool = console - description = Regenerating ninja files - - subninja toolchain.ninja - - build blink_python_tests: phony obj/blink_python_tests.stamp - build blink_tests: phony obj/blink_tests.stamp - - """) - with open(self.build_ninja_path, 'w') as f: - f.write(build_ninja_file_contents) - - self.assertEqual(clobber.extract_gn_build_commands(self.build_ninja_path), - '') - - -class TestDelete(unittest.TestCase): +class TestClean(unittest.TestCase): def setUp(self): self.build_dir = tempfile.mkdtemp() - pathlib.Path(os.path.join(self.build_dir, 'build.ninja')).touch() - pathlib.Path(os.path.join(self.build_dir, 'build.ninja.d')).touch() - def tearDown(self): shutil.rmtree(self.build_dir) - def test_delete_build_dir_full(self): + def test_gn_clean_ok(self): + pathlib.Path(os.path.join(self.build_dir, 'build.ninja')).touch() + pathlib.Path(os.path.join(self.build_dir, 'build.ninja.d')).touch() + # Create a dummy file in the build dir and ensure it gets removed. dummy_file = os.path.join(self.build_dir, 'dummy') pathlib.Path(dummy_file).touch() - clobber.delete_build_dir(self.build_dir) - + clobber._clean_build_dir(self.build_dir) self.assertFalse(os.path.exists(dummy_file)) - def test_delete_build_dir_fail(self): - # Make delete_dir() throw to ensure it's handled gracefully. - - with mock.patch('clobber.delete_dir', side_effect=OSError): - with self.assertRaises(OSError): - clobber.delete_build_dir(self.build_dir) + def test_gn_clean_fail(self): + # gn clean fails without build.ninja. + # clean_build_dir() regenerates build.ninja internally. + clobber._clean_build_dir(self.build_dir) if __name__ == '__main__':
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index 969dd5a..3d46b5f 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -11.20230115.3.1 +11.20230116.1.1
diff --git a/chrome/VERSION b/chrome/VERSION index 8fc0b99e..4cd2f61 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=111 MINOR=0 -BUILD=5542 +BUILD=5543 PATCH=0
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 022ba9d..d33b4fd 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -317,6 +317,7 @@ "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/RelatedSearchesControl.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java", + "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java", "java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java", "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java",
diff --git a/chrome/android/java/res/layout/sheet_tab_toolbar.xml b/chrome/android/java/res/layout/sheet_tab_toolbar.xml index cedf36d..edc6c35d 100644 --- a/chrome/android/java/res/layout/sheet_tab_toolbar.xml +++ b/chrome/android/java/res/layout/sheet_tab_toolbar.xml
@@ -82,42 +82,48 @@ android:visibility="gone" app:tint="@macro/default_icon_color" /> - <TextView - android:id="@+id/title" + <RelativeLayout + android:id="@+id/page_info" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" + android:layout_height="match_parent" android:layout_toStartOf="@id/open_in_new_tab" android:layout_toEndOf="@id/favicon" - android:textAlignment="viewStart" - android:ellipsize="end" - android:singleLine="true" - android:textAppearance="@style/TextAppearance.TextMedium.Primary" /> + android:layout_marginBottom="6dp" + android:gravity="center"> - <org.chromium.ui.widget.ChromeImageView - android:id="@+id/security_icon" - android:layout_width="16dp" - android:layout_height="16dp" - android:layout_alignStart="@id/title" - android:layout_below="@id/title" - android:layout_marginTop="3dp" - app:tint="@macro/default_icon_color" - tools:ignore="ContentDescription" /> + <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:textAlignment="viewStart" + android:ellipsize="end" + android:singleLine="true" + android:textAppearance="@style/TextAppearance.TextMedium.Primary" /> - <TextView - android:id="@+id/origin" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_toStartOf="@id/open_in_new_tab" - android:layout_toEndOf="@id/security_icon" - android:layout_below="@id/title" - android:layout_marginStart="4dp" - android:textAlignment="viewStart" - android:ellipsize="start" - android:singleLine="true" - android:textAppearance="@style/TextAppearance.TextMedium.Secondary" /> + <org.chromium.ui.widget.ChromeImageView + android:id="@+id/security_icon" + android:layout_width="16dp" + android:layout_height="16dp" + android:layout_alignStart="@id/title" + android:layout_below="@id/title" + android:layout_marginTop="3dp" + app:tint="@macro/default_icon_color" + tools:ignore="ContentDescription" /> + <TextView + android:id="@+id/origin" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_toEndOf="@id/security_icon" + android:layout_below="@id/title" + android:layout_marginStart="4dp" + android:textAlignment="viewStart" + android:ellipsize="start" + android:singleLine="true" + android:textAppearance="@style/TextAppearance.TextMedium.Secondary" /> + </RelativeLayout> </RelativeLayout> <View
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java index 7aef20d..a353de0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java
@@ -12,6 +12,8 @@ import android.graphics.drawable.Drawable; import android.view.View; +import androidx.annotation.VisibleForTesting; + import org.chromium.base.Callback; import org.chromium.base.SysUtils; import org.chromium.base.supplier.Supplier; @@ -62,10 +64,9 @@ private final ActivityTabProvider mTabProvider; private final Supplier<TabCreator> mTabCreator; private final BottomSheetController mBottomSheetController; + private final EphemeralTabMediator mMediator; private final boolean mCanPromoteToNewTab; - private EphemeralTabMediator mMediator; - private WebContents mWebContents; private ContentView mContentView; private EphemeralTabSheetContent mSheetContent; @@ -100,6 +101,12 @@ mTabCreator = tabCreator; mBottomSheetController = bottomSheetController; mCanPromoteToNewTab = canPromoteToNewTab; + + float topControlsHeight = + mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_height_no_shadow) + / mWindow.getDisplay().getDipScale(); + mMediator = new EphemeralTabMediator( + mBottomSheetController, new FaviconLoader(mContext), (int) topControlsHeight); } /** @@ -129,6 +136,20 @@ } /** + * Add observer to be notified of ephemeral tab events. + */ + public void addObserver(EphemeralTabObserver ephemeralTabObserver) { + mMediator.addObserver(ephemeralTabObserver); + } + + /** + * Remove observer. + */ + public void removeObserver(EphemeralTabObserver ephemeralTabObserver) { + mMediator.removeObserver(ephemeralTabObserver); + } + + /** * Alternative entry point for ephemeral tab flow. This will create an ephemeral tab and show it * in the bottom sheet. When the tab is opened in a fullPage, an alternative URL is opened. * @@ -143,13 +164,6 @@ mUrl = url; mFullPageUrl = fullPageUrl; Profile profile = getProfile(isIncognito); - if (mMediator == null) { - float topControlsHeight = - mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_height_no_shadow) - / mWindow.getDisplay().getDipScale(); - mMediator = new EphemeralTabMediator( - mBottomSheetController, new FaviconLoader(mContext), (int) topControlsHeight); - } if (mWebContents == null) { assert mSheetContent == null; createWebContents(profile); @@ -190,7 +204,8 @@ assert intentRequestTracker != null : "ActivityWindowAndroid must have a IntentRequestTracker."; mSheetContent = new EphemeralTabSheetContent(mContext, this::openInNewTab, - this::onToolbarClick, this::close, getMaxViewHeight(), intentRequestTracker); + this::onToolbarClick, this::close, getMaxViewHeight(), intentRequestTracker, + (toolbarView) -> mMediator.onToolbarCreated(toolbarView)); mMediator.init(mWebContents, mContentView, mSheetContent, profile); mLayoutView.addOnLayoutChangeListener(this); } @@ -238,7 +253,7 @@ mContentView = null; } - if (mMediator != null) mMediator.destroyContent(); + mMediator.destroyContent(); mLayoutView.removeOnLayoutChangeListener(this); if (mSheetObserver != null) mBottomSheetController.removeObserver(mSheetObserver); @@ -264,6 +279,14 @@ } /** + * @return The WebContents that this Ephemeral tab currently holds. + */ + @VisibleForTesting + public WebContents getWebContentsForTesting() { + return mWebContents; + } + + /** * Close the ephemeral tab. */ public void close() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java index 3835bb0..e8734dd 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java
@@ -6,10 +6,13 @@ import android.graphics.drawable.Drawable; import android.os.Handler; +import android.view.ViewGroup; import androidx.annotation.DrawableRes; import org.chromium.base.ContextUtils; +import org.chromium.base.ObserverList; +import org.chromium.base.ObserverList.RewindableIterator; import org.chromium.chrome.R; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; @@ -35,6 +38,7 @@ private final BottomSheetController mBottomSheetController; private final EphemeralTabCoordinator.FaviconLoader mFaviconLoader; + private final ObserverList<EphemeralTabObserver> mObservers; private final int mTopControlsHeightDp; private WebContents mWebContents; @@ -51,6 +55,7 @@ mBottomSheetController = bottomSheetController; mFaviconLoader = faviconLoader; mTopControlsHeightDp = topControlsHeightDp; + mObservers = new ObserverList<EphemeralTabObserver>(); } /** @@ -70,6 +75,62 @@ } /** + * Add observer to be notified of ephemeral tab events. + */ + void addObserver(EphemeralTabObserver ephemeralTabObserver) { + mObservers.addObserver(ephemeralTabObserver); + } + + /** + * Remove observer. + */ + void removeObserver(EphemeralTabObserver ephemeralTabObserver) { + mObservers.removeObserver(ephemeralTabObserver); + } + + /** + * Clear observers. + */ + void clearObservers() { + mObservers.clear(); + } + + /** + * Notify observers on toolbar creation. + */ + public void onToolbarCreated(ViewGroup toolbarView) { + RewindableIterator<EphemeralTabObserver> observersIterator = + mObservers.rewindableIterator(); + while (observersIterator.hasNext()) { + observersIterator.next().onToolbarCreated(toolbarView); + } + } + + /** + * Notify observers on navigation start. + */ + public void onNavigationStarted(GURL clickedUrl, BottomSheetController bottomSheetController, + EphemeralTabSheetContent ephemeralTabSheetContent) { + RewindableIterator<EphemeralTabObserver> observersIterator = + mObservers.rewindableIterator(); + while (observersIterator.hasNext()) { + observersIterator.next().onNavigationStarted( + clickedUrl, bottomSheetController, ephemeralTabSheetContent); + } + } + + /** + * Notify observers on title set. + */ + public void onTitleSet(EphemeralTabSheetContent sheetContent, String title) { + RewindableIterator<EphemeralTabObserver> observersIterator = + mObservers.rewindableIterator(); + while (observersIterator.hasNext()) { + observersIterator.next().onTitleSet(sheetContent, title); + } + } + + /** * Loads a new URL into the tab and makes it visible. */ void requestShowContent(GURL url, String title) { @@ -110,6 +171,8 @@ return; } + onNavigationStarted(url, mBottomSheetController, mSheetContent); + mCurrentUrl = url; mFaviconLoader.loadFavicon( url, (drawable) -> onFaviconAvailable(drawable), mProfile); @@ -124,6 +187,7 @@ @Override public void titleWasSet(String title) { mSheetContent.updateTitle(title); + onTitleSet(mSheetContent, title); } @Override @@ -131,7 +195,7 @@ if (navigation.hasCommitted()) { mIsOnErrorPage = navigation.isErrorPage(); mSheetContent.updateURL(mWebContents.get().getVisibleUrl()); - } else { + } else if (navigation.isDownload()) { // Not viewable contents such as download. Show a toast and close the tab. Toast.makeText(ContextUtils.getApplicationContext(), R.string.ephemeral_tab_sheet_not_viewable, Toast.LENGTH_SHORT) @@ -227,5 +291,6 @@ mWebContents = null; mSheetContent = null; mProfile = null; + clearObservers(); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java new file mode 100644 index 0000000..e2d2ccf --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java
@@ -0,0 +1,22 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.compositor.bottombar.ephemeraltab; + +import android.view.ViewGroup; + +import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; +import org.chromium.url.GURL; + +/** + * An Observer that gets notified on Ephemeral Tab events. + */ +public interface EphemeralTabObserver { + default void onToolbarCreated(ViewGroup toolbarView){}; + + default void onNavigationStarted(GURL clickedUrl, BottomSheetController bottomSheetController, + EphemeralTabSheetContent ephemeralTabSheetContent){}; + + default void onTitleSet(EphemeralTabSheetContent sheetContent, String title){}; +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java index bf61782..394c508 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java
@@ -17,6 +17,7 @@ import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; +import org.chromium.base.Callback; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.UnownedUserDataSupplier; import org.chromium.chrome.R; @@ -64,6 +65,7 @@ new ShareDelegateSupplier(); private final ObservableSupplierImpl<Boolean> mBackPressStateChangedSupplier = new ObservableSupplierImpl<>(); + private final Callback<ViewGroup> mOnToolbarCreatedCallback; private ViewGroup mToolbarView; private ViewGroup mSheetContentView; @@ -83,16 +85,19 @@ * @param closeButtonCallback Callback invoked when user clicks on the close button. * @param maxViewHeight The height of the sheet in full height position. * @param intentRequestTracker The {@link IntentRequestTracker} of the current activity. + * @param onToolbarCreatedCallback Callback invoked to notify observers on toolbar creation. */ public EphemeralTabSheetContent(Context context, Runnable openNewTabCallback, Runnable toolbarClickCallback, Runnable closeButtonCallback, int maxViewHeight, - IntentRequestTracker intentRequestTracker) { + IntentRequestTracker intentRequestTracker, + Callback<ViewGroup> onToolbarCreatedCallback) { mContext = context; mOpenNewTabCallback = openNewTabCallback; mToolbarClickCallback = toolbarClickCallback; mCloseButtonCallback = closeButtonCallback; mToolbarHeightPx = mContext.getResources().getDimensionPixelSize(R.dimen.sheet_tab_toolbar_height); + mOnToolbarCreatedCallback = onToolbarCreatedCallback; createThinWebView((int) (maxViewHeight * FULL_HEIGHT_RATIO), intentRequestTracker); createToolbarView(); @@ -155,6 +160,8 @@ mFaviconView = mToolbarView.findViewById(R.id.favicon); mCurrentFavicon = mFaviconView.getDrawable(); + + mOnToolbarCreatedCallback.onResult(mToolbarView); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java index e764af6a..a518ea4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java
@@ -31,12 +31,10 @@ return; } - // commit both shown/hidden histograms here because native may not be loaded when the + // commit shown histograms here because native may not be loaded when the // splashscreen is shown. WebApkUmaRecorder.recordShellApkLaunchToSplashVisible( startTimestamp - mShellApkLaunchTimestamp); - WebApkUmaRecorder.recordShellApkLaunchToSplashHidden( - endTimestamp - mShellApkLaunchTimestamp); if (mNewStyleSplashShownTimestamp != -1) { WebApkUmaRecorder.recordNewStyleShellApkLaunchToSplashVisible(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteController.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteController.java index d092288..42f2b10e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteController.java
@@ -8,6 +8,8 @@ import android.net.Uri; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; import androidx.annotation.Nullable; @@ -16,10 +18,13 @@ import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; +import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabObserver; +import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabSheetContent; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabUtils; import org.chromium.chrome.browser.tabmodel.document.TabDelegate; +import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.page_info.PageInfoAction; import org.chromium.components.page_info.PageInfoControllerDelegate; import org.chromium.components.page_info.PageInfoMainController; @@ -47,6 +52,8 @@ private final WebContents mWebContents; private @Nullable SiteInfo mSiteInfo; + private EphemeralTabObserver mEphemeralTabObserver; + static boolean isFeatureEnabled() { return PageInfoAboutThisSiteControllerJni.get().isFeatureEnabled(); } @@ -100,16 +107,57 @@ } GURL bottomSheetUrl = new GURL(builder.toString()); GURL fullPageUrl = new GURL(url); + + createEphemeralTabObserver(bottomSheetUrl); + + mEphemeralTabCoordinatorSupplier.get().addObserver(mEphemeralTabObserver); mEphemeralTabCoordinatorSupplier.get().requestOpenSheetWithFullPageUrl( bottomSheetUrl, fullPageUrl, getTitle(), /*isIncognito=*/false); + mMainController.dismiss(); } else { - new TabDelegate(/*incognito=*/false) - .createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_CHROME_UI, - TabUtils.fromWebContents(mWebContents)); + openInNewTab(url); } } + public void createEphemeralTabObserver(GURL originUrl) { + mEphemeralTabObserver = new EphemeralTabObserver() { + @Override + public void onToolbarCreated(ViewGroup toolbarView) { + TextView origin = toolbarView.findViewById(R.id.origin); + origin.setVisibility(View.GONE); + + ImageView securityIcon = toolbarView.findViewById(R.id.security_icon); + securityIcon.setVisibility(View.GONE); + + TextView title = toolbarView.findViewById(R.id.title); + title.setTextAppearance(R.style.TextAppearance_TextLarge_Primary); + } + + @Override + public void onNavigationStarted(GURL clickedUrl, + BottomSheetController bottomSheetController, + EphemeralTabSheetContent ephemeralTabSheetContent) { + if (!clickedUrl.equals(originUrl)) { + bottomSheetController.hideContent(ephemeralTabSheetContent, /* animate= */ true, + BottomSheetController.StateChangeReason.PROMOTE_TAB); + openInNewTab(clickedUrl.getSpec()); + } + } + + @Override + public void onTitleSet(EphemeralTabSheetContent sheetContent, String title) { + sheetContent.updateTitle(getTitle()); + } + }; + } + + private void openInNewTab(String url) { + new TabDelegate(/*incognito=*/false) + .createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_CHROME_UI, + TabUtils.fromWebContents(mWebContents)); + } + @Override public void onSubpageRemoved() {}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteTest.java index 5c9e34cb..994ce66 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoAboutThisSiteTest.java
@@ -309,7 +309,8 @@ onView(withId(PageInfoAboutThisSiteController.ROW_ID)).perform(click()); String moreAboutUrl = mTestServerRule.getServer().getURL(sAboutHtml); verify(mMockEphemeralTabCoordinator) - .requestOpenSheetWithFullPageUrl(/*url=*/new GURL(moreAboutUrl + "?ilrm=minimal"), + .requestOpenSheetWithFullPageUrl( + /*url=*/new GURL(moreAboutUrl + "?ilrm=minimal"), /*fullPageUrl=*/new GURL(moreAboutUrl), /*title=*/"About this page", /*isIncognito=*/false); verify(mMockAboutThisSiteJni).onAboutThisSiteRowClicked(true);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/previewtab/PreviewTabTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/previewtab/PreviewTabTest.java index 1718f0c..89b08b0 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/previewtab/PreviewTabTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/previewtab/PreviewTabTest.java
@@ -5,6 +5,7 @@ package org.chromium.chrome.browser.previewtab; import android.support.test.InstrumentationRegistry; +import android.view.ViewGroup; import androidx.test.filters.MediumTest; @@ -14,11 +15,14 @@ import org.junit.Test; import org.junit.runner.RunWith; +import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; import org.chromium.chrome.R; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; +import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabObserver; +import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabSheetContent; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.firstrun.DisableFirstRun; import org.chromium.chrome.browser.tab.Tab; @@ -35,6 +39,8 @@ import org.chromium.net.test.EmbeddedTestServerRule; import org.chromium.url.GURL; +import java.util.concurrent.TimeoutException; + /** * Tests the Preview Tab, also known as the Ephemeral Tab. Based on the * FocusedEditableTextFieldZoomTest and TabsTest. @@ -57,9 +63,34 @@ "/chrome/test/data/android/previewtab/preview_tab.html"; private static final String PREVIEW_TAB_DOM_ID = "previewTab"; private static final String NEAR_BOTTOM_DOM_ID = "nearBottom"; + private static final String ANOTHER_PAGE_DOM_ID = "anotherPage"; private EphemeralTabCoordinator mEphemeralTabCoordinator; private BottomSheetTestSupport mSheetTestSupport; + private TestEphemeralTabObserver mEphemeralTabObserver; + + private static class TestEphemeralTabObserver implements EphemeralTabObserver { + public final CallbackHelper onToolbarCreatedCallback = new CallbackHelper(); + public final CallbackHelper onNavigationStartedCallback = new CallbackHelper(); + public final CallbackHelper onTitleSetCallback = new CallbackHelper(); + + @Override + public void onToolbarCreated(ViewGroup toolbarView) { + onToolbarCreatedCallback.notifyCalled(); + } + + @Override + public void onNavigationStarted(GURL clickedUrl, + BottomSheetController bottomSheetController, + EphemeralTabSheetContent ephemeralTabSheetContent) { + onNavigationStartedCallback.notifyCalled(); + } + + @Override + public void onTitleSet(EphemeralTabSheetContent sheetContent, String title) { + onTitleSetCallback.notifyCalled(); + } + } @Before public void setUp() { @@ -74,6 +105,7 @@ mSheetTestSupport = new BottomSheetTestSupport(mActivityTestRule.getActivity() .getRootUiCoordinatorForTesting() .getBottomSheetController()); + mEphemeralTabObserver = new TestEphemeralTabObserver(); } /** @@ -174,4 +206,38 @@ closePreviewTab(); Assert.assertFalse("Contextual Search should be active", csManager.isSuppressed()); } + + /** + * Test that the observer methods are being notified on events. + */ + @Test + @MediumTest + @Feature({"PreviewTab"}) + public void testObserverMethods() throws TimeoutException { + TestThreadUtils.runOnUiThreadBlocking( + () -> mEphemeralTabCoordinator.addObserver(mEphemeralTabObserver)); + + // Open Preview Tab. + TestThreadUtils.runOnUiThreadBlocking( + () + -> mEphemeralTabCoordinator.requestOpenSheetWithFullPageUrl( + new GURL(mTestServer.getServer().getURL(PREVIEW_TAB)), null, + "PreviewTab", false)); + endAnimations(); + + mEphemeralTabObserver.onToolbarCreatedCallback.waitForCallback(0, 1); + mEphemeralTabObserver.onNavigationStartedCallback.waitForCallback(0, 1); + mEphemeralTabObserver.onTitleSetCallback.waitForCallback(0, 1); + + // Navigate to another page in preview tab. + DOMUtils.clickNode( + mEphemeralTabCoordinator.getWebContentsForTesting(), ANOTHER_PAGE_DOM_ID); + endAnimations(); + + mEphemeralTabObserver.onNavigationStartedCallback.waitForCallback(1, 1); + mEphemeralTabObserver.onTitleSetCallback.waitForCallback(1, 1); + Assert.assertEquals(1, mEphemeralTabObserver.onToolbarCreatedCallback.getCallCount()); + + closePreviewTab(); + } }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 6e822d3..b1d4b5d 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -6239,23 +6239,6 @@ Choose sites to clear </message> - <!-- Experimental Lacros Infobar--> - <message name="IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE" desc="Message shown when user launches Lacros, an experimental feature."> - Experimental (alpha-quality) browser! Some features missing or incomplete. Report issues with: Help > "Report an issue...". - </message> - - <message name="IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_PRIMARY" desc="Addendum which is sometimes added to the initial warning message."> - The standard browser can be found by typing "Chrome" into Launcher. - </message> - - <message name="IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_MANAGED" desc="Addendum which is sometimes added to the initial warning message."> - For more information, contact your administrator. - </message> - - <message name="IDS_EXPERIMENTAL_LACROS_WARNING_LEARN_MORE" desc="A section of text that the user can click on to learn more about Lacros."> - Learn More - </message> - <!-- Bad Flags Infobar--> <message name="IDS_BAD_FLAGS_WARNING_MESSAGE" desc="Message shown when an unsupported command-line flag is used. [Keep it short so it fits in the infobar.]"> You are using an unsupported command-line flag: <ph name="BAD_FLAG">$1<ex>--no-sandbox</ex></ph>. Stability and security will suffer. @@ -14189,16 +14172,6 @@ Settings </message> - <!-- Privacy Sandbox Consent Dialog M1 strings --> - <message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_BANNER_IMAGE_A11Y_DESCRIPTION" translateable="false" desc="A11y description for the banner image in privacy sandbox consent dialog"> - Sed ullamcorper, ligula ac tempus venenatis - </message> - - <!-- Privacy Sandbox Notice Dialog M1 strings --> - <message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_BANNER_IMAGE_A11Y_DESCRIPTION" translateable="false" desc="A11y description for the banner image in privacy sandbox notice ROW dialog"> - Ut venenatis magna nec lacus facilisis - </message> - <!-- Battery Saver Toolbar strings --> <if expr="not is_android"> <message name="IDS_BATTERY_SAVER_BUTTON_TOOLTIP" desc="The tooltip for the battery saver toolbar button">
diff --git a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_LEARN_MORE.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_LEARN_MORE.png.sha1 deleted file mode 100644 index 6bb5c508..0000000 --- a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_LEARN_MORE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -af0f9f5f1692a4ab9c183716fda08ca7368ec143 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE.png.sha1 deleted file mode 100644 index 436ed54..0000000 --- a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -de8cf27ee49a7489ee98660f8ff41533a1e9e527 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_MANAGED.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_MANAGED.png.sha1 deleted file mode 100644 index a84a474..0000000 --- a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_MANAGED.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -e0424e44f7c6dde5256d41904ac7266f501ee0eb \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_PRIMARY.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_PRIMARY.png.sha1 deleted file mode 100644 index 004abc4..0000000 --- a/chrome/app/generated_resources_grd/IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE_PRIMARY.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -c216005a4aea782aac35cce9194edcbf9bb17328 \ No newline at end of file
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index 6ab635d..aa1e884 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -777,6 +777,7 @@ <translation id="168715261339224929">Skakel sinkronisering aan om jou boekmerke op al jou toestelle te kry.</translation> <translation id="1688867105868176567">Vee werfdata uit?</translation> <translation id="1688935057616748272">Tik 'n letter in</translation> +<translation id="1689333818294560261">Bynaam</translation> <translation id="168991973552362966">Voeg 'n nabygeleë drukker by</translation> <translation id="1689945336726856614">Kopieer &URL</translation> <translation id="1692115862433274081">Gebruik 'n ander rekening</translation> @@ -1535,7 +1536,6 @@ <translation id="2329597144923131178">Meld aan om jou boekmerke, geskiedenis, wagwoorde en ander instellings op al jou toestelle te kry.</translation> <translation id="2332115969598251205">Kan nie toestelle laai wat in <ph name="PRIMARY_EMAIL" /> gestoor is nie. Gaan jou internetverbinding na en probeer weer.</translation> <translation id="2332131598580221120">Bekyk in winkel</translation> -<translation id="2332192922827071008">Maak voorkeure oop</translation> <translation id="2332515770639153015">Verbeterde Veiligblaai is aan</translation> <translation id="2332742915001411729">Stel terug na verstek</translation> <translation id="2332948465534020594">Moenie Steur Nie is geaktiveer</translation> @@ -4313,7 +4313,6 @@ <translation id="4893336867552636863">Dit sal jou blaaidata permanent van hierdie toestel af uitvee.</translation> <translation id="4893454800196085005">Goed – DVD</translation> <translation id="4893522937062257019">Op die sluitskerm</translation> -<translation id="4897496410259333978">Kontak jou administrateur vir meer inligting.</translation> <translation id="4898011734382862273">Die sertifikaat "<ph name="CERTIFICATE_NAME" />" verteenwoordig 'n Sertifiseringoutoriteit</translation> <translation id="4899052647152077033">Keer kleure om</translation> <translation id="4899696330053002588">Bevat advertensies</translation> @@ -5850,7 +5849,6 @@ <translation id="6347010704471250799">Wys kennisgewing</translation> <translation id="6349101878882523185">Installeer <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG-elliptiesekurwe-secp256r1 (ook bekend as ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentele (alfagehalte) blaaier! Sommige kenmerke ontbreek of is nie volledig nie. Gee kwessies aan met: Hulp > "Gee 'n kwessie aan …"</translation> <translation id="635609604405270300">Hou toestel aangeskakel</translation> <translation id="63566973648609420">Net iemand met jou wagfrase kan jou geënkripteerde data lees. Die wagfrase word nie na Google gestuur of deur Google geberg nie. As jy jou wagfrase vergeet of hierdie instelling wil verander, sal jy <ph name="BEGIN_LINK" />sinkronisering moet terugstel<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Sommige gesteunde skakels sal steeds in <ph name="APP_NAME" /> of <ph name="APP_NAME_2" /> oopmaak.</translation> @@ -7016,7 +7014,6 @@ <translation id="7434757724413878233">Muisversnelling</translation> <translation id="7434969625063495310">Kon nie die drukbediener byvoeg nie. Gaan die bediener se opstelling na en probeer weer.</translation> <translation id="7436921188514130341">Ai tog! Kon nie hernoem nie.</translation> -<translation id="7438495332316988804">Die standaardblaaier kan gekry word deur "Chrome" in Lanseerder in te tik.</translation> <translation id="7439519621174723623">Voeg 'n toestelnaam by om voort te gaan</translation> <translation id="7441736921018636843">As jy hierdie instelling wil verander, <ph name="BEGIN_LINK" />stel sinkronisering terug<ph name="END_LINK" /> om jou sinkroniseringwagfrase te verwyder</translation> <translation id="7441830548568730290">Ander gebruikers</translation> @@ -7597,6 +7594,7 @@ <translation id="7952904276017482715">Het ID "<ph name="EXPECTED_ID" />" verwag, maar ID was "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Invoere</translation> <translation id="7953955868932471628">Bestuur kortpaaie</translation> +<translation id="7955105108888461311">Vra persoonlik</translation> <translation id="7955177647836564772">As Smart Lock aan is en jou foon is ontsluit, hoef jy nie ’n wagwoord of PIN in te voer nie</translation> <translation id="7956373551960864128">Jou gestoorde drukkers</translation> <translation id="7957074856830851026">Sien toestelinligting soos sy reeksnommer of bate-ID</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 572094e..6bc1d31a 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -767,6 +767,7 @@ <translation id="168715261339224929">የእርስዎን ዕልባቶች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ስምረትን ያብሩ።</translation> <translation id="1688867105868176567">የጣቢያ ውሂብ ይጸዳ?</translation> <translation id="1688935057616748272">አንድ ፊደል ይተይቡ</translation> +<translation id="1689333818294560261">ቅጽል ስም</translation> <translation id="168991973552362966">በአቅራቢያ ያለ አታሚን ያክሉ</translation> <translation id="1689945336726856614">&ዩአርኤል ቅዳ</translation> <translation id="1692115862433274081">ሌላ መለያ ተጠቀም</translation> @@ -1519,7 +1520,6 @@ <translation id="2329597144923131178">የእርስዎን ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ወደ መለያ ይግቡ።</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> ላይ የተቀመጡ መሣሪያዎችን መጫን አልተቻለም። የእርስዎን የበይነመረብ ግንኙነት ይፈትሹ እና እንደገና ይሞክሩ።</translation> <translation id="2332131598580221120">በመደብር ውስጥ ይመልከቱ</translation> -<translation id="2332192922827071008">ምርጫዎችን ክፈት</translation> <translation id="2332515770639153015">የተሻሻለ የደህንነት አሰሳ በርቷል</translation> <translation id="2332742915001411729">ወደ ነባሪ ዳግም አስጀምር</translation> <translation id="2332948465534020594">አትረብሽ ነቅቷል</translation> @@ -4285,7 +4285,6 @@ <translation id="4893336867552636863">ይሄ የአሰሳ ውሂብዎን ለዘለዓለም ከዚህ መሣሪያ ይሰርዘዋል።</translation> <translation id="4893454800196085005">ጥሩ - ዲቪዲ</translation> <translation id="4893522937062257019">በማያ ገጽ ቁልፉ ላይ</translation> -<translation id="4897496410259333978">ለተጨማሪ መረጃ አስተዳዳሪዎን ያነጋግሩ።</translation> <translation id="4898011734382862273">የ«<ph name="CERTIFICATE_NAME" />» እውቅና ማረጋገጫ አንድ የእውቅና ማረጋገጫ ባለሥልጣንን ይወክላል</translation> <translation id="4899052647152077033">ቀለማትን ገልብጥ</translation> <translation id="4899696330053002588">ማስታወቂያዎችን ይዟል</translation> @@ -5819,7 +5818,6 @@ <translation id="6347010704471250799">ማሳወቂያን አሳይ</translation> <translation id="6349101878882523185"><ph name="APP_NAME" />ን ይጫኑ</translation> <translation id="6354918092619878358">የSECG ሞላላ ጥምዝ secp256r1 (እንዲሁም ANSI X9.62 prime256v1, NIST P-256 በመባት የሚታወቅ)</translation> -<translation id="6355789186038748882">የሙከራ (የአልፋ ጥራት) አሳሽ! አንዳንድ ገጽታዎች ይጎድላሉ ወይም አልተጠናቀቁም። ችግሮችን በሚከተለው ሪፖርት ያድርጉ፦ እገዛ > «ችግርን ሪፖርት አድርግ...»።</translation> <translation id="635609604405270300">መሣሪያውን እንደበራ አቆየው</translation> <translation id="63566973648609420">የእርስዎን የይለፍ ሐረግ ያለው ሰው ብቻ ነው የተመሰጠረ ውሂብዎን ማየት የሚችለው። የይለፍ ሐረጉ ለGoogle አይላክም ወይም በእሱ አይከማችም። የይለፍ ሐረግዎን ከረሱት <ph name="BEGIN_LINK" />ስምረትን ዳግም ማስጀመር<ph name="END_LINK" /> ይኖርብዎታል።</translation> <translation id="6357305427698525450">አንዳንድ የሚደገፉ አገናኞች አሁንም በ<ph name="APP_NAME" /> ወይም <ph name="APP_NAME_2" /> ውስጥ ይከፈታሉ።</translation> @@ -6980,7 +6978,6 @@ <translation id="7434757724413878233">የመዳፊት ማፍጠኛ</translation> <translation id="7434969625063495310">የህትመት አገልጋዩን ማከል አልተቻለም። እባክዎ የአገልጋዩን ውቅረት ይፈትሹና እንደገና ይሞክሩ።</translation> <translation id="7436921188514130341">ኧረ ቴች! ዳግም በሚሰየምበት ጊዜ የሆነ ስህተት ነበር።</translation> -<translation id="7438495332316988804">መደበኛውን አሳሸ «Chrome» ብሎ ማስጀመሪያው ውስጥ በመተየብ ሊገኝ ይቻላል።</translation> <translation id="7439519621174723623">ለመቀጠል የመሣሪያ ስም ያክሉ</translation> <translation id="7441736921018636843">ይህን ቅንብር ለመቀየር፣ የእርስዎን የስምረት ይለፍ ሐረግ ለማስወገድ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያቀናብሩ<ph name="END_LINK" /></translation> <translation id="7441830548568730290">ሌሎች ተጠቃሚዎች</translation> @@ -7558,6 +7555,7 @@ <translation id="7952904276017482715">የተጠበቀው መታወቂያ «<ph name="EXPECTED_ID" />» ነበር፣ ነገር ግን መታወቂያው «<ph name="NEW_ID" />» ነበር</translation> <translation id="7953669802889559161">ግቤቶች</translation> <translation id="7953955868932471628">አቋራጮችን ያቀናብሩ</translation> +<translation id="7955105108888461311">በአካል ጠይቅ</translation> <translation id="7955177647836564772">Smart Lock በርቶ ከሆነ እና የእርስዎ ስልክ የተከፈተ ከሆነ የይለፍ ቃል ወይም ፒን ማስገባት አያስፈልግዎትም</translation> <translation id="7956373551960864128">የእርስዎ የተቀመጡ አታሚዎች</translation> <translation id="7957074856830851026">እንደ የመለያ ቁጥሩ ወይም የእሴት መታወቂያ ያለ የመሣሪያ መረጃን ይመልከቱ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 343ac14..0bee0a3 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">الصفحة لا تستجيب.</translation> <translation id="1041263367839475438">الأجهزة المتوفِّرة</translation> <translation id="1042174272890264476">يأتي جهاز الكمبيوتر أيضًا مزودًا بمكتبة RLZ مضمنة للمنتج <ph name="SHORT_PRODUCT_NAME" />. تعيّن RLZ علامة غير فريدة وغير متعلقة بتحديد الشخصية من أجل قياس عمليات البحث ومعدل استخدام <ph name="SHORT_PRODUCT_NAME" /> الذي تؤثر فيه حملة ترويجية محددة. تظهر هذه التصنيفات أحيانًا في طلبات بحث Google في <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">يجب الاتصال ببيانات الجوّال لاستخدام نقطة الاتصال. <ph name="BEGIN_LINK_LEARN_MORE" />مزيد من المعلومات<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">حدث خطأ. قد تتم ترقية نظام التشغيل Linux جزئيًا فقط. لمزيد من المعلومات، يُرجى الاطّلاع على السجلّات. تم حفظ السجلّات في الملفات > ملفاتي > الملف <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">شكل خريطة المفاتيح</translation> <translation id="104710386808485638">هل تريد إعادة تشغيل نظام التشغيل Linux؟</translation> @@ -59,6 +60,7 @@ <translation id="1054153489933238809">فتح الصورة الأصلية في علامة تبويب جديدة</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال أسبوع واحد}zero{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوع}two{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال أسبوعَين ({NUM_WEEKS})}few{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسابيع}many{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوعًا}other{يجب تحديث جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوع}}</translation> <translation id="1056898198331236512">تحذير</translation> +<translation id="1056980582064308040">سيؤدي تغيير الإعدادات إلى إعادة تشغيل نقطة الاتصال. سينقطع اتصال الأجهزة التي تستخدم نقطة الاتصال بالإنترنت.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن حرف واحد، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}zero{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن # حرف، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}two{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن حرفَين، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}few{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن # أحرف، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}many{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن # حرفًا، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}other{يُرجى إدخال رقم التعريف الشخصي الجديد. يجب ألا يقلّ رقم التعريف الشخصي عن # حرف، ويمكن أن يحتوي على حروف وأرقام وأحرف أخرى.}}</translation> <translation id="1059484610606223931">تأمين بروتوكول نقل الروابط النصية (HTTPS)</translation> @@ -156,6 +158,7 @@ <translation id="1139923033416533844">استخدام الذاكرة</translation> <translation id="1140351953533677694">الوصول إلى بلوتوث والأجهزة التسلسلية</translation> <translation id="114036956334641753">الصوت والشرح</translation> +<translation id="1141949282671776404">عندما كانت علامة التبويب هذه غير نشطة، نجحت ميزة "توفير الذاكرة" في تفريغ <ph name="MEMORY_VALUE" /> من الذاكرة لتنفيذ مهام أخرى.</translation> <translation id="1142002900084379065">الصور الحديثة</translation> <translation id="1143142264369994168">الموقّع على الشهادات</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل دقيقة واحدة.}zero{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل {NUM_MINS} دقيقة.}two{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل دقيقتَين ({NUM_MINS}).}few{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل {NUM_MINS} دقائق.}many{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل {NUM_MINS} دقيقة.}other{لم يعثر متصفِّح Chrome على برامج ضارّة في جهاز الكمبيوتر • تم إجراء عملية التحقُّق قبل {NUM_MINS} دقيقة.}}</translation> @@ -307,6 +310,7 @@ <translation id="1272079795634619415">إيقاف</translation> <translation id="1272508081857842302">فتح <ph name="BEGIN_LINK" />الروابط المتوافقة<ph name="END_LINK" /></translation> <translation id="1272978324304772054">لا ينتمي حساب المستخدم هذا إلى النطاق المسجَّل به هذا الجهاز. إذا أردت التسجيل بنطاق مختلف، فيلزمك إجراء استرداد الجهاز أولاً.</translation> +<translation id="1273937721055267968">حظر <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">ملفات تعريف الارتباط وبيانات الموقع الإلكتروني الأخرى</translation> <translation id="1275718070701477396">تم التحديد</translation> <translation id="1276994519141842946">تعذّر إلغاء تثبيت <ph name="APP_NAME" />.</translation> @@ -319,6 +323,7 @@ <translation id="1285320974508926690">عدم ترجمة هذا الموقع مطلقًا</translation> <translation id="1285484354230578868">تخزين البيانات في حساب Google Drive</translation> <translation id="1285625592773741684">الإعداد الحالي لاستخدام البيانات هو "بيانات الجوّال".</translation> +<translation id="1285815028662278915">قد لا تتوافق بيانات الجوّال مع نقطة الاتصال. <ph name="BEGIN_LINK_LEARN_MORE" />مزيد من المعلومات<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">سيتم تشغيل الإضاءة الليلية تلقائيًا عند غروب الشمس.</translation> <translation id="1288300545283011870">خصائص الكلام</translation> <translation id="1289619947962767206">لم يَعُد هذا الخيار متوفرًا. ولعرض علامة تبويب، استخدِم <ph name="GOOGLE_MEET" />.</translation> @@ -358,6 +363,7 @@ <translation id="1327495825214193325">لتفعيل خيار "تصحيح الأخطاء عبر ADB"، يجب إعادة تشغيل <ph name="DEVICE_TYPE" />. ويتطلب إيقاف هذا الخيار إعادة ضبط الجهاز على الإعدادات الأصلية.</translation> <translation id="1327527584824210101">استخدام مفتاح المرور</translation> <translation id="1327794256477341646">لن تعمل الميزات التي تحتاج إلى موقعك الجغرافي.</translation> +<translation id="1329466763986822896">تحسين مستوى الخصوصية لنقطة الاتصال هذه</translation> <translation id="1331977651797684645">كان هذا أنا.</translation> <translation id="1333489022424033687">قد لا تعمل بعض ميزات <ph name="ORIGIN" /> حتى تقوم بمحو البيانات التي خزّنتها المواقع الإلكترونية الأخرى على جهازك.</translation> <translation id="1333965224356556482">عدم السماح للمواقع الإلكترونية بالوصول إلى موقعك الجغرافي</translation> @@ -596,6 +602,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{لن تتم إعادة فتح نافذة التصفح المتخفي.}zero{لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}two{لن تتم إعادة فتح نافذتَي التصفّح المتخفي.}few{لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}many{لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}other{لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}}</translation> <translation id="1546280085599573572">غيّرت هذه الإضافة الصفحة التي تظهر عند النقر على زر الصفحة الرئيسية.</translation> <translation id="1546452108651444655">يريد <ph name="CHILD_NAME" /> تثبيت <ph name="EXTENSION_TYPE" /> يمكنها:</translation> +<translation id="1547123415014299762">السماح بملفات تعريف الارتباط التابعة لجهات خارجية</translation> <translation id="1547808936554660006">أدرك أنّ الملفات التعريفية المثبّتة لشرائح eSIM لن تتم إزالتها بعد إجراء عملية Powerwash</translation> <translation id="1547936895218027488">انقر على رمز اللوحة الجانبية لفتحها.</translation> <translation id="1549275686094429035">تم تفعيل "وقت تشغيل التطبيقات في Chrome"</translation> @@ -654,6 +661,7 @@ <translation id="1596286373007273895">متوفِّر</translation> <translation id="1596709061955594992">تم إيقاف اتصال البلوتوث. يُرجى تفعيل اتصال البلوتوث لرؤية الأجهزة المتاحة.</translation> <translation id="1596780725094407793">- بما في ذلك النطاقات الفرعية</translation> +<translation id="1598163867407640634">استخدِم <ph name="SITE_ETLD_PLUS_ONE" /> مع <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />.</translation> <translation id="1598233202702788831">أوقف المشرف التحديثات.</translation> <translation id="1600857548979126453">الدخول إلى الواجهة الخلفية لبرنامج تصحيح أخطاء الصفحة</translation> <translation id="1601560923496285236">تطبيق</translation> @@ -769,6 +777,7 @@ <translation id="168715261339224929">للحصول على الإشارات المرجعية على جميع أجهزتك، يُرجى تفعيل المزامنة.</translation> <translation id="1688867105868176567">هل تريد محو بيانات الموقع الإلكتروني؟</translation> <translation id="1688935057616748272">يرجى كتابة حرف.</translation> +<translation id="1689333818294560261">اللقب</translation> <translation id="168991973552362966">إضافة طابعة قريبة</translation> <translation id="1689945336726856614">نسخ &عنوان URL</translation> <translation id="1692115862433274081">استخدام حساب آخر</translation> @@ -1232,6 +1241,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />ملاحظة:<ph name="END_BOLD" /> ستتم إعادة تشغيل النظام أثناء تنفيذ العملية.</translation> <translation id="2095774564753225041">أنواع الملفات المتوافقة</translation> +<translation id="2097616539631531348">عندما كانت علامة التبويب هذه غير نشطة، نجحت ميزة "توفير الذاكرة" في تفريغ مساحة من الذاكرة لتنفيذ مهام أخرى.</translation> <translation id="2098805196501063469">التحقُّق من كلمات المرور المتبقية</translation> <translation id="2099686503067610784">هل تريد حذف شهادة الخادم "<ph name="CERTIFICATE_NAME" />"؟</translation> <translation id="2100273922101894616">تسجيل الدخول تلقائيًا</translation> @@ -1400,6 +1410,7 @@ <translation id="2247870315273396641">معاينة الصوت</translation> <translation id="2249111429176737533">فتح كنافذة ذات علامة تبويب</translation> <translation id="2249605167705922988">مثال: 1-5، 8، 11-13</translation> +<translation id="2249635629516220541">تخصيص المعلومات التي تستخدمها المواقع الإلكترونية لعرض الإعلانات لك</translation> <translation id="2251218783371366160">فتح باستخدام عارض النظام</translation> <translation id="225163402930830576">تحديث الشبكات</translation> <translation id="2251809247798634662">نافذة جديدة للتصفح المتخفي</translation> @@ -1514,7 +1525,6 @@ <translation id="2329597144923131178">سجّل الدخول للحصول على الإشارات المرجعية، والسجل، وكلمات المرور، والإعدادات الأخرى على كل أجهزتك.</translation> <translation id="2332115969598251205">يتعذّر تحميل الأجهزة المحفوظة في <ph name="PRIMARY_EMAIL" />. يُرجى التحقّق من اتصال الإنترنت وإعادة المحاولة.</translation> <translation id="2332131598580221120">عرض في المتجر</translation> -<translation id="2332192922827071008">فتح الإعدادات المفضَّلة</translation> <translation id="2332515770639153015">ميزة "الحماية المُحسَّنة للتصفّح الآمن" مفعَّلة</translation> <translation id="2332742915001411729">إعادة الضبط على الإعداد التلقائي</translation> <translation id="2332948465534020594">تم تفعيل وضع "عدم الإزعاج"</translation> @@ -1849,6 +1859,7 @@ <translation id="2640299212685523844">استخدام GTK</translation> <translation id="264083724974021997">الاتصال بهاتفك - مربع حوار</translation> <translation id="2642111877055905627">كرة القدم</translation> +<translation id="2643064289437760082">يمكنك في أي وقت حذف بيانات قياس أداء الإعلانات عن طريق حذف بيانات التصفّح.</translation> <translation id="2643698698624765890">يمكنك إدارة الإضافات من خلال النقر على "الإضافات" في القائمة "نافذة".</translation> <translation id="2645047101481282803">تتم إدارة جهازك من قِبل <ph name="PROFILE_NAME" />.</translation> <translation id="2645435784669275700">نظام التشغيل Chrome</translation> @@ -2309,6 +2320,7 @@ <translation id="3036327949511794916">لقد انتهت مهلة إرجاع جهاز <ph name="DEVICE_TYPE" /> هذا.</translation> <translation id="3036546437875325427">تفعيل Flash</translation> <translation id="3037754279345160234">يتعذَّر تحليل الإعداد لضمّ النطاق. يُرجى الاتصال بمشرفك.</translation> +<translation id="3038272154009688107">عرض كل المواقع الإلكترونية</translation> <translation id="3038612606416062604">إضافة طابعة يدويًا</translation> <translation id="3039491566278747710">تعذّر تثبيت السياسة بلا إنترنت على الجهاز.</translation> <translation id="3043016484125065343">يجب تسجيل الدخول للاطّلاع على الإشارات المرجعية</translation> @@ -2545,6 +2557,7 @@ <translation id="3289668031376215426">الكتابة بالأحرف الكبيرة تلقائيًا</translation> <translation id="3289856944988573801">للتحقق من وجود تحديثات، يُرجى استخدام شبكة Ethernet أو Wi-Fi.</translation> <translation id="3290249595466894471">يُرسِل هذا الوضع أيضًا عددًا قليلاً من الصفحات وعمليات التنزيل وأنشطة الإضافات ومعلومات النظام للمساعدة في اكتشاف التهديدات الجديدة.</translation> +<translation id="3293181007446299124">يتم الحفاظ على خصوصية سجلّ التصفُّح في جهازك ويتم تأخير إرسال التقارير بهدف حماية هويتك.</translation> <translation id="3293644607209440645">إرسال هذه الصفحة</translation> <translation id="32939749466444286">يتعذَّر بدء حاوية نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation> <translation id="3294437725009624529">ضيف</translation> @@ -3323,6 +3336,7 @@ <translation id="3984431586879874039">هل تريد السماح لهذا الموقع الإلكتروني بالاطّلاع على مفتاح الأمان؟</translation> <translation id="398477389655464998">نسخ الرابط المؤدي إلى نص محدد</translation> <translation id="3984862166739904574">تعريف المصطلحات باستخدام ميزة "معلومات سريعة"</translation> +<translation id="3985022125189960801">يمكنك إعادة إضافة موقع إلكتروني إذا أردت إدراجه ضمن مجموعة المواقع الإلكترونية التي يمكنها تخمين ما يعجبك.</translation> <translation id="3987544746655539083">مواصلة حظر هذا الموقع الإلكتروني من الوصول إلى موقعك الجغرافي</translation> <translation id="3987938432087324095">عذرًا، لم يتم التعرف على ذلك.</translation> <translation id="3987993985790029246">نسخ الرابط</translation> @@ -3373,6 +3387,7 @@ <translation id="4040041015953651705">لغة النص المطلوب ترجمته</translation> <translation id="4040105702484676956">هل تريد محو البيانات والأذونات الخاصة باللموقع الإلكتروني <ph name="SITE_NAME" /> وتطبيقه المثبَّت؟</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{الخروج من الصفحة}zero{الخروج من صفحة}two{الخروج من الصفحتين}few{الخروج من صفحات}many{الخروج من صفحة}other{الخروج من صفحة}}</translation> +<translation id="4042941173059740150">المتابعة إلى <ph name="SITE_ETLD_PLUS_ONE" /> باستخدام <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">حجم مؤشر الماوس</translation> <translation id="4044612648082411741">إدخال كلمة المرور للشهادة</translation> <translation id="4044708573046946214">كلمة مرور قفل الشاشة</translation> @@ -3700,6 +3715,7 @@ <translation id="4366138410738374926">بدأت عملية الطباعة</translation> <translation id="4367513928820380646">مراجعة الأذونات التي تمت إزالتها</translation> <translation id="4369215744064167350">تمت الموافقة على طلب الوصول إلى الموقع الإلكتروني</translation> +<translation id="4369735607080757018">تتم مشاركة أنواع محدودة من البيانات بين المواقع الإلكترونية لقياس أداء إعلاناتها، مثل الوقت الذي تم فيه عرض الإعلان.</translation> <translation id="4370975561335139969">البريد الإلكتروني وكلمة المرور اللذان أدخلتهما غير متطابقين</translation> <translation id="4374831787438678295">أداة تثبيت Linux</translation> <translation id="4375035964737468845">فتح الملفات التي تم تنزيلها</translation> @@ -3720,6 +3736,7 @@ <translation id="4385146930797718821">تم نسخ لقطة الشاشة إلى الحافظة</translation> <translation id="4385905942116811558">جارٍ البحث عن أجهزة تتضمّن بلوتوث وأجهزة USB</translation> <translation id="4387890294700445764">كلمات مرور محتمَل تعرّضها للاختراق</translation> +<translation id="4388650384344483842">يجب استخدام 8 أحرف على الأقل.</translation> <translation id="4389091756366370506">المستخدم <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" /> و<ph name="SECOND_SWITCH" /> و<ph name="THIRD_SWITCH" /> و<ph name="NUMBER_OF_OTHER_SWITCHES" /> مفتاح تبديل آخر</translation> <translation id="439266289085815679">يتم التحكّم في إعداد البلوتوث من قِبل <ph name="USER_EMAIL" />.</translation> @@ -4041,6 +4058,7 @@ <translation id="4666472247053585787">استخدام <ph name="DEVICE_TYPE" /> في الاطّلاع على الإشعارات من هاتفك</translation> <translation id="4666911709726371538">المزيد من التطبيقات</translation> <translation id="4667027203988048332">البيانات التي يتم استخدامها:</translation> +<translation id="4668279686271488041">يتم بانتظام حذف بيانات "قياس أداء الإعلانات" من جهازك.</translation> <translation id="4672759829555593783">فتح الملف "<ph name="FILE_NAME" />" الآن</translation> <translation id="46733273239502219">سيتم أيضًا محو البيانات المتوفرة بلا اتصال بالإنترنت في التطبيقات المثبّتة.</translation> <translation id="4673442866648850031">فتح أدوات قلم الشاشة عندما تتم إزالة قلم الشاشة</translation> @@ -4234,6 +4252,7 @@ <translation id="485480310608090163">المزيد من الإعدادات والأذونات</translation> <translation id="4858913220355269194">فريتز</translation> <translation id="4862642413395066333">توقيع استجابات OCSP</translation> +<translation id="4863702650881330715">توسيع نطاق التوافق</translation> <translation id="4863769717153320198">تبدو كـ <ph name="WIDTH" /> x <ph name="HEIGHT" /> (تلقائية)</translation> <translation id="4864805589453749318">اختَر أحد الوالدَين الذي يمنح الإذن لإضافة حساب مؤسسة تعليمية.</translation> <translation id="486635084936119914">فتح أنواع معينة من الملفات تلقائيًا بعد التنزيل</translation> @@ -4282,7 +4301,6 @@ <translation id="4893336867552636863">سيؤدي هذا إلى حذف بيانات التصفح من هذا الجهاز نهائيًا.</translation> <translation id="4893454800196085005">جيدة - DVD</translation> <translation id="4893522937062257019">على شاشة القفل</translation> -<translation id="4897496410259333978">تواصَل مع المشرف للحصول على المزيد من المعلومات.</translation> <translation id="4898011734382862273">تمثل الشهادة "<ph name="CERTIFICATE_NAME" />" مرجعًا مصدقًا</translation> <translation id="4899052647152077033">قلب الألوان</translation> <translation id="4899696330053002588">يتضمّن إعلانات</translation> @@ -4480,6 +4498,7 @@ <translation id="5094721898978802975">الاتصال بتطبيقات التعاون الأصلية</translation> <translation id="5097002363526479830">تعذّر الاتصال بشبكة "<ph name="NAME" />": <ph name="DETAILS" /></translation> <translation id="5097306410549350357">مزيد من المعلومات حول استخدام الموقع الجغرافي</translation> +<translation id="5097349930204431044">يمكن للمواقع الإلكترونية التي تنتقل إليها تحديد اهتماماتك، ثم اقتراح الإعلانات أثناء مواصلة التصفُّح.</translation> <translation id="5097649414558628673">الأداة: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">النقر تلقائيًا عند توقف المؤشر</translation> <translation id="5101683448725092498">الاحتفاظ بنسخة احتياطية من بياناتك</translation> @@ -4662,6 +4681,7 @@ <translation id="5275352920323889391">كلب</translation> <translation id="527605719918376753">تجاهل علامة التبويب</translation> <translation id="527605982717517565">السماح بتشغيل JavaScript على الموقع <ph name="HOST" /> دومًا</translation> +<translation id="5276357196618041410">يجب تسجيل الدخول لحفظ الإعدادات.</translation> <translation id="5277127016695466621">إظهار اللوحة الجانبية</translation> <translation id="5278823018825269962">رقم تعريف الحالة</translation> <translation id="5279600392753459966">حجب الكل</translation> @@ -5816,7 +5836,6 @@ <translation id="6347010704471250799">عرض إشعار</translation> <translation id="6349101878882523185">تثبيت <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">منحنى SECG ناقص المقطع secp256r1 (aka ANSI X9.62 prime256v1، NIST P-256)</translation> -<translation id="6355789186038748882">يُرجى العِلم أنّ هذا متصفّح تجريبي (جودة الإصدار الأولي) وأنّ بعض الميزات غير متوفّرة أو غير مكتملة. يمكنك الإبلاغ عن أي مشاكل من خلال الانتقال إلى مساعدة > "الإبلاغ عن مشكلة...".</translation> <translation id="635609604405270300">يُرجى إبقاء الجهاز مشغَّلاً</translation> <translation id="63566973648609420">لا يمكن لأحد قراءة بياناتك المشفرة سوى من لديه عبارة المرور التي تستخدمها. ولا يتم إرسال عبارة المرور إلى شركة Google أو تخزينها لديها. إذا نسيت عبارة المرور أو رغبت في تغيير هذا الإعداد، فسيلزمك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">ستظل بعض الروابط المتوافقة مفتوحة في تطبيق <ph name="APP_NAME" /> أو <ph name="APP_NAME_2" />.</translation> @@ -6164,6 +6183,7 @@ <translation id="6670767097276846646">بعض الإضافات يمكنها إضافة محركات بحث إلى متصفّح Chrome.</translation> <translation id="6671320560732140690">{COUNT,plural, =1{عنوان واحد}zero{# عنوان}two{عنوانان}few{# عناوين}many{# عنوانًا}other{# عنوان}}</translation> <translation id="6671497123040790595">جارٍ إعداد الإدارة من قِبل <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">إضافة <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">لبدء المزامنة، يجب إدخال عبارة المرور.</translation> <translation id="6675665718701918026">الإشارة إلى الأجهزة المتصلة</translation> @@ -6247,6 +6267,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (التصفح المتخفي)</translation> <translation id="6756157672127672536">يتيح تطبيق "الملفات" الوصول سريعًا إلى الملفات التي حفظتها على Google Drive، أو وحدة تخزين خارجية، أو جهازك الذي يعمل بنظام التشغيل Chrome.</translation> <translation id="6756643207511618722">محركات تحويل النص إلى كلام</translation> +<translation id="6757431299485455321">مساعدة الأجهزة الأخرى في العثور على نقطة الاتصال هذه</translation> <translation id="6758056191028427665">يُرجى تقييم أدائنا.</translation> <translation id="6759193508432371551">إعادة الضبط على الإعدادات الأصلية</translation> <translation id="6761431452438552910">يُرجى التأكّد من أنّ جهازك الذي يتضمّن بلوتوث في وضع الإقران وأنّه في مكان مجاور. ولا تقرِنه إلا بأجهزة تثق بها.</translation> @@ -6346,6 +6367,7 @@ <translation id="6833479554815567477">تمت إزالة علامة التبويب من المجموعة <ph name="GROUP_NAME" /> والتي تحتوي على <ph name="GROUP_CONTENTS" />.</translation> <translation id="683373380308365518">التبديل إلى متصفح ذكي وآمن</translation> <translation id="6833996806551876956">الفترة التجريبية لاستخدام ميزة Privacy Sandbox</translation> +<translation id="6835712061486505758">يمكنك إنشاء نقطة اتصال Wi-Fi لتوفير الإنترنت للأجهزة الأخرى. <ph name="BEGIN_LINK_LEARN_MORE" />مزيد من المعلومات<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">يُرجى الاتصال بالإنترنت لتحديث <ph name="DEVICE_TYPE" />.</translation> <translation id="6839225236531462745">خطأ حذف الشهادة</translation> <translation id="6839916869147598086">تم تغيير تسجيل الدخول</translation> @@ -6507,6 +6529,7 @@ <translation id="697508444536771064">إيقاف نظام التشغيل Linux</translation> <translation id="6975361011348772931">إضافة تطلب الإذن بقراءة محتوى الموقع الإلكتروني وتغييره</translation> <translation id="6978121630131642226">محرّكات البحث</translation> +<translation id="6978717888677691380">المواقع الإلكترونية التي حظرتها</translation> <translation id="6979041727349121225">وضع "توفير الطاقة"</translation> <translation id="6979044105893951891">بدء جلسات الضيوف المُدارة والخروج منها</translation> <translation id="6979440798594660689">كتم الصوت (تلقائي)</translation> @@ -6598,6 +6621,7 @@ <translation id="7047059339731138197">اختيار خلفية</translation> <translation id="7048457618657122233">مشاركة الرابط الذي يؤدي إلى <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">هل تريد الاحتفاظ بالملف؟</translation> +<translation id="7050037487872780845">إعدادات نقطة الاتصال غير صالحة.</translation> <translation id="7052237160939977163">إرسال بيانات تتبع مستوى الأداء</translation> <translation id="7053983685419859001">حظر</translation> <translation id="7055152154916055070">تم حظر إعادة توجيه:</translation> @@ -6803,6 +6827,7 @@ <translation id="7258192266780953209">تحويل حالات الأحرف</translation> <translation id="7258225044283673131">التطبيق لا يستجيب. اختَر "فرض الإغلاق" لإغلاق التطبيق.</translation> <translation id="7260186537988033909">اكتمل تسجيل الجهاز في وضع الكشك واللوحات الرقمية.</translation> +<translation id="7260367682327802201">قد يتضمّن جهاز Android خيارًا مشابهًا. في حال تفعيل ميزة "قياس أداء الإعلانات" في Chrome وعلى جهاز Android، يمكن للشركة قياس مدى فاعلية الإعلان المعروض على المواقع الإلكترونية التي تزورها والتطبيقات التي تستخدمها.</translation> <translation id="7262004276116528033">يستضيف <ph name="SAML_DOMAIN" /> خدمة تسجيل الدخول هذه.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{تمّت إزالة الأذونات لموقع إلكتروني واحد}zero{تمّت إزالة الأذونات لـ {NUM_SITES} موقع إلكتروني}two{تمّت إزالة الأذونات لموقعَين إلكترونيَّين ({NUM_SITES})}few{تمّت إزالة الأذونات لـ {NUM_SITES} مواقع إلكترونية}many{تمّت إزالة الأذونات لـ {NUM_SITES} موقعًا إلكترونيًا}other{تمّت إزالة الأذونات لـ {NUM_SITES} موقع إلكتروني}}</translation> <translation id="7264695323040866038">هل تريد استخدام التطبيق <ph name="APP" /> دائمًا لفتح روابط الويب المتوافقة؟</translation> @@ -6946,6 +6971,7 @@ <translation id="7406912950279255498">وضع "قلب الألوان"</translation> <translation id="7407430846095439694">الاستيراد والربط</translation> <translation id="7407504355934009739">يحظر معظم المستخدمين الإشعارات من هذا الموقع الإلكتروني.</translation> +<translation id="7408080603962564527">سيكون هذا الاسم ظاهرًا للآخرين.</translation> <translation id="740810853557944681">إضافة خادم طباعة</translation> <translation id="7409549334477097887">كبير جدًا</translation> <translation id="7409599290172516453">الصور الحديثة</translation> @@ -6984,7 +7010,6 @@ <translation id="7434757724413878233">تسريع الماوس</translation> <translation id="7434969625063495310">تعذّر العثور على خادم الطباعة. يُرجى التحقّق من إعدادات الخادم وإعادة المحاولة.</translation> <translation id="7436921188514130341">عذرًا، حدث خطأ في أثناء إعادة التسمية.</translation> -<translation id="7438495332316988804">يمكنك العثور على المتصفِّح العادي من خلال كتابة كلمة Chrome في مشغّل التطبيقات.</translation> <translation id="7439519621174723623">يجب إضافة اسم جهاز للمتابعة.</translation> <translation id="7441736921018636843">لتغيير هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /> لإزالة عبارة مرور المزامنة.</translation> <translation id="7441830548568730290">المستخدمون الآخرون</translation> @@ -7236,7 +7261,7 @@ <translation id="766635563210446220">يتعذّر استيراد كلمات المرور. يُرجى مراجعة ملف "<ph name="FILENAME" />" والتأكّد من تنسيقه بشكلٍ صحيح. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> <translation id="7666531788977935712">تم تفعيل زر "متابعة".</translation> <translation id="7668002322287525834">{NUM_WEEKS,plural, =1{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال أسبوع واحد ({NUM_WEEKS})}zero{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوع}two{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال أسبوعَين ({NUM_WEEKS})}few{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسابيع}many{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوعًا}other{يجب إرجاع جهاز <ph name="DEVICE_TYPE" /> خلال {NUM_WEEKS} أسبوع}}</translation> -<translation id="7668423670802040666">تعديل كلمة المرور في "مدير كلمات المرور" من Google للحساب <ph name="ACCOUNT" /></translation> +<translation id="7668423670802040666">تعديل كلمة المرور في "مدير كلمات المرور في Google" للحساب <ph name="ACCOUNT" /></translation> <translation id="7668648754769651616">تساعدك ميزات تسهيل الاستخدام في استخدام جهازك بشكل أكثر سهولة. للوصول إلى "الإعدادات السريعة"، انقر على الوقت في أسفل الشاشة.</translation> <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{رقم التعريف الشخصي غير صحيح. يتبقى لديك محاولة واحدة.}zero{رقم التعريف الشخصي غير صحيح. لم يتبقَّ لديك أي محاولة.}two{رقم التعريف الشخصي غير صحيح. يتبقى لديك محاولتان (#).}few{رقم التعريف الشخصي غير صحيح. يتبقى لديك # محاولات.}many{رقم التعريف الشخصي غير صحيح. يتبقى لديك # محاولةً.}other{رقم التعريف الشخصي غير صحيح. يتبقى لديك # محاولة.}}</translation> <translation id="7670434942695515800">للحصول على أفضل أداء، يُرجى الترقية لأحدث إصدار. ننصحك بالاحتفاظ بنسخة احتياطية من الملفات في حال تعذُر اكتمال عملية الترقية. سيتوقف نظام التشغيل Linux عند بدء ترقيته. عليك حفظ الملفات المفتوحة قبل المتابعة. <ph name="LINK_START" />مزيد من المعلومات<ph name="LINK_END" /></translation> @@ -7261,6 +7286,7 @@ <translation id="7684718995427157417">لإنشاء تطبيقاتك واختبارها، فعِّل (Android Debug Bridge (ADB. تجدر الإشارة إلى أنه يسمح هذا الإجراء بتثبيت تطبيقات متوافقة مع Android لم يتم إثبات ملكيتها من خلال Google، ويتطلب إعادة الضبط على الإعدادات الأصلية للإيقاف.</translation> <translation id="7685049629764448582">ذاكرة JavaScript</translation> <translation id="7685087414635069102">رقم التعريف الشخصي مطلوب</translation> +<translation id="7686086654630106285">مزيد من المعلومات عن الإعلانات التي تقترحها المواقع الإلكترونية</translation> <translation id="7686581688229391955">حرِّك زر الإيقاف/التفعيل لتفعيل الإضافات على هذا الموقع الإلكتروني.</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">تأكيد كلمة المرور الجديدة</translation> @@ -7282,6 +7308,7 @@ <translation id="7704317875155739195">الإكمال التلقائي لعناوين URL وعمليات البحث</translation> <translation id="7704521324619958564">فتح متجر Play</translation> <translation id="7705276765467986571">تعذر تحميل نموذج الإشارة.</translation> +<translation id="7705334495398865155">اختيار رقم تعريف عشوائي لهذا الجهاز (معرّف مجموعة الخدمات الأساسية (BSSID)) لمنع الآخرين من تتبُّعه</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">تم حظر الموقع الإلكتروني هذا من استخدام مستشعرات الحركة.</translation> <translation id="7707922173985738739">استخدام بيانات الجوّال</translation> @@ -7475,6 +7502,7 @@ <translation id="7881483672146086348">عرض حساب</translation> <translation id="7883792253546618164">يمكنك إلغاء الاشتراك في أي وقت.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{مراجعة أذونات موقع إلكتروني واحد أرسل الكثير من الإشعارات}zero{مراجعة أذونات {NUM_SITES} موقع إلكتروني أرسل الكثير من الإشعارات}two{مراجعة أذونات موقعَين إلكترونيَّين ({NUM_SITES}) أرسلا الكثير من الإشعارات}few{مراجعة أذونات {NUM_SITES} مواقع إلكترونية أرسلت الكثير من الإشعارات}many{مراجعة أذونات {NUM_SITES} موقعًا إلكترونيًا أرسل الكثير من الإشعارات}other{مراجعة أذونات {NUM_SITES} موقع إلكتروني أرسل الكثير من الإشعارات}}</translation> +<translation id="7884446017008693258">إعدادات نقطة الاتصال</translation> <translation id="788453346724465748">جارٍ تحميل معلومات الحساب...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{عنصر واحد}zero{# عنصر}two{عنصران}few{# عناصر}many{# عنصرًا}other{# عنصر}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7562,6 +7590,7 @@ <translation id="7952904276017482715">رقم التعريف المتوقَّع "<ph name="EXPECTED_ID" />"، ولكن رقم التعريف كان "<ph name="NEW_ID" />".</translation> <translation id="7953669802889559161">أساليب الإدخال</translation> <translation id="7953955868932471628">إدارة لإختصارات</translation> +<translation id="7955105108888461311">طلب الوصول شخصيًا</translation> <translation id="7955177647836564772">في حال تفعيل مجموعة ميزات Smart Lock وكان هاتفك غير مقفل، لن تحتاج إلى إدخال كلمة مرور أو رقم تعريف شخصي.</translation> <translation id="7956373551960864128">الطابعات المحفوظة</translation> <translation id="7957074856830851026">الاطّلاع على معلومات الجهاز، مثل الرقم التسلسلي أو رقم تعريف مادة العرض</translation> @@ -7700,6 +7729,7 @@ <ph name="BEGIN_PARAGRAPH3" />يمكنك إيقاف هذه الخدمة في "الإعدادات".<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">علامات التبويب</translation> <translation id="8076835018653442223">أوقف المشرف إمكانية الوصول إلى الملفات المحلية على جهازك.</translation> +<translation id="8077120325605624147">السماح لأي موقع إلكتروني تزوره بعرض أي إعلان لك</translation> <translation id="80798452873915119">السماح للمواقع الإلكترونية بطلب إدارة النوافذ على جميع شاشات أجهزتك</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">تتم إدارة جلستك من خلال <ph name="MANAGER_NAME" />. ويمكن للمشرفين حذف ملفك الشخصي وتتبّع حركة بيانات الشبكة أيضًا.</translation> @@ -8213,6 +8243,7 @@ <translation id="8557180006508471423">تفعيل "Google Chrome" في "خدمات الموقع الجغرافي" على جهاز يعمل بنظام التشغيل Mac</translation> <translation id="8557856025359704738">سيتم إجراء عملية التنزيل التالية في <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">مفاتيح المرور</translation> +<translation id="8559961053328923750">يحد متصفِّح Chrome من إجمالي البيانات التي يمكن للمواقع الإلكترونية مشاركتها من خلال المتصفّح لقياس أداء الإعلانات.</translation> <translation id="8560327176991673955">{COUNT,plural, =0{فتح كل العناوين في &نافذة جديدة}=1{فتح في &نافذة جديدة}two{فتح كِلا العنوانَين ({COUNT}) في &نافذة جديدة}few{فتح كل الـ ({COUNT}) عناوين في &نافذة جديدة}many{فتح كل الـ ({COUNT}) عنوانًا في &نافذة جديدة}other{فتح كل الـ ({COUNT}) عنوان في &نافذة جديدة}}</translation> <translation id="8561206103590473338">فيل</translation> <translation id="8561565784790166472">يُرجى المتابعة مع توخّي الحذر</translation> @@ -8344,6 +8375,7 @@ <translation id="8674903726754070732">تم إعداد جهاز الكمبيوتر باستخدام معرّف جهاز غير صحيح. يؤدي ذلك إلى منع تحديث نظام التشغيل Chrome وتوفير أحدث الإصلاحات المتعلّقة بالأمان، وقد يكون جهاز الكمبيوتر <ph name="BEGIN_BOLD" />عرضة للهجمات الضارة<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">تعذَّر على أداة التثبيت الوصول إلى وجهة صالحة لتثبيت نظام التشغيل <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{فيديو واحد}zero{# فيديو}two{فيديوهان}few{# فيديوهات}many{# فيديو}other{# فيديو}}</translation> +<translation id="8676276370198826499">الاشتراك في <ph name="SITE_ETLD_PLUS_ONE" /> باستخدام <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">شكرًا لك على إرسال الملاحظات.</translation> <translation id="8676374126336081632">محو الإرسال</translation> <translation id="8676770494376880701">تمّ توصيل شاحن منخفض الطاقة</translation> @@ -8354,6 +8386,7 @@ <translation id="8678933587484842200">كيف تريد بدء عمل هذا التطبيق؟</translation> <translation id="8680251145628383637">سجّل الدخول للحصول على الإشارات المرجعية، والسجل، وكلمات المرور، والإعدادات الأخرى على جميع أجهزتك. سيتم أيضًا تسجيل دخولك تلقائيًا إلى خدمات Google.</translation> <translation id="8681614230122836773">عثر متصفّح Chrome على برنامج ضارّ على جهاز الكمبيوتر.</translation> +<translation id="8681886425883659911">حظر الإعلانات على المواقع الإلكترونية التي تُعرف بعرضها إعلانات مضلِّلة أو متداخلة</translation> <translation id="8682730193597992579">تم توصيل <ph name="PRINTER_NAME" /> وهي جاهزة للاستخدام.</translation> <translation id="8687103160920393343">إلغاء تنزيل "<ph name="FILE_NAME" />"</translation> <translation id="8688672835843460752">متوفِّر</translation> @@ -8728,6 +8761,7 @@ <translation id="9021662811137657072">تم اكتشاف فيروس</translation> <translation id="902236149563113779">تتبّع المواقع الإلكترونية عادةً موضع الكاميرا لتتيح ميزات الواقع المعزّز، مثل اتجاهات الألعاب أو التنبيه.</translation> <translation id="9022847679183471841">يتم الآن استخدام هذا الحساب فعلاً على هذا الكمبيوتر من قبل <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">يمكن للمواقع الإلكترونية والمعلنين قياس أداء إعلاناتهم.</translation> <translation id="9023015617655685412">وضع إشارة مرجعية لعلامة التبويب هذه</translation> <translation id="9023909777842748145">لن يؤثر إيقاف هذه الميزة في قدرة جهازك على إرسال المعلومات اللازمة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.</translation> <translation id="9024127637873500333">&فتح في علامة تبويب جديدة</translation> @@ -8857,6 +8891,7 @@ <translation id="9128335130883257666">يُرجى الانتقال إلى صفحة إعدادات <ph name="INPUT_METHOD_NAME" />.</translation> <translation id="9128870381267983090">الاتصال بالشبكة</translation> <translation id="9130015405878219958">تم إدخال وضع غير صحيح.</translation> +<translation id="9131209053278896908">تظهر في هذه القائمة المواقع الإلكترونية التي تحظرها.</translation> <translation id="9131487537093447019">إرسال الرسائل إلى أجهزة البلوتوث واستلامها منها.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{إشارة مرجعية واحدة}zero{# إشارة مرجعية}two{إشارتان مرجعيتان}few{# إشارات مرجعية}many{# إشارة مرجعية}other{# إشارة مرجعية}}</translation> <translation id="9134066738478820307">السماح للمواقع الإلكترونية باستخدام المعرّفات لتشغيل المحتوى المحمي</translation> @@ -8910,6 +8945,7 @@ <translation id="9180281769944411366">قد تستغرق هذه العملية بضع دقائق. جارٍ بدء تشغيل حاوية نظام التشغيل Linux.</translation> <translation id="9180380851667544951">يمكن للموقع الإلكتروني مشاركة شاشتك.</translation> <translation id="9182556968660520230">عدم السماح للمواقع الإلكترونية بتشغيل المحتوى المحمي</translation> +<translation id="9183331776983279456">يحذف Chrome تلقائيًا المواقع الإلكترونية التي مر عليها أكثر من 4 أسابيع. وقد يظهر في القائمة مرة أخرى أي موقع إلكتروني تكرِّر زيارته، أو يمكنك منع موقع إلكتروني من اقتراح إعلانات لك.</translation> <translation id="918352324374649435">{COUNT,plural, =1{تطبيق واحد}zero{# تطبيق}two{تطبيقان}few{# تطبيقات}many{# تطبيقًا}other{# تطبيق}}</translation> <translation id="9186963452600581158">تسجيل الدخول باستخدام حساب طفل على Google</translation> <translation id="9187967020623675250">مفاتيح التحكّم غير متطابقة. يمكنك الضغط على أي مفتاح لاختيار <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 69bf4e9..d824c206 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -771,6 +771,7 @@ <translation id="168715261339224929">আপোনাৰ বুকমাৰ্কসমূহ নিজৰ সকলো ডিভাইচতে পাবলৈ ছিংক অন কৰক।</translation> <translation id="1688867105868176567">ছাইটৰ ডেটা মচিবনে?</translation> <translation id="1688935057616748272">এটা বৰ্ণ টাইপ কৰক</translation> +<translation id="1689333818294560261">উপনাম</translation> <translation id="168991973552362966">কোনো নিকটৱৰ্তী প্ৰিণ্টাৰ যোগ কৰক</translation> <translation id="1689945336726856614">&URL প্ৰতিলিপি কৰক</translation> <translation id="1692115862433274081">অন্য একাউণ্ট ব্যৱহাৰ কৰক</translation> @@ -1528,7 +1529,6 @@ <translation id="2329597144923131178">আপোনাৰ সকলো ডিভাইচত বুকমাৰ্ক, ইতিহাস, পাছৱৰ্ড আৰু অন্য ছেটিংসমূহ পাবৰ বাবে ছাইন ইন কৰক।</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />ত ছেভ কৰি থোৱা ডিভাইচ ল’ড কৰিব নোৱাৰি। আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক আৰু পুনৰ চেষ্টা কৰক।</translation> <translation id="2332131598580221120">ষ্ট’ৰত চাওক</translation> -<translation id="2332192922827071008">অগ্ৰাধিকাৰ খোলক</translation> <translation id="2332515770639153015">বৰ্ধিত সুৰক্ষিত ব্ৰাউজিং সুবিধাটো অন আছে</translation> <translation id="2332742915001411729">ডিফ’ল্টলৈ ৰিছেট কৰক</translation> <translation id="2332948465534020594">অসুবিধা নিদিব সক্ষম কৰা হৈছে</translation> @@ -4296,7 +4296,6 @@ <translation id="4893336867552636863">এই কাৰ্যই এই ডিভাইচটোৰ পৰা আপোনাৰ ব্ৰাউজিং ডেটা স্থায়ীভাৱে মচি পেলাব।</translation> <translation id="4893454800196085005">ভাল - ডিভিডি</translation> <translation id="4893522937062257019">লক স্ক্ৰীনত</translation> -<translation id="4897496410259333978">অধিক তথ্যৰ বাবে আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" প্ৰমাণপত্ৰখনে প্ৰমাণপত্ৰ প্ৰদানকাৰী কৰ্তৃপক্ষক প্ৰতিনিধিত্ব কৰে</translation> <translation id="4899052647152077033">ৰং ওলোটা কৰক</translation> <translation id="4899696330053002588">বিজ্ঞাপনযুক্ত</translation> @@ -5167,7 +5166,7 @@ <translation id="5736092224453113618">{NUM_FILES,plural, =0{এই ডেটা অথবা আপোনাৰ ডিভাইচে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}=1{এই ফাইলটো অথবা আপোনাৰ ডিভাইচে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}one{এই ফাইলসমূহে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}other{এই ফাইলসমূহে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}}</translation> <translation id="5736796278325406685">অনুগ্ৰহ কৰি এটা মান্য ব্যৱহাৰকাৰীৰ নাম দিয়ক</translation> <translation id="5738093759615225354">আপোনাৰ কম্পিউটাৰত ছাইন ইন কৰিবলৈ আপোনাক এই পাছকীটোৰ আৱশ্যক</translation> -<translation id="5738329404678738022">ছিংক কৰি আপোনাৰ বুকমাৰ্ক আৰু অধিক সঞ্চয় কৰক</translation> +<translation id="5738329404678738022">ছিংক কৰি আপোনাৰ বুকমাৰ্ক আৰু অধিক ষ্ট’ৰ কৰক</translation> <translation id="5739017626473506901">বিদ্যালয়ৰ এটা একাউণ্ট যোগ দিয়াত <ph name="USER_NAME" />ক সহায় কৰিবলৈ ছাইন ইন কৰক</translation> <translation id="5739235828260127894">সত্যাপনৰ বাবে অপেক্ষা কৰি আছে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation> <translation id="5739458112391494395">যথেষ্ট ডাঙৰ</translation> @@ -5830,7 +5829,6 @@ <translation id="6347010704471250799">জাননী দেখুৱাওক</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ইনষ্টল কৰক</translation> <translation id="6354918092619878358">SECG উপবৃত্তাকাৰ লেখ secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">পৰীক্ষামূলক (গুণগত মান আলফা) ব্ৰাউজাৰ! কিছুমান সুবিধা নাই অথবা সম্পূৰ্ণ নহয়। ইয়াৰ জৰিয়তে সমস্যাৰ অভিযোগ দিয়ক: সহায় > "সমস্যাৰ অভিযোগ দিয়ক…"।</translation> <translation id="635609604405270300">ডিভাইচ অন কৰি ৰাখক</translation> <translation id="63566973648609420">আপোনাৰ পাছফ্ৰেজ জনা কোনোবাইহে আপুনি এনক্ৰিপ্ট কৰি থোৱা ডেটা পঢ়িব পাৰে। পাছফ্ৰেজটো ক’লৈকো পঠিওৱা নহয় আৰু সেইটোGoogleত সঞ্চিত নাথাকে। আপুনি যদি নিজৰ পাছফ্ৰেজটো পাহৰে বা এই ছেটিংটো সলাব বিচাৰে, <ph name="BEGIN_LINK" />ছিংক ৰিছেট<ph name="END_LINK" /> কৰিব লাগিব।</translation> <translation id="6357305427698525450"><ph name="APP_NAME" /> অথবা <ph name="APP_NAME_2" />ত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation> @@ -6991,7 +6989,6 @@ <translation id="7434757724413878233">মাউছৰ এক্সিলাৰেশ্বন</translation> <translation id="7434969625063495310">প্ৰিণ্ট ছার্ভাৰটো যোগ দিব পৰা নগ’ল। অনুগ্ৰহ কৰি ছার্ভাৰটোৰ কনফিগাৰেশ্বন পৰীক্ষা কৰক আৰু পুনৰ চেষ্টা কৰক।</translation> <translation id="7436921188514130341">আমি দুঃখিত! পূৰ্বৰ নাম সলাই নতুন নাম দি থাকোঁতে কিবা আসোঁৱাহ হ'ল।</translation> -<translation id="7438495332316988804">লঞ্চাৰত "Chrome" বুলি টাইপ কৰি মানক ব্ৰাউজাৰটো পাব পৰা যায়।</translation> <translation id="7439519621174723623">অব্যাহত ৰাখিবলৈ ডিভাইচৰ নাম যোগ দিয়ক</translation> <translation id="7441736921018636843">এই ছেটিং সলনি কৰিবলৈ, ছিংক পাছফ্ৰেজ আঁতৰবলৈ <ph name="BEGIN_LINK" />ছিংক ৰিছেট কৰক<ph name="END_LINK" /></translation> <translation id="7441830548568730290">অন্য ব্যৱহাৰকাৰী</translation> @@ -7569,6 +7566,7 @@ <translation id="7952904276017482715">প্ৰত্যাশিত আইডি "<ph name="EXPECTED_ID" />", কিন্তু আইডিটো "<ph name="NEW_ID" />" আছিল</translation> <translation id="7953669802889559161">ইনপুট</translation> <translation id="7953955868932471628">শ্বৰ্টকাট পৰিচালনা কৰক</translation> +<translation id="7955105108888461311">ব্যক্তিগতভাৱে সোধক</translation> <translation id="7955177647836564772">যদি Smart Lock অন কৰা থাকে আৰু আপোনাৰ ফ’নটো আনলক কৰা হয়, তেতিয়া আপুনি কোনো পাছৱৰ্ড অথবা পিন দিব নালাগে</translation> <translation id="7956373551960864128">আপুনি ছেভ কৰি থোৱা প্ৰিণ্টাৰবোৰ</translation> <translation id="7957074856830851026">ক্ৰমিক নম্বৰ অথবা সম্পদৰ আইডিৰ দৰে ডিভাইচৰ তথ্য চাওক</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 88683bf..8be356e9 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Bu səhifə cavab vermir</translation> <translation id="1041263367839475438">Əlçatan cihazlar</translation> <translation id="1042174272890264476">Kompüteriniz həmçinin daxili <ph name="SHORT_PRODUCT_NAME" /> RLZ kitabxanası ilə gəlir. RLZ axtarışları və <ph name="SHORT_PRODUCT_NAME" /> istifadəsini ölçmək üçün identifikasiya edilə bilən teq ayırır. Bu etiketlər bəzən <ph name="PRODUCT_NAME" /> daxilində, Google Axtarış sorğularında görünür.</translation> +<translation id="1042248468362992359">Hotspot istifadə etmək üçün mobil dataya qoşulun. <ph name="BEGIN_LINK_LEARN_MORE" />Ətraflı məlumat<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Xəta oldu. Linux yalnız qismən təkmilləşdirilə bilər. Ətraflı məlumat üçün qeydlərə baxın. Qeydlər burada saxlanılıb: Fayllar > Fayllarım > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Klaviatura xəritəsi üslubu</translation> <translation id="104710386808485638">Linux yenidən başladılsın?</translation> @@ -155,6 +156,7 @@ <translation id="1139923033416533844">Yaddaş İstifadəsi</translation> <translation id="1140351953533677694">Bluetooth və Dövri cihazlarınıza daxil olun</translation> <translation id="114036956334641753">Audio və subtitrlar</translation> +<translation id="1141949282671776404">Bu tab qeyri-aktiv olduqda Yaddaşa Qənaət digər tapşırıqlar üçün <ph name="MEMORY_VALUE" /> yaddaşı boşaldıb.</translation> <translation id="1142002900084379065">Son fotolar</translation> <translation id="1143142264369994168">Sertifikat İmzaçısı</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome kompüterinizdə zərərli proqram təminatı tapmadı • 1 dəqiqə əvvəl yoxlandı}other{Chrome kompüterinizdə zərərli proqram təminatı tapmadı •{NUM_MINS} dəqiqə əvvəl yoxlandı}}</translation> @@ -315,6 +317,7 @@ <translation id="1285320974508926690">Bu saytı heç vaxt tərcümə etməyin</translation> <translation id="1285484354230578868">Google Disk hesabınızda datanı saxlayın</translation> <translation id="1285625592773741684">Cari data istifadəsi ayarı: Mobil Data</translation> +<translation id="1285815028662278915">Mobil datanız hotspotu dəstəkləməyə bilər. <ph name="BEGIN_LINK_LEARN_MORE" />Ətraflı məlumat<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Gecə İşığı qürub vaxtı avtomatik aktiv ediləcək</translation> <translation id="1288300545283011870">Nitq Funksiyaları</translation> <translation id="1289619947962767206">Bu seçim artıq dəstəklənmir. Tab ilə təqdimat keçirmək üçün <ph name="GOOGLE_MEET" /> istifadə edin.</translation> @@ -652,6 +655,7 @@ <translation id="1596286373007273895">Əlçatan</translation> <translation id="1596709061955594992">Bluetooth deaktivdir. Əlçatan cihazları görmək üçün Bluetooth'u aktiv edin.</translation> <translation id="1596780725094407793">- Alt domenlər daxildir</translation> +<translation id="1598163867407640634"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ilə <ph name="SITE_ETLD_PLUS_ONE" /> istifadə edin</translation> <translation id="1598233202702788831">Güncəlləmələr administratorunuz tərəfindən deaktiv edildi.</translation> <translation id="1600857548979126453">Səhifə debaqlayıcı bazasına daxil olun</translation> <translation id="1601560923496285236">Tətbiq edin</translation> @@ -767,6 +771,7 @@ <translation id="168715261339224929">Bütün cihazlarınızda əlfəcinləri əldə etmək üçün sinxronizasiyanı aktiv edin.</translation> <translation id="1688867105868176567">Sayt datası təmizlənsin?</translation> <translation id="1688935057616748272">Hərf yazın</translation> +<translation id="1689333818294560261">Ləqəb</translation> <translation id="168991973552362966">Yaxınlıqdakı printeri əlavə edin</translation> <translation id="1689945336726856614">Linki kopyalayın</translation> <translation id="1692115862433274081">Başqa hesab istifadə edin</translation> @@ -1230,6 +1235,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Qeyd:<ph name="END_BOLD" /> Əməliyyat zamanı sistem yenidən işə başlayacaq.</translation> <translation id="2095774564753225041">Dəstəklənən fayl növləri</translation> +<translation id="2097616539631531348">Bu tab qeyri-aktiv olsa da, Yaddaşa Qənaət digər tapşırıqlar üçün yaddaşı boşaldıb.</translation> <translation id="2098805196501063469">Qalan parolları yoxlayın</translation> <translation id="2099686503067610784">"<ph name="CERTIFICATE_NAME" />" server sertifikatı silinsin?</translation> <translation id="2100273922101894616">Hesaba avtomatik giriş</translation> @@ -1516,7 +1522,6 @@ <translation id="2329597144923131178">Bütün cihazlarınızda əlfəcin, tarixçə, parol və digər ayarları əldə etmək üçün daxil olun.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> hesabında saxlanmış cihazları yükləmək olmur. İnternet bağlantınızı yoxlayın və yenidən cəhd edin.</translation> <translation id="2332131598580221120">Marketdə baxın</translation> -<translation id="2332192922827071008">Tərcihləri Açın</translation> <translation id="2332515770639153015">Qabaqcıl Güvənli Baxış aktivdir</translation> <translation id="2332742915001411729">Defolta sıfırlayın</translation> <translation id="2332948465534020594">Narahat Etməyin rejimi aktiv edilib</translation> @@ -3385,6 +3390,7 @@ <translation id="4040041015953651705">Bu dildən tərcümə edin:</translation> <translation id="4040105702484676956"><ph name="SITE_NAME" /> və ona bağlı quraşdırılmış tətbiq üçün sayt datası və icazələr silinsin?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Səhifədən Çıxın}other{Səhifələrdən Çıxın}}</translation> +<translation id="4042941173059740150"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ilə <ph name="SITE_ETLD_PLUS_ONE" /> saytına davam edin</translation> <translation id="4043267180218562935">Kursor ölçüsü</translation> <translation id="4044612648082411741">Sertifikat parolunuzu daxil edin</translation> <translation id="4044708573046946214">Ekran kilidi parolu</translation> @@ -4298,7 +4304,6 @@ <translation id="4893336867552636863">Brauzinq datanızı bu cihazdan həmişəlik siləcək.</translation> <translation id="4893454800196085005">Yaxşı - DVD</translation> <translation id="4893522937062257019">Ekran kilidində</translation> -<translation id="4897496410259333978">Ətraflı məlumat üçün administratorunuzla əlaqə saxlayın.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" sertifikatı Sertifikatlaşdırma Təşkilatını təqdim edir</translation> <translation id="4899052647152077033">Rəngləri çevirin</translation> <translation id="4899696330053002588">Reklamlar daxildir</translation> @@ -5837,7 +5842,6 @@ <translation id="6347010704471250799">Bildiriş göstərin</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> tətbiqini quraşdırın</translation> <translation id="6354918092619878358">SECG oval əyrisi secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Təcrübi (alfa keyfiyyəti) brauzer! Bəzi xüsusiyyətlər çatışmır, yaxud tam deyil. Problemlər barədə bildirin: Kömək > "Problem barədə bildirin...".</translation> <translation id="635609604405270300">Cihazı aktiv saxlayın</translation> <translation id="63566973648609420">Yalnız parol sözünüzü bilən adam şifrələnmiş məlumatınızı oxuya bilər. Parol söz Google tərəfindən göndərilmir və yadda saxlanılmır. Əgər parol sözü unutmusunuzsa və ya bu ayarı dəyişmək istəyirsinizsə <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlamalısınız<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" /> və ya <ph name="APP_NAME_2" /> tətbiqində açılacaq.</translation> @@ -7005,7 +7009,6 @@ <translation id="7434757724413878233">Siçanın sürəti</translation> <translation id="7434969625063495310">Çap serverini əlavə etmək mümkün olmadı. Serverin konfiqurasiyasını yoxlayın və yenidən cəhd edin.</translation> <translation id="7436921188514130341">Yenidən adlandırarkən xəta baş verdi.</translation> -<translation id="7438495332316988804">Standart brauzer Başladıcıya "Chrome" yazaraq tapıla bilər.</translation> <translation id="7439519621174723623">Davam etmək üçün cihaz adı əlavə edin</translation> <translation id="7441736921018636843">Bu ayarı dəyişmək və sinxronizasiya parolunu silmək üçün <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation> <translation id="7441830548568730290">Digər istifadəçilər</translation> @@ -7587,6 +7590,7 @@ <translation id="7952904276017482715">Gözlənilən ID "<ph name="EXPECTED_ID" />"olsa da, artırmanın ID-si "<ph name="NEW_ID" />" idi</translation> <translation id="7953669802889559161">Daxiletmələr</translation> <translation id="7953955868932471628">Qısayolları idarə edin</translation> +<translation id="7955105108888461311">Şəxsən soruşun</translation> <translation id="7955177647836564772">Smart Lock aktiv edilibsə və telefonunuzun kilidi açılıbsa, parol və ya PIN daxil etməyinizə ehtiyac yoxdur</translation> <translation id="7956373551960864128">Yadda saxlanılmış printerlər</translation> <translation id="7957074856830851026">Seriya nömrəsi və aktiv ID-si kimi cihaz məlumatlarına baxın</translation> @@ -8369,6 +8373,7 @@ <translation id="8674903726754070732">Kompüteriniz düzgün olmayan avadanlıq ID-si ilə sazlanıb. Bu, ChromeOS'i ən son güvənlik bərpaları etməyə mane ola və kompüteriniz <ph name="BEGIN_BOLD" />hücumlara məruz qala bilər<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Quraşdırıcı <ph name="DEVICE_OS" /> sistemini quraşdırmaq üçün etibarlı bir yer tapa bilmədi.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Video}other{# video}}</translation> +<translation id="8676276370198826499"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ilə <ph name="SITE_ETLD_PLUS_ONE" /> saytına daxil olun</translation> <translation id="8676313779986170923">Rəy göndərdiyiniz üçün təşəkkür edirik.</translation> <translation id="8676374126336081632">Daxiletməni silin</translation> <translation id="8676770494376880701">Enerjiyə qənaət edən şarjer qoşuldu</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 194f04c..c9f6b1a 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -769,6 +769,7 @@ <translation id="168715261339224929">Уключыце сінхранізацыю, каб бачыць закладкі на ўсіх сваіх прыладах.</translation> <translation id="1688867105868176567">Выдаліць даныя сайта?</translation> <translation id="1688935057616748272">Увядзіце літару</translation> +<translation id="1689333818294560261">Псеўданім</translation> <translation id="168991973552362966">Дадаць прынтар паблізу</translation> <translation id="1689945336726856614">Скапіраваць &URL-адрас</translation> <translation id="1692115862433274081">Выкарыстаць іншы ўліковы запіс</translation> @@ -1513,7 +1514,6 @@ <translation id="2329597144923131178">Каб закладкі, гісторыя, паролі і іншыя налады былі даступнымі на ўсіх вашых прыладах, увайдзіце ў сістэму.</translation> <translation id="2332115969598251205">Не ўдалося загрузіць спіс прылад, захаваных ва ўліковым запісе <ph name="PRIMARY_EMAIL" />. Праверце падключэнне да інтэрнэту і паўтарыце спробу.</translation> <translation id="2332131598580221120">Прагледзець у краме</translation> -<translation id="2332192922827071008">Адкрыць параметры</translation> <translation id="2332515770639153015">Палепшаны Бяспечны прагляд уключаны</translation> <translation id="2332742915001411729">Скінуць налады да стандартных значэнняў</translation> <translation id="2332948465534020594">Рэжым "Не турбаваць" уключаны</translation> @@ -4280,7 +4280,6 @@ <translation id="4893336867552636863">Гэта дзеянне незваротна выдаліць з прылады даныя прагляду старонак у інтэрнэце.</translation> <translation id="4893454800196085005">Добрая – DVD</translation> <translation id="4893522937062257019">На экране блакіроўкі</translation> -<translation id="4897496410259333978">Па дадатковую інфармацыю звярніцеся да адміністратара.</translation> <translation id="4898011734382862273">Сертыфікат "<ph name="CERTIFICATE_NAME" />" прадстаўляе цэнтр сертыфікацыі</translation> <translation id="4899052647152077033">Інвертаванне колераў</translation> <translation id="4899696330053002588">Утрымлівае рэкламу</translation> @@ -5814,7 +5813,6 @@ <translation id="6347010704471250799">Паказваць апавяшчэнне</translation> <translation id="6349101878882523185">Усталяваць праграму "<ph name="APP_NAME" />"</translation> <translation id="6354918092619878358">SECG эліптычны secp256r1 (іншая назва – ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Гэта эксперыментальны браўзер (яго альфа-версія)! Некаторыя функцыі могуць адсутнічаць або падтрымлівацца не поўнасцю. Паведамляйце пра праблемы праз меню "Даведка > Паведаміць аб праблеме...".</translation> <translation id="635609604405270300">Не выключайце прыладу.</translation> <translation id="63566973648609420">Толькі карыстальнікі, якія ведаюць фразу-пароль, могуць чытаць вашы зашыфраваныя даныя. Google не адпраўляе і не захоўвае фразу-пароль. Калі вы не памятаеце фразу-пароль або хочаце змяніць гэту наладу, вам трэба <ph name="BEGIN_LINK" />скінуць сінхранізацыю<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграме "<ph name="APP_NAME" />" або "<ph name="APP_NAME_2" />".</translation> @@ -6979,7 +6977,6 @@ <translation id="7434757724413878233">Паскарэнне мышы</translation> <translation id="7434969625063495310">Не ўдалося дадаць сервер друку. Праверце канфігурацыю сервера і паўтарыце спробу.</translation> <translation id="7436921188514130341">На жаль, падчас перайменавання адбылася памылка.</translation> -<translation id="7438495332316988804">Да стандартнага браўзера можна перайсці, увёўшы ў Панэлі запуску слова "Chrome".</translation> <translation id="7439519621174723623">Каб працягнуць, дадайце назву прылады</translation> <translation id="7441736921018636843">Для змянення гэтай налады <ph name="BEGIN_LINK" />скіньце сінхранізацыю<ph name="END_LINK" />, каб выдаліць фразу-пароль сінхранізацыі</translation> <translation id="7441830548568730290">Іншыя карыстальнікі</translation> @@ -7557,6 +7554,7 @@ <translation id="7952904276017482715">Чакаўся ідэнтыфікатар "<ph name="EXPECTED_ID" />", фактычны ідэнтыфікатар – "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Метады ўводу</translation> <translation id="7953955868932471628">Кіраваць ярлыкамі</translation> +<translation id="7955105108888461311">Спытаць асабіста</translation> <translation id="7955177647836564772">Калі Smart Lock уключаны і тэлефон разблакіраваны, уводзіць пароль або PIN-код не трэба</translation> <translation id="7956373551960864128">Вашы захаваныя прынтары</translation> <translation id="7957074856830851026">Прагляд звестак пра прыладу (напрыклад, серыйнага нумара або ідэнтыфікатара аб'екта ўласнасці)</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 14e748ae..f8e432e 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -766,6 +766,7 @@ <translation id="168715261339224929">Включете синхронизирането, за да получите отметките си на всичките си устройства.</translation> <translation id="1688867105868176567">Да се изчистят ли данните за сайта?</translation> <translation id="1688935057616748272">Въведете буква</translation> +<translation id="1689333818294560261">Псевдоним</translation> <translation id="168991973552362966">Добавяне на принтер в близост</translation> <translation id="1689945336726856614">Копиране на &URL адреса</translation> <translation id="1692115862433274081">Използване на друг профил</translation> @@ -1521,7 +1522,6 @@ <translation id="2329597144923131178">Влезте в профила си и получете своите отметки, история, пароли и др. настройки на всички у-ва.</translation> <translation id="2332115969598251205">Устройствата, запазени в(ъв) <ph name="PRIMARY_EMAIL" />, не могат да се заредят. Проверете връзката си с интернет и опитайте отново.</translation> <translation id="2332131598580221120">Преглед в магазина</translation> -<translation id="2332192922827071008">Отваряне на предпочитанията</translation> <translation id="2332515770639153015">Функцията за подобрена защита от Безопасно сърфиране е включена</translation> <translation id="2332742915001411729">Възстановяване на настройката по подразбиране</translation> <translation id="2332948465534020594">Режимът „Не безпокойте“ е активиран</translation> @@ -4291,7 +4291,6 @@ <translation id="4893336867552636863">Данните за сърфирането ви ще се изтрият за постоянно от това устройство.</translation> <translation id="4893454800196085005">Добро – DVD</translation> <translation id="4893522937062257019">На заключения екран</translation> -<translation id="4897496410259333978">За повече информация се свържете с администратора си.</translation> <translation id="4898011734382862273">Сертификатът „<ph name="CERTIFICATE_NAME" />“ представлява сертифициращ орган.</translation> <translation id="4899052647152077033">Обръщане на цветовете</translation> <translation id="4899696330053002588">Съдържа реклами</translation> @@ -5826,7 +5825,6 @@ <translation id="6347010704471250799">Показване на известие</translation> <translation id="6349101878882523185">Инсталиране на <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Елиптична крива secp256r1 по SECG (позната и като ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Експериментален браузър (алфа-версия)! Някои функции липсват или не са завършени. Отворете „Помощ > Подаване на сигнал за проблем...“, за да сигнализирате за проблеми.</translation> <translation id="635609604405270300">Не изключвайте устройството</translation> <translation id="63566973648609420">Само някой с пропуска ви може да прочете шифрованите ви данни – той не се изпраща до Google, нито се съхранява от нас. Ако го забравите или искате да промените тази настройка, ще се наложи <ph name="BEGIN_LINK" />да нулирате синхронизирането<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation> @@ -6985,7 +6983,6 @@ <translation id="7434757724413878233">Ускоряване на мишката</translation> <translation id="7434969625063495310">Сървърът за отпечатване не бе добавен. Моля, проверете конфигурацията му и опитайте отново.</translation> <translation id="7436921188514130341">Ужас! При преименуването възникна грешка.</translation> -<translation id="7438495332316988804">Стандартният браузър може да бъде намерен, като въведете Chrome в стартовия панел.</translation> <translation id="7439519621174723623">Добавете име на устройство, за да продължите</translation> <translation id="7441736921018636843">За да промените тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" />, така че да премахнете съответния си пропуск</translation> <translation id="7441830548568730290">Други потребители</translation> @@ -7563,6 +7560,7 @@ <translation id="7952904276017482715">Очакваният идентификационен номер е <ph name="EXPECTED_ID" />, но той бе <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Въвеждане</translation> <translation id="7953955868932471628">Управление на преките пътища</translation> +<translation id="7955105108888461311">Питане лично</translation> <translation id="7955177647836564772">Ако функцията Smart Lock е включена и телефонът ви е отключен, не е необходимо да въвеждате парола или ПИН код</translation> <translation id="7956373551960864128">Вашите запазени принтери</translation> <translation id="7957074856830851026">Преглед на информация за устройството, като например серийния номер или идентификатора на актива</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index de17918..8f1602a 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -774,6 +774,7 @@ <translation id="168715261339224929">সব ডিভাইসে আপনার বুকমার্ক পেতে সিঙ্ক চালু করুন।</translation> <translation id="1688867105868176567">সাইট ডেটা খালি করতে চান?</translation> <translation id="1688935057616748272">একটি অক্ষর টাইপ করুন</translation> +<translation id="1689333818294560261">বিশেষ নাম</translation> <translation id="168991973552362966">আশেপাশের একটি প্রিন্টার যোগ করুন</translation> <translation id="1689945336726856614">ওইউআরএল কপি করুন</translation> <translation id="1692115862433274081">অন্য অ্যাকাউন্ট ব্যবহার করুন</translation> @@ -1531,7 +1532,6 @@ <translation id="2329597144923131178">আপনার সকল ডিভাইসে আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংস পেতে সাইন-ইন করুন।</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />-এ সেভ করা ডিভাইস লোড করা যাচ্ছে না। ইন্টারনেট কানেকশন ঠিক আছে কিনা দেখে আবার চেষ্টা করুন।</translation> <translation id="2332131598580221120">দোকানে দেখুন</translation> -<translation id="2332192922827071008">অভিরুচি খুলুন</translation> <translation id="2332515770639153015">উন্নত Safe Browsing চালু আছে</translation> <translation id="2332742915001411729">ডিফল্টে রিসেট করুন</translation> <translation id="2332948465534020594">'বিরক্ত করবে না মোড' চালু করা হয়েছে</translation> @@ -4309,7 +4309,6 @@ <translation id="4893336867552636863">এটি স্থায়ীভাবে এই ডিভাইস থেকে আপনার ব্রাউজিং ডেটা মুছে ফেলবে।</translation> <translation id="4893454800196085005">ভাল - ডিভিডি</translation> <translation id="4893522937062257019">লক স্ক্রিনে</translation> -<translation id="4897496410259333978">আরও তথ্যের জন্য অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" সার্টিফিকেটটি একটি শংসাকরণ কর্তৃপক্ষের প্রতিনিধিত্ব করে</translation> <translation id="4899052647152077033">বিপরীত রঙ</translation> <translation id="4899696330053002588">বিজ্ঞাপন দেখানো হয়</translation> @@ -5847,7 +5846,6 @@ <translation id="6347010704471250799">বিজ্ঞপ্তি দেখুন</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ইনস্টল করুন</translation> <translation id="6354918092619878358">SECG এলিপ্টিক কার্ভ secp256r1 (ওরফে ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">পরীক্ষামূলক (আলফা-কোয়ালিটি) ব্রাউজার! কয়েকটি ফিচার নেই অথবা অসম্পূর্ণ। অভিযোগ জানাতে এখানে যান: সহায়তা > "কোনও সমস্যার ব্যাপারে অভিযোগ জানান..."।</translation> <translation id="635609604405270300">ডিভাইসটি চালু রাখুন</translation> <translation id="63566973648609420">শুধুমাত্র আপনার পাসফ্রেজসহ কোনো ব্যক্তি আপনার এনক্রিপ্ট করা ডেটা পড়তে পারবেন৷ পাসফ্রেজটি Google-এ পাঠানো হয় না বা এর দ্বারা সংরক্ষণ করা হয় না৷ যদি আপনি আপনার পাসফ্রেজ ভুলে যান বা এই সেটিং পরিবর্তন করতে চান, তাহলে আপনাকে <ph name="BEGIN_LINK" />সিঙ্ক রিসেট<ph name="END_LINK" /> করতে হবে।</translation> <translation id="6357305427698525450">কিছু সহায়তা প্রদান করার লিঙ্ক <ph name="APP_NAME" /> বা <ph name="APP_NAME_2" />-এ এখনও খুলবে।</translation> @@ -7015,7 +7013,6 @@ <translation id="7434757724413878233">মাউস অ্যাক্সিলারেশন</translation> <translation id="7434969625063495310">প্রিন্ট সার্ভারটি যোগ করা যায়নি। সার্ভার কনফিগারেশন চেক করে আবার চেষ্টা করুন।</translation> <translation id="7436921188514130341">নাম পরিবর্তনের সময় একটি ত্রুটি হয়েছিল।</translation> -<translation id="7438495332316988804">লঞ্চারে "Chrome" টাইপ করে স্ট্যান্ডার্ড ব্রাউজার খুঁজে পেতে পারেন।</translation> <translation id="7439519621174723623">চালিয়ে যেতে ডিভাইসের নাম যোগ করুন</translation> <translation id="7441736921018636843">এই সেটিংটি পরিবর্তন করতে, আপনার সিঙ্ক পাসফ্রেজটি সরানোর জন্য <ph name="BEGIN_LINK" />সিঙ্ক রিসেট করুন<ph name="END_LINK" /></translation> <translation id="7441830548568730290">অন্যান্য ব্যবহারকারী</translation> @@ -7595,6 +7592,7 @@ <translation id="7952904276017482715">আইডি হওয়া উচিত ছিল "<ph name="EXPECTED_ID" />", কিন্তু আইডি "<ph name="NEW_ID" />" ছিল</translation> <translation id="7953669802889559161">ইনপুট</translation> <translation id="7953955868932471628">শর্টকাটগুলি পরিচালনা করুন</translation> +<translation id="7955105108888461311">ব্যক্তিগতভাবে অ্যাক্সেস চান</translation> <translation id="7955177647836564772">Smart Lock চালু থাকা অবস্থায় আপনার ফোন যদি আনলক থাকে, তাহলে আপনাকে পাসওয়ার্ড বা পিন লিখতে হবে না</translation> <translation id="7956373551960864128">আপনার সেভ করা প্রিন্টার</translation> <translation id="7957074856830851026">ডিভাইসের তথ্য দেখুন, যেমন এর সিরিয়াল নম্বর বা অ্যাসেট আইডি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index 5e22ad2..c5ee048 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -45,7 +45,7 @@ <translation id="1041175011127912238">Ova stranica ne reagira</translation> <translation id="1041263367839475438">Dostupni uređaji</translation> <translation id="1042174272890264476">Vaš računar također ima ugrađenu RLZ biblioteku proizvoda <ph name="SHORT_PRODUCT_NAME" />. RLZ dodjeljuje nejedinstvenu oznaku koja ne može poslužiti za ličnu identifikaciju za mjerenje pretraživanja i korištenje proizvoda <ph name="SHORT_PRODUCT_NAME" /> do kojeg je došlo putem određene promotivne kampanje. Te oznake se nekada pojavljuju u upitima Google Pretraživanja u proizvodu <ph name="PRODUCT_NAME" />.</translation> -<translation id="1042248468362992359">Povežite se s mobilnim podacima da biste upotrebljavali žarišnu točku. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> +<translation id="1042248468362992359">Povežite se s prijenosom podataka na mobilnoj mreži da koristite pristupnu tačku. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Nešto nije uredu. Moguće da je Linux samo djelimično nadograđen. Više informacija potražite u zapisnicima. Zapisnici su sačuvani u Fajlovima > Moji fajlovi > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Stil mape tipki</translation> <translation id="104710386808485638">Ponovno pokrenuti Linux?</translation> @@ -160,7 +160,7 @@ <translation id="1139923033416533844">Korištenje memorije</translation> <translation id="1140351953533677694">Pristup vašim Bluetooth i serijskim uređajima</translation> <translation id="114036956334641753">Zvuk i titlovi</translation> -<translation id="1141949282671776404">Dok je ova kartica bila neaktivna, štednja memorije oslobodila je <ph name="MEMORY_VALUE" /> memorije za druge zadatke.</translation> +<translation id="1141949282671776404">Dok je ova kartica bila neaktivna, Ušteda memorije je oslobodila <ph name="MEMORY_VALUE" /> memorije za druge zadatke.</translation> <translation id="1142002900084379065">Nedavne fotografije</translation> <translation id="1143142264369994168">Potpisnik potvrde</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome nije pronašao štetni softver na vašem računaru • Provjereno prije 1 minut}one{Chrome nije pronašao štetni softver na vašem računaru • Provjereno prije {NUM_MINS} minut}few{Chrome nije pronašao štetni softver na vašem računaru • Provjereno prije {NUM_MINS} minuta}other{Chrome nije pronašao štetni softver na vašem računaru • Provjereno prije {NUM_MINS} minuta}}</translation> @@ -323,7 +323,7 @@ <translation id="1285320974508926690">Nikada ne prevodi ovu web lokaciju</translation> <translation id="1285484354230578868">Pohranite podatke na svoj račun na Google Disku</translation> <translation id="1285625592773741684">Trenutna postavka prijenosa podataka je Prijenos podataka na mobilnoj mreži</translation> -<translation id="1285815028662278915">Vaši mobilni podaci možda ne podržavaju žarišnu točku. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> +<translation id="1285815028662278915">Prijenos podataka na mobilnoj mreži možda ne podržava pristupnu tačku. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Noćno svjetlo će se automatski uključiti po zalasku sunca</translation> <translation id="1288300545283011870">Svojstva govora</translation> <translation id="1289619947962767206">Ova opcija više nije podržana. Da prikažete karticu, koristite <ph name="GOOGLE_MEET" />.</translation> @@ -663,7 +663,7 @@ <translation id="1596286373007273895">Dostupno</translation> <translation id="1596709061955594992">Bluetooth je isključen. Da vidite dostupne uređaje, uključite Bluetooth.</translation> <translation id="1596780725094407793">- uključuje poddomene</translation> -<translation id="1598163867407640634">Upotrebljavajte web-lokaciju <ph name="SITE_ETLD_PLUS_ONE" /> s davateljem identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> +<translation id="1598163867407640634">Koristite web lokaciju <ph name="SITE_ETLD_PLUS_ONE" /> s pružaocem identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Administrator je onemogućio ažuriranja.</translation> <translation id="1600857548979126453">Pristup pozadini programa za otklanjanje grešaka na stranici</translation> <translation id="1601560923496285236">Primijeni</translation> @@ -779,6 +779,7 @@ <translation id="168715261339224929">Da biste imali svoje oznake na svim svojim uređajima, uključite sinhronizaciju.</translation> <translation id="1688867105868176567">Obrisati podatke web lokacije?</translation> <translation id="1688935057616748272">Napišite slovo</translation> +<translation id="1689333818294560261">Nadimak</translation> <translation id="168991973552362966">Dodajte štampač u blizini</translation> <translation id="1689945336726856614">Kopiraj &URL</translation> <translation id="1692115862433274081">Koristi drugi račun</translation> @@ -1247,7 +1248,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" /> sistem će se ponovo pokrenuti za vrijeme ovog postupka.</translation> <translation id="2095774564753225041">Podržane vrste fajlova</translation> -<translation id="2097616539631531348">Dok je ova kartica bila neaktivna, štednja memorije oslobodila je memoriju za druge zadatke.</translation> +<translation id="2097616539631531348">Dok je ova kartica bila neaktivna, Ušteda memorije je oslobodila memoriju za druge zadatke.</translation> <translation id="2098805196501063469">Provjerite preostale lozinke</translation> <translation id="2099686503067610784">Izbrisati potvrdu servera "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="2100273922101894616">Automatsko prijavljivanje</translation> @@ -1534,7 +1535,6 @@ <translation id="2329597144923131178">Prijavite se da dobijete oznake, historiju, lozinke i ostale postavke na svim svojim uređajima.</translation> <translation id="2332115969598251205">Nije moguće učitati uređaje sačuvane na <ph name="PRIMARY_EMAIL" />. Provjerite internetsku vezu i pokušajte ponovo.</translation> <translation id="2332131598580221120">Prikaži u trgovini</translation> -<translation id="2332192922827071008">Otvori preference</translation> <translation id="2332515770639153015">Poboljšano Sigurno pregledanje je uključeno</translation> <translation id="2332742915001411729">Vrati na zadano</translation> <translation id="2332948465534020594">Funkcija Ne ometaj je omogućena</translation> @@ -3397,7 +3397,7 @@ <translation id="4040041015953651705">Jezik s kojeg se prevodi</translation> <translation id="4040105702484676956">Obrisati podatke web lokacije i odobrenja za <ph name="SITE_NAME" /> i njenu instaliranu aplikaciju?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Napusti stranicu}one{Napusti stranice}few{Napusti stranice}other{Napusti stranice}}</translation> -<translation id="4042941173059740150">Nastavi na <ph name="SITE_ETLD_PLUS_ONE" /> s davateljem identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> +<translation id="4042941173059740150">Nastavite na web lokaciju <ph name="SITE_ETLD_PLUS_ONE" /> s pružaocem identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Veličina kursora</translation> <translation id="4044612648082411741">Unesite lozinku potvrde</translation> <translation id="4044708573046946214">Lozinka za zaključavanje ekrana</translation> @@ -4312,7 +4312,6 @@ <translation id="4893336867552636863">Ovo će trajno izbrisati vaše podatke o pregledanju s ovog uređaja.</translation> <translation id="4893454800196085005">Dobro – DVD</translation> <translation id="4893522937062257019">Na zaključanom ekranu</translation> -<translation id="4897496410259333978">Više informacija potražite od svog administratora.</translation> <translation id="4898011734382862273">Potvrda "<ph name="CERTIFICATE_NAME" />" predstavlja tijelo za certifikaciju</translation> <translation id="4899052647152077033">Inverzija boja</translation> <translation id="4899696330053002588">Sadrži oglase</translation> @@ -5848,7 +5847,6 @@ <translation id="6347010704471250799">Prikaži obavještenje</translation> <translation id="6349101878882523185">Instalirajte <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG eliptična krivulja secp256r1 (poznata i kao ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentalni preglednik (alfa kvaliteta)! Neke funkcije nedostaju ili su nepotpune. Prijavite probleme u odjeljku: Pomoć > "Prijavite problem...".</translation> <translation id="635609604405270300">Ne isključujte uređaj</translation> <translation id="63566973648609420">Vaše šifrirane podatke može čitati isključivo osoba koja ima vašu šifru za pristup. Šifra za pristup se ne šalje Googleu niti je Google pohranjuje. Ukoliko zaboravite šifru za pristup ili želite promijeniti ovu postavku, morat ćete <ph name="BEGIN_LINK" />poništiti sinhronizaciju<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Neki podržani linkovi će se i dalje otvarati u aplikaciji <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation> @@ -7018,7 +7016,6 @@ <translation id="7434757724413878233">Ubrzanje miša</translation> <translation id="7434969625063495310">Dodavanje servera za štampanje nije uspjelo. Provjerite konfiguraciju servera i pokušajte ponovo.</translation> <translation id="7436921188514130341">O, ne! Došlo je do greške prilikom promjene naziva.</translation> -<translation id="7438495332316988804">Standardni preglednik možete pronaći ako u Pokretač unesete "Chrome".</translation> <translation id="7439519621174723623">Dodajte naziv uređaja da nastavite</translation> <translation id="7441736921018636843">Za promjenu ove postavke <ph name="BEGIN_LINK" />poništite sinhronizaciju<ph name="END_LINK" /> da uklonite pristupni izraz sinhronizacije</translation> <translation id="7441830548568730290">Drugi korisnici</translation> @@ -7599,6 +7596,7 @@ <translation id="7952904276017482715">Očekivan je ID "<ph name="EXPECTED_ID" />", međutim ID je bio "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Unosi</translation> <translation id="7953955868932471628">Upravljanje prečicama</translation> +<translation id="7955105108888461311">Pitajte lično</translation> <translation id="7955177647836564772">Ako je Smart Lock uključen i telefon otključan, ne morate unijeti lozinku ili PIN</translation> <translation id="7956373551960864128">Vaši sačuvani štampači</translation> <translation id="7957074856830851026">Pregled informacija o uređaju, kao što su serijski broj ili ID materijala</translation> @@ -8382,7 +8380,7 @@ <translation id="8674903726754070732">Nažalost, računar je konfiguriran s neispravnim ID-om hardvera. Ovim se sprečava da se ChromeOS ažurira najnovijim sigurnosnim ispravkama i vaš računar <ph name="BEGIN_BOLD" />može biti izložen zlonamjernim napadima<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Program za instaliranje nije uspio pronaći važeće odredište da instalira <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Videozapis}one{# videozapis}few{# videozapisa}other{# videozapisa}}</translation> -<translation id="8676276370198826499">Registrirajte se za <ph name="SITE_ETLD_PLUS_ONE" /> pomoću davatelja identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> +<translation id="8676276370198826499">Registrirajte se na web lokaciji <ph name="SITE_ETLD_PLUS_ONE" /> s pružaocem identiteta <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Hvala što ste poslali povratne informacije.</translation> <translation id="8676374126336081632">Brisanje unosa</translation> <translation id="8676770494376880701">Povezan je punjač male snage</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 99326e4c..3fb9e3a9 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Obre la &imatge original en una pestanya nova</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Actualitza el dispositiu <ph name="DEVICE_TYPE" /> en un termini d'1 setmana}other{Actualitza el dispositiu <ph name="DEVICE_TYPE" /> en un termini de {NUM_WEEKS} setmanes}}</translation> <translation id="1056898198331236512">Advertiment</translation> +<translation id="1056980582064308040">En canviar la configuració, es reiniciarà el punt d'accés Wi‐Fi. Els dispositius que utilitzen el punt d'accés Wi‐Fi es desconnectaran.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Introdueix el PIN nou. Els PIN han de tenir 1 caràcter com a mínim i poden contenir lletres, números i altres caràcters.}other{Introdueix el PIN nou. Els PIN han de tenir # caràcters com a mínim i poden contenir lletres, números i altres caràcters.}}</translation> <translation id="1059484610606223931">Protocol segur de transferència d'hipertext (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">Atura</translation> <translation id="1272508081857842302">Obertura d'<ph name="BEGIN_LINK" />enllaços compatibles<ph name="END_LINK" /></translation> <translation id="1272978324304772054">Aquest compte d'usuari no pertany al domini on s'ha registrat el dispositiu. Si el voleu registrar en un domini diferent, primer cal que apliqueu el procés de recuperació del dispositiu.</translation> +<translation id="1273937721055267968">Bloqueja <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Galetes i altres dades dels llocs web</translation> <translation id="1275718070701477396">Seleccionada</translation> <translation id="1276994519141842946">No s'ha pogut instal·lar <ph name="APP_NAME" /></translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">Per activar la depuració d'ADB, cal reiniciar el dispositiu <ph name="DEVICE_TYPE" />. Per desactivar-la, cal restablir-ne la configuració de fàbrica.</translation> <translation id="1327527584824210101">Utilitza la teva clau d'accés</translation> <translation id="1327794256477341646">Les funcions que necessiten la teva ubicació no funcionaran</translation> +<translation id="1329466763986822896">Millora la privadesa d'aquest punt d'accés Wi‐Fi</translation> <translation id="1331977651797684645">Sí que era jo.</translation> <translation id="1333489022424033687">Pot ser que algunes funcions que inclou <ph name="ORIGIN" /> no es puguin executar fins que no esborris les dades que altres llocs web han emmagatzemat al teu dispositiu</translation> <translation id="1333965224356556482">No permetis que els llocs web vegin la teva ubicació</translation> @@ -593,6 +596,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{La finestra d'incògnit no es tornarà a obrir.}other{Les # finestres d'incògnit no es tornaran a obrir.}}</translation> <translation id="1546280085599573572">Aquesta extensió ha canviat la pàgina que es mostra quan feu clic al botó d'inici.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> vol instal·lar una extensió de tipus <ph name="EXTENSION_TYPE" /> que pot:</translation> +<translation id="1547123415014299762">Les galetes de tercers estan permeses</translation> <translation id="1547808936554660006">Entenc que els perfils eSIM instal·lats no se suprimiran en fer un executar la funció Powerwash</translation> <translation id="1547936895218027488">Fes clic a la icona del tauler lateral per obrir-lo</translation> <translation id="1549275686094429035">L'ARC està activat</translation> @@ -766,6 +770,7 @@ <translation id="168715261339224929">Per accedir a les adreces d'interès des de tots els dispositius, activa la sincronització.</translation> <translation id="1688867105868176567">Vols esborrar les dades del lloc web?</translation> <translation id="1688935057616748272">Escriu una lletra</translation> +<translation id="1689333818294560261">Àlies</translation> <translation id="168991973552362966">Afegeix una impressora propera</translation> <translation id="1689945336726856614">Copia l'&URL</translation> <translation id="1692115862433274081">Utilitza un altre compte</translation> @@ -1396,6 +1401,7 @@ <translation id="2247870315273396641">Previsualització per veu</translation> <translation id="2249111429176737533">Obre com a finestra amb pestanyes</translation> <translation id="2249605167705922988">p. ex. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Personalitza la informació que utilitzen els llocs web per mostrar-te anuncis</translation> <translation id="2251218783371366160">Obre amb el lector del sistema</translation> <translation id="225163402930830576">Actualitza les xarxes</translation> <translation id="2251809247798634662">Finestra d'incògnit nova</translation> @@ -1510,7 +1516,6 @@ <translation id="2329597144923131178">Inicieu la sessió per tenir adreces d'interès, historial, contrasenyes i altres opcions de configuració en tots els dispositius.</translation> <translation id="2332115969598251205">No es poden carregar els dispositius desats a <ph name="PRIMARY_EMAIL" />. Comprova la connexió a Internet i torna-ho a provar.</translation> <translation id="2332131598580221120">Mostra a la botiga</translation> -<translation id="2332192922827071008">Obre les preferències</translation> <translation id="2332515770639153015">La funció Navegació segura millorada està activada</translation> <translation id="2332742915001411729">Restableix els valors predeterminats</translation> <translation id="2332948465534020594">El mode No molestis està activat</translation> @@ -1844,6 +1849,7 @@ <translation id="2640299212685523844">Utilitza GTK</translation> <translation id="264083724974021997">Connecta't al telèfon - Quadre de diàleg</translation> <translation id="2642111877055905627">Pilota de futbol</translation> +<translation id="2643064289437760082">Pots suprimir les dades de mesurament d'anuncis en qualsevol moment suprimint les dades de navegació</translation> <translation id="2643698698624765890">Per gestionar les extensions, feu clic a Extensions al menú Finestra.</translation> <translation id="2645047101481282803"><ph name="PROFILE_NAME" /> gestiona el teu dispositiu</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2303,6 +2309,7 @@ <translation id="3036327949511794916">El termini per tornar aquest dispositiu <ph name="DEVICE_TYPE" /> ha finalitzat.</translation> <translation id="3036546437875325427">Activa Flash</translation> <translation id="3037754279345160234">No es pot analitzar la configuració per unir-se al domini. Contacta amb l'administrador.</translation> +<translation id="3038272154009688107">Mostra tots els llocs web</translation> <translation id="3038612606416062604">Afegeix una impressora manualment</translation> <translation id="3039491566278747710">No s'ha pogut instal·lar la política sense connexió al dispositiu.</translation> <translation id="3043016484125065343">Inicia la sessió per veure les teves adreces d'interès</translation> @@ -2539,6 +2546,7 @@ <translation id="3289668031376215426">Majúscules automàtiques</translation> <translation id="3289856944988573801">Per comprovar si hi ha actualitzacions, feu servir Ethernet o Wi-Fi.</translation> <translation id="3290249595466894471">També envia una petita mostra de pàgines, baixades, activitat d'extensions i informació del sistema per ajudar a detectar amenaces noves</translation> +<translation id="3293181007446299124">L'historial de navegació es desa en privat al teu dispositiu i els informes s'envien amb retard per protegir la teva identitat</translation> <translation id="3293644607209440645">Envia aquesta pàgina</translation> <translation id="32939749466444286">El contenidor de Linux no s'ha iniciat. Torna-ho a provar.</translation> <translation id="3294437725009624529">Convidat</translation> @@ -3318,6 +3326,7 @@ <translation id="3984431586879874039">Vols permetre que aquest lloc web vegi la teva clau de seguretat?</translation> <translation id="398477389655464998">Copia l'enllaç al text marcat</translation> <translation id="3984862166739904574">Definició de Respostes ràpides</translation> +<translation id="3985022125189960801">Torna a afegir un lloc web si vols que aparegui al grup de llocs web que poden determinar què t'agrada</translation> <translation id="3987544746655539083">Continua impedint que aquest lloc web accedeixi a la meva ubicació</translation> <translation id="3987938432087324095">No ho he entès.</translation> <translation id="3987993985790029246">Copia l'enllaç</translation> @@ -3695,6 +3704,7 @@ <translation id="4366138410738374926">La impressió ha començat</translation> <translation id="4367513928820380646">Revisa els permisos suprimits</translation> <translation id="4369215744064167350">Sol·licitud de lloc web aprovada</translation> +<translation id="4369735607080757018">Es comparteixen tipus de dades limitats entre llocs web per mesurar el rendiment dels anuncis, com ara l'hora del dia en què se t'ha mostrat un anunci</translation> <translation id="4370975561335139969">El correu electrònic i la contrasenya indicats no coincideixen</translation> <translation id="4374831787438678295">Instal·lador de Linux</translation> <translation id="4375035964737468845">Obrir fitxers baixats</translation> @@ -3715,6 +3725,7 @@ <translation id="4385146930797718821">La captura de pantalla s'ha copiat al porta-retalls</translation> <translation id="4385905942116811558">S'estan cercant dispositius Bluetooth i USB</translation> <translation id="4387890294700445764">Contrasenyes en perill</translation> +<translation id="4388650384344483842">Utilitza 8 caràcters com a mínim</translation> <translation id="4389091756366370506">Usuari <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i <ph name="NUMBER_OF_OTHER_SWITCHES" /> interruptors més</translation> <translation id="439266289085815679"><ph name="USER_EMAIL" /> controla la configuració del Bluetooth.</translation> @@ -4036,6 +4047,7 @@ <translation id="4666472247053585787">Consulta les notificacions del telèfon al teu <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Més aplicacions</translation> <translation id="4667027203988048332">Quines dades s'utilitzen:</translation> +<translation id="4668279686271488041">Les dades de mesurament d'anuncis se suprimeixen regularment del dispositiu</translation> <translation id="4672759829555593783">Obre <ph name="FILE_NAME" /> ara</translation> <translation id="46733273239502219">També s'esborraran les dades sense connexió de les aplicacions instal·lades</translation> <translation id="4673442866648850031">Obre les eines del llapis òptic en extreure'l</translation> @@ -4229,6 +4241,7 @@ <translation id="485480310608090163">Més opcions de configuració i permisos</translation> <translation id="4858913220355269194">Pilota</translation> <translation id="4862642413395066333">Signatura de respostes OCSP</translation> +<translation id="4863702650881330715">Amplia la compatibilitat</translation> <translation id="4863769717153320198">Resolució: <ph name="WIDTH" /> x <ph name="HEIGHT" /> (predeterminada)</translation> <translation id="4864805589453749318">Selecciona quin dels teus pares concedeix el permís per afegir un compte de centre educatiu.</translation> <translation id="486635084936119914">Obre alguns tipus de fitxer automàticament després de baixar-los</translation> @@ -4277,7 +4290,6 @@ <translation id="4893336867552636863">Amb aquesta acció, se suprimiran les vostres dades de navegació d'aquest dispositiu permanentment.</translation> <translation id="4893454800196085005">Bona: DVD</translation> <translation id="4893522937062257019">A la pantalla de bloqueig</translation> -<translation id="4897496410259333978">Per obtenir més informació, contacta amb l'administrador.</translation> <translation id="4898011734382862273">El certificat <ph name="CERTIFICATE_NAME" /> representa una entitat emissora de certificats</translation> <translation id="4899052647152077033">Inverteix els colors</translation> <translation id="4899696330053002588">Conté anuncis</translation> @@ -4475,6 +4487,7 @@ <translation id="5094721898978802975">Comunicar-se amb aplicacions natives cooperatives</translation> <translation id="5097002363526479830">S'ha produït un error en connectar amb la xarxa "<ph name="NAME" />": <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Més informació sobre com s'utilitza la ubicació</translation> +<translation id="5097349930204431044">Els llocs web que visites poden determinar què t'agrada i, després, suggerir-te anuncis mentre continues navegant</translation> <translation id="5097649414558628673">Eina: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Fes clic automàticament quan el cursor s'aturi</translation> <translation id="5101683448725092498">Crea una còpia de seguretat de les teves coses</translation> @@ -4658,6 +4671,7 @@ <translation id="5275352920323889391">Gos</translation> <translation id="527605719918376753">Silencia la pestanya</translation> <translation id="527605982717517565">Permet sempre JavaScript a <ph name="HOST" /></translation> +<translation id="5276357196618041410">No es pot desar la configuració sense primer haver iniciat la sessió</translation> <translation id="5277127016695466621">Mostra el tauler lateral</translation> <translation id="5278823018825269962">Identificador d'estat</translation> <translation id="5279600392753459966">Bloqueja'ls tots</translation> @@ -5810,7 +5824,6 @@ <translation id="6347010704471250799">Mostra una notificació</translation> <translation id="6349101878882523185">Instal·la <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Corba el·líptica secp256r1 d'SECG (també coneguda com a X9.62 prime256v1 d'ANSI o NIST P-256)</translation> -<translation id="6355789186038748882">Navegador experimental (amb qualitat alfa). Pot ser que faltin algunes funcions o que no estiguin completes. Informa de qualsevol problema des d'Ajuda > Informa d'un problema...</translation> <translation id="635609604405270300">Mantén el dispositiu activat</translation> <translation id="63566973648609420">Només els usuaris que sàpiguen la teva frase de contrasenya poden llegir les dades que encriptis. La frase de contrasenya no s'envia a Google, ni Google l'emmagatzema. Si l'oblides o vols canviar aquesta configuració, hauràs de <ph name="BEGIN_LINK" />restablir la sincronització<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation> @@ -6150,6 +6163,7 @@ <translation id="6670767097276846646">Algunes extensions poden afegir motors de cerca a Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 adreça}other{# adreces}}</translation> <translation id="6671497123040790595">Configuració de la gestió de <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Afegeix <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Per iniciar la sincronització, introdueix la frase de contrasenya</translation> <translation id="6675665718701918026">S'ha connectat un dispositiu per apuntar</translation> @@ -6233,6 +6247,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Incògnit)</translation> <translation id="6756157672127672536">L'aplicació Fitxers permet accedir ràpidament als fitxers desats a Google Drive, a l'emmagatzematge extern o al dispositiu Chrome OS.</translation> <translation id="6756643207511618722">Motors de parla</translation> +<translation id="6757431299485455321">Ajuda altres dispositius a trobar aquest punt d'accés Wi‐Fi.</translation> <translation id="6758056191028427665">Digue'ns si ho estem fent bé.</translation> <translation id="6759193508432371551">Restabliment de fàbrica</translation> <translation id="6761431452438552910">Comprova que el dispositiu Bluetooth es trobi a prop i en mode de vinculació. Vincula'l només amb dispositius en què confiïs.</translation> @@ -6332,6 +6347,7 @@ <translation id="6833479554815567477">La pestanya s'ha suprimit del grup <ph name="GROUP_NAME" />: <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Canvia a un navegador intel·ligent i segur</translation> <translation id="6833996806551876956">Prova de la zona de proves de privadesa</translation> +<translation id="6835712061486505758">Crea un punt d'accés Wi‐Fi per proporcionar Internet a altres dispositius. <ph name="BEGIN_LINK_LEARN_MORE" />Més informació<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Connecteu-vos a Internet per actualitzar el dispositiu <ph name="DEVICE_TYPE" />.</translation> <translation id="6839225236531462745">Error de supressió del certificat</translation> <translation id="6839916869147598086">L'inici de sessió ha canviat</translation> @@ -6493,6 +6509,7 @@ <translation id="697508444536771064">Apaga Linux</translation> <translation id="6975361011348772931">Ha sol·licitat llegir i canviar</translation> <translation id="6978121630131642226">Motors de cerca</translation> +<translation id="6978717888677691380">Llocs web que has bloquejat</translation> <translation id="6979041727349121225">Estalvi d'energia</translation> <translation id="6979044105893951891">Llança sessions de convidat administrades i surt-ne</translation> <translation id="6979440798594660689">Silencia (opció predeterminada)</translation> @@ -6584,6 +6601,7 @@ <translation id="7047059339731138197">Tria un fons</translation> <translation id="7048457618657122233">Comparteix l'enllaç a <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Vols desar el fitxer?</translation> +<translation id="7050037487872780845">La configuració del punt d'accés Wi‐Fi no és vàlida</translation> <translation id="7052237160939977163">Envia dades de traça del rendiment</translation> <translation id="7053983685419859001">Bloqueja</translation> <translation id="7055152154916055070">S'ha bloquejat la redirecció:</translation> @@ -6788,6 +6806,7 @@ <translation id="7258192266780953209">Transformacions</translation> <translation id="7258225044283673131">L'aplicació no respon. Selecciona "Força el tancament" per tancar l'aplicació.</translation> <translation id="7260186537988033909">S'ha completat la inscripció del dispositiu de quiosc i de cartelleria</translation> +<translation id="7260367682327802201">És possible que el teu dispositiu Android inclogui una opció de configuració similar. Si el mesurament d'anuncis està activat a Chrome i al teu dispositiu Android, les empreses podrien mesurar l'efectivitat d'un anunci als llocs web que visites i a les aplicacions que fas servir.</translation> <translation id="7262004276116528033">Aquest servei d'inici de sessió s'allotja a <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{S'han suprimit els permisos d'1 lloc web}other{S'han suprimit els permisos de {NUM_SITES} llocs web}}</translation> <translation id="7264695323040866038">Vols utilitzar sempre l'aplicació <ph name="APP" /> per obrir els enllaços web admesos?</translation> @@ -6931,6 +6950,7 @@ <translation id="7406912950279255498">Mode d'inversió de colors</translation> <translation id="7407430846095439694">Importa i vincula</translation> <translation id="7407504355934009739">La majoria d'usuaris bloquegen les notificacions d'aquest lloc web</translation> +<translation id="7408080603962564527">Serà visible per a la resta d'usuaris</translation> <translation id="740810853557944681">Afegeix un servidor d'impressió</translation> <translation id="7409549334477097887">Molt gran</translation> <translation id="7409599290172516453">Fotos recents</translation> @@ -6969,7 +6989,6 @@ <translation id="7434757724413878233">Acceleració del ratolí</translation> <translation id="7434969625063495310">No s'ha pogut afegir el servidor d'impressió. Comprova'n la configuració i torna-ho a provar.</translation> <translation id="7436921188514130341">S'ha produït un error durant el canvi de nom.</translation> -<translation id="7438495332316988804">Per utilitzar el navegador estàndard, escriu "Chrome" al menú d'aplicacions.</translation> <translation id="7439519621174723623">Afegeix el nom d'un dispositiu per continuar</translation> <translation id="7441736921018636843">Si vols canviar aquesta opció, <ph name="BEGIN_LINK" />restableix la sincronització<ph name="END_LINK" /> perquè se suprimeixi la frase de contrasenya de sincronització</translation> <translation id="7441830548568730290">Altres usuaris</translation> @@ -7246,6 +7265,7 @@ <translation id="7684718995427157417">Per crear aplicacions i provar-les, activa Android Debug Bridge (ADB). Tingues en compte que aquesta acció permet instal·lar aplicacions d'Android que Google no ha verificat. Per desactivar ADB, hauràs de restablir la configuració de fàbrica del dispositiu.</translation> <translation id="7685049629764448582">Memòria de JavaScript </translation> <translation id="7685087414635069102">PIN obligatori</translation> +<translation id="7686086654630106285">Més informació sobre els anuncis suggerits per llocs web</translation> <translation id="7686581688229391955">Selecciona per permetre les extensions en aquest lloc web</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Confirma la contrasenya nova</translation> @@ -7267,6 +7287,7 @@ <translation id="7704317875155739195">Completa automàticament les cerques i els URL</translation> <translation id="7704521324619958564">Obre Play Store</translation> <translation id="7705276765467986571">No s'ha pogut carregar el model d'adreça d'interès.</translation> +<translation id="7705334495398865155">Defineix de manera aleatòria l'identificador del teu maquinari (BSSID) per evitar que altres usuaris facin un seguiment d'aquest dispositiu.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">No es permet que aquest lloc web utilitzi els sensors de moviment.</translation> <translation id="7707922173985738739">Utilitza dades mòbils</translation> @@ -7460,6 +7481,7 @@ <translation id="7881483672146086348">Mostra el compte</translation> <translation id="7883792253546618164">Pots cancel·lar la subscripció en qualsevol moment.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Revisa 1 lloc web que ha enviat moltes notificacions}other{Revisa {NUM_SITES} llocs web que han enviat moltes notificacions}}</translation> +<translation id="7884446017008693258">Configuració del punt d'accés Wi‐Fi</translation> <translation id="788453346724465748">S'està carregant informació del compte...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 element}other{# elements}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7547,6 +7569,7 @@ <translation id="7952904276017482715">L'identificador esperat era "<ph name="EXPECTED_ID" />", però el que hi havia era "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Introducció de text</translation> <translation id="7953955868932471628">Gestiona les dreceres</translation> +<translation id="7955105108888461311">Pregunta en persona</translation> <translation id="7955177647836564772">Si Smart Lock està activat i el telèfon està desbloquejat, no caldrà que introdueixis cap contrasenya ni cap PIN</translation> <translation id="7956373551960864128">Les teves impressores desades</translation> <translation id="7957074856830851026">Mostra la informació del dispositiu, com ara el número de sèrie o l'identificador de recurs</translation> @@ -7685,6 +7708,7 @@ <ph name="BEGIN_PARAGRAPH3" />Pots desactivar aquest servei a Configuració.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Pestanyes</translation> <translation id="8076835018653442223">L'administrador ha desactivat l'accés als fitxers locals del dispositiu</translation> +<translation id="8077120325605624147">Qualsevol lloc web que visitis pot mostrar-te qualsevol anunci</translation> <translation id="80798452873915119">Els llocs web poden demanar permís per gestionar finestres en totes les pantalles</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">La sessió està gestionada per <ph name="MANAGER_NAME" />. Els administradors poden suprimir el teu perfil i també monitorar el teu trànsit de xarxa.</translation> @@ -8198,6 +8222,7 @@ <translation id="8557180006508471423">Activa Google Chrome als serveis d'ubicació del Mac.</translation> <translation id="8557856025359704738">La baixada següent serà a les <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Claus d'accés</translation> +<translation id="8559961053328923750">Chrome limita la quantitat total de dades que els llocs web poden compartir a través del navegador per mesurar el rendiment dels anuncis</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Obre-les totes en una finestra &nova}=1{Obre en una finestra &nova}other{Obre-les totes ({COUNT}) en una finestra &nova}}</translation> <translation id="8561206103590473338">Elefant</translation> <translation id="8561565784790166472">Cal anar amb compte</translation> @@ -8339,6 +8364,7 @@ <translation id="8678933587484842200">Com voldries que s'iniciés aquesta aplicació?</translation> <translation id="8680251145628383637">Inicieu la sessió per tenir les adreces d'interès, l'historial, les contrasenyes i altres opcions en tots els dispositius. A més, iniciareu la sessió automàticament als serveis de Google.</translation> <translation id="8681614230122836773">Chrome ha trobat programari maliciós a l'ordinador</translation> +<translation id="8681886425883659911">Els anuncis es bloquegen en llocs web que se sap que mostren anuncis intrusius o enganyosos</translation> <translation id="8682730193597992579">La impressora <ph name="PRINTER_NAME" /> està connectada i a punt</translation> <translation id="8687103160920393343">Cancel·la <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Disponible</translation> @@ -8709,6 +8735,7 @@ <translation id="9021662811137657072">S'ha detectat un virus</translation> <translation id="902236149563113779">Els llocs web solen fer un seguiment de la posició de la càmera per a funcions de realitat augmentada, com ara jocs o indicacions en pantalles de visualització frontal</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ja utilitza aquest compte en aquest equip.</translation> +<translation id="9022871169049522985">Els llocs web i els anunciants poden mesurar el rendiment dels seus anuncis</translation> <translation id="9023015617655685412">Afegeix aquesta pestanya a les adreces d'interès...</translation> <translation id="9023909777842748145">Si aquesta funció es desactiva, no afectarà la capacitat del dispositiu d'enviar la informació necessària per rebre serveis bàsics, com ara seguretat i actualitzacions del sistema.</translation> <translation id="9024127637873500333">&Obre en una pestanya nova</translation> @@ -8838,6 +8865,7 @@ <translation id="9128335130883257666">Obre la pàgina de configuració per a <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Connecta't a la xarxa</translation> <translation id="9130015405878219958">S'ha introduït un mode no vàlid.</translation> +<translation id="9131209053278896908">Els llocs web bloquejats es mostren aquí</translation> <translation id="9131487537093447019">Enviar missatges a dispositius Bluetooth i rebre'n</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 adreça d'interès}other{# adreces d'interès}}</translation> <translation id="9134066738478820307">Els llocs web poden utilitzar identificadors per reproduir contingut protegit</translation> @@ -8891,6 +8919,7 @@ <translation id="9180281769944411366">Aquest procés pot tardar uns quants minuts. S'està iniciant el contenidor de Linux.</translation> <translation id="9180380851667544951">El lloc web pot compartir la pantalla</translation> <translation id="9182556968660520230">No permetis que els llocs web reprodueixin contingut protegit</translation> +<translation id="9183331776983279456">Chrome suprimeix automàticament els llocs web que tenen més de 4 setmanes. És possible que un lloc web que tornis a visitar aparegui de nou a la llista. També pots bloquejar un lloc web per impedir que et suggereixi anuncis.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Aplicació}other{# aplicacions}}</translation> <translation id="9186963452600581158">Inicia la sessió amb el Compte de Google d'un nen</translation> <translation id="9187967020623675250">Les tecles no coincideixen. Prem qualsevol tecla per <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 3dae57c..7d57fd4 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -768,6 +768,7 @@ <translation id="168715261339224929">Chcete-li mít záložky ve všech zařízeních, zapněte synchronizaci.</translation> <translation id="1688867105868176567">Vymazat data webu?</translation> <translation id="1688935057616748272">Zadejte písmeno</translation> +<translation id="1689333818294560261">Přezdívka</translation> <translation id="168991973552362966">Přidání tiskárny v okolí</translation> <translation id="1689945336726856614">Kopírovat adresu &URL</translation> <translation id="1692115862433274081">Použít jiný účet</translation> @@ -1512,7 +1513,6 @@ <translation id="2329597144923131178">Přihlaste se a synchronizujte záložky, historii, hesla a další nastavení do všech svých zařízení.</translation> <translation id="2332115969598251205">Zařízení uložená do účtu <ph name="PRIMARY_EMAIL" /> nelze načíst. Zkontrolujte připojení k internetu a zkuste to znovu.</translation> <translation id="2332131598580221120">Zobrazit v obchodu</translation> -<translation id="2332192922827071008">Otevřít nastavení</translation> <translation id="2332515770639153015">Vylepšené Bezpečné prohlížení je zapnuté</translation> <translation id="2332742915001411729">Výchozí nastavení</translation> <translation id="2332948465534020594">Aktivován režim Nerušit</translation> @@ -4279,7 +4279,6 @@ <translation id="4893336867552636863">Tímto z tohoto zařízení trvale smažete své údaje o prohlížení.</translation> <translation id="4893454800196085005">Dobrá – DVD</translation> <translation id="4893522937062257019">Na obrazovce uzamčení</translation> -<translation id="4897496410259333978">Další informace vám poskytne administrátor.</translation> <translation id="4898011734382862273">Certifikát <ph name="CERTIFICATE_NAME" /> reprezentuje certifikační autoritu</translation> <translation id="4899052647152077033">Převrátit barvy</translation> <translation id="4899696330053002588">Obsahuje reklamy</translation> @@ -5810,7 +5809,6 @@ <translation id="6347010704471250799">Zobrazit oznámení</translation> <translation id="6349101878882523185">Nainstalovat aplikaci <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Eliptická křivka SECG secp256r1 (neboli ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Experimentální prohlížeč (verze alfa)! Některé funkce chybí nebo nejsou úplné. Problémy hlaste v sekci Nápověda > Nahlásit problém…</translation> <translation id="635609604405270300">Ponechat zařízení zapnuté</translation> <translation id="63566973648609420">Vaše šifrovaná data mohou číst pouze uživatelé, kteří mají vaši heslovou frázi. Heslová fráze se neodesílá do Googlu a není na Googlu uložena. Pokud heslovou frázi zapomenete nebo toto nastavení budete chtít změnit, budete muset <ph name="BEGIN_LINK" />synchronizaci resetovat<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" /> nebo <ph name="APP_NAME_2" />.</translation> @@ -6973,7 +6971,6 @@ <translation id="7434757724413878233">Zrychlení myši</translation> <translation id="7434969625063495310">Přidání tiskového serveru se nezdařilo. Zkontrolujte konfiguraci serveru a zkuste to znovu.</translation> <translation id="7436921188514130341">Aj, chyba! Při přejmenovávání došlo k chybě.</translation> -<translation id="7438495332316988804">Standardní prohlížeč najdete tak, že do spouštěče zadáte text „Chrome“.</translation> <translation id="7439519621174723623">Pokud chcete pokračovat, přidejte název zařízení</translation> <translation id="7441736921018636843">Chcete-li toto nastavení změnit, <ph name="BEGIN_LINK" />resetováním synchronizace<ph name="END_LINK" /> odstraňte svou heslovou frázi pro synchronizaci</translation> <translation id="7441830548568730290">Ostatní uživatelé</translation> @@ -7551,6 +7548,7 @@ <translation id="7952904276017482715">Bylo očekáváno ID <ph name="EXPECTED_ID" />, ale bylo použito ID <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Metody zadávání</translation> <translation id="7953955868932471628">Spravovat zástupce</translation> +<translation id="7955105108888461311">Zeptat se osobně</translation> <translation id="7955177647836564772">Pokud je zapnutá funkce Smart Lock a váš telefon je odemknutý, heslo ani PIN zadávat nemusíte.</translation> <translation id="7956373551960864128">Vaše uložené tiskárny</translation> <translation id="7957074856830851026">Zobrazit informace o zařízení, například sériové či evidenční číslo</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index b5ca1d29..83af64f 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Agorwch y Llun &Gwreiddiol mewn Tab Newydd</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn 1 wythnos}zero{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn {NUM_WEEKS} wythnos}two{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn {NUM_WEEKS} wythnos}few{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn {NUM_WEEKS} wythnos}many{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn {NUM_WEEKS} wythnos}other{Diweddarwch <ph name="DEVICE_TYPE" /> o fewn {NUM_WEEKS} wythnos}}</translation> <translation id="1056898198331236512">Rhybudd</translation> +<translation id="1056980582064308040">Bydd newid gosodiadau yn ailgychwyn y poethfan. Bydd dyfeisiau sy'n defnyddio'r poethfan yn datgysylltu.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf un nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}zero{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf # nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}two{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf # nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}few{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf # nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}many{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf # nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}other{Rhowch eich PIN newydd. Rhaid i PIN fod o leiaf # nod o hyd a gall gynnwys llythrennau, rhifau a nodau eraill.}}</translation> <translation id="1059484610606223931">Protocol Trafnidiaeth Hyperdestun (HTTPS)</translation> @@ -309,6 +310,7 @@ <translation id="1272079795634619415">Stopio</translation> <translation id="1272508081857842302">Wrthi'n agor <ph name="BEGIN_LINK" />dolenni a gefnogir<ph name="END_LINK" /></translation> <translation id="1272978324304772054">Nid yw'r cyfrif defnyddiwr hwn yn perthyn i'r parth y mae'r ddyfais wedi'i gofrestru iddo. Os ydych chi eisiau cofrestru i barth gwahanol mae angen i chi fynd drwy adfer dyfais yn gyntaf.</translation> +<translation id="1273937721055267968">Rhwystro <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cwcis a data gwefan eraill</translation> <translation id="1275718070701477396">Wedi'i ddewis</translation> <translation id="1276994519141842946">Methu â gosod <ph name="APP_NAME" /></translation> @@ -360,6 +362,7 @@ <translation id="1327495825214193325">Er mwyn galluogi dadfygio ADB, mae angen ailgychwyn y <ph name="DEVICE_TYPE" /> hwn. Er mwyn ei analluogi mae angen ei ailosod i'r gosodiadau ffatri.</translation> <translation id="1327527584824210101">Defnyddiwch eich cod pas</translation> <translation id="1327794256477341646">Ni fydd nodweddion sydd angen eich lleoliad yn gweithio</translation> +<translation id="1329466763986822896">Gwella diogelwch ar gyfer y poethfan hwn</translation> <translation id="1331977651797684645">Fi oedd hyn.</translation> <translation id="1333489022424033687">Mae'n bosib na fydd rhai nodweddion ar <ph name="ORIGIN" /> yn gweithio nes i chi glirio data y mae gwefannau eraill wedi'u storio ar eich dyfais</translation> <translation id="1333965224356556482">Peidio â chaniatáu i wefannau weld eich lleoliad</translation> @@ -599,6 +602,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Ni fydd eich ffenestr Anhysbys yn ailagor.}zero{Ni fydd eich # ffenestr Anhysbys yn ailagor.}two{Ni fydd eich # ffenestr Anhysbys yn ailagor.}few{Ni fydd eich # ffenestr Anhysbys yn ailagor.}many{Ni fydd eich # ffenestr Anhysbys yn ailagor.}other{Ni fydd eich # ffenestr Anhysbys yn ailagor.}}</translation> <translation id="1546280085599573572">Mae'r estyniad hwn wedi newid pa dudalen a ddangosir wrth i chi glicio'r botwm Hafan.</translation> <translation id="1546452108651444655">Mae <ph name="CHILD_NAME" /> am osod <ph name="EXTENSION_TYPE" /> all:</translation> +<translation id="1547123415014299762">Caniateir cwcis trydydd parti</translation> <translation id="1547808936554660006">Rwy'n deall na fydd Powerwash yn tynnu proffiliau eSIM sydd wedi'u gosod</translation> <translation id="1547936895218027488">Cliciwch yr eicon panel ochr i'w agor</translation> <translation id="1549275686094429035">Mae ARC wedi'i alluogi</translation> @@ -772,6 +776,7 @@ <translation id="168715261339224929">I gael eich nodau tudalen ar eich holl ddyfeisiau, trowch gysoni ymlaen.</translation> <translation id="1688867105868176567">Clirio data'r wefan?</translation> <translation id="1688935057616748272">Teipiwch lythyren</translation> +<translation id="1689333818294560261">Llysenw</translation> <translation id="168991973552362966">Ychwanegu argraffydd gerllaw</translation> <translation id="1689945336726856614">Copïo &URL</translation> <translation id="1692115862433274081">Defnyddio cyfrif arall</translation> @@ -1411,6 +1416,7 @@ <translation id="2247870315273396641">Rhagolwg llais</translation> <translation id="2249111429176737533">Ar agor fel ffenestr mewn tab</translation> <translation id="2249605167705922988">e.e. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Addaswch y wybodaeth a ddefnyddir gan wefannau i ddangos hysbysebion i chi</translation> <translation id="2251218783371366160">Agor gyda gwyliwr system</translation> <translation id="225163402930830576">Ail-lwytho Rhwydweithiau</translation> <translation id="2251809247798634662">Ffenestr Anhysbys newydd</translation> @@ -1528,7 +1534,6 @@ <translation id="2329597144923131178">Mewngofnodwch i gael eich nodau tudalen, hanes, cyfrineiriau a gosodiadau eraill ar eich holl ddyfeisiau.</translation> <translation id="2332115969598251205">Methu â llwytho dyfeisiau sydd wedi'u cadw i <ph name="PRIMARY_EMAIL" />. Gwiriwch eich cysylltiad rhyngrwyd a rhowch gynnig arall arni.</translation> <translation id="2332131598580221120">Gweld yn Chrome Web Store</translation> -<translation id="2332192922827071008">Agor Dewisiadau</translation> <translation id="2332515770639153015">Mae Gwell Pori'n Ddiogel ymlaen</translation> <translation id="2332742915001411729">Ailosod i'r thema ddiofyn</translation> <translation id="2332948465534020594">Mae Peidio ag aflonyddu wedi'i alluogi</translation> @@ -1862,6 +1867,7 @@ <translation id="2640299212685523844">Defnyddio GTK</translation> <translation id="264083724974021997">Cysylltu â'ch ffôn - Deialog</translation> <translation id="2642111877055905627">Pêl-droed</translation> +<translation id="2643064289437760082">Gallwch bob amser ddileu data mesur hysbyseb wrth ddileu eich data pori</translation> <translation id="2643698698624765890">Rheoli eich estyniadau drwy glicio Estyniadau yn y ddewislen Windows.</translation> <translation id="2645047101481282803">Rheolir eich dyfais gan <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2321,6 +2327,7 @@ <translation id="3036327949511794916">Mae'r dyddiad cau i ddychwelyd y <ph name="DEVICE_TYPE" /> hwn wedi mynd heibio.</translation> <translation id="3036546437875325427">Galluogi Flash</translation> <translation id="3037754279345160234">Methu â dosrannu'r ffurfweddiad i ymuno â'r parth. Cysylltwch â'ch gweinyddwr.</translation> +<translation id="3038272154009688107">Gweld pob gwefan</translation> <translation id="3038612606416062604">Ychwanegu dyfais eich hun</translation> <translation id="3039491566278747710">Methwyd â gosod polisi all-lein ar y ddyfais hon.</translation> <translation id="3043016484125065343">Mewngofnodi er mwyn gweld eich nodau tudalen</translation> @@ -2557,6 +2564,7 @@ <translation id="3289668031376215426">Priflythrennu awtomatig</translation> <translation id="3289856944988573801">I weld a oes unrhyw ddiweddariadau, defnyddiwch yr Ether-rwyd neu Wi-Fi.</translation> <translation id="3290249595466894471">Hefyd yn anfon sampl fach o dudalennau, lawrlwythiadau, gweithgarwch estyniadau, a gwybodaeth system i helpu i ddarganfod bygythiadau newydd</translation> +<translation id="3293181007446299124">Mae eich hanes pori yn cael ei gadw'n breifat ar eich dyfais ac anfonir adroddiadau gydag oedi er mwyn diogelu eich hunaniaeth</translation> <translation id="3293644607209440645">Anfon y dudalen hon</translation> <translation id="32939749466444286">Ni wnaeth y cynhwysydd Linux ddechrau. Rhowch gynnig arall arni.</translation> <translation id="3294437725009624529">Gwestai</translation> @@ -3337,6 +3345,7 @@ <translation id="3984431586879874039">Ydych chi am ganiatáu i'r wefan hon weld eich allwedd ddiogelwch?</translation> <translation id="398477389655464998">Copïo Dolen i'r Testun a Amlygir</translation> <translation id="3984862166739904574">Diffiniad Atebion Cyflym</translation> +<translation id="3985022125189960801">Ychwanegu gwefan yn ôl os ydych ei heisiau yn y gronfa o wefannau sy'n gallu dyfalu beth rydych yn ei hoffi</translation> <translation id="3987544746655539083">Parhau i rwystro'r wefan hon rhag cael mynediad at eich lleoliad</translation> <translation id="3987938432087324095">Mae'n ddrwg gennym, ni chlywsom hynny.</translation> <translation id="3987993985790029246">Copïo'r ddolen</translation> @@ -3714,6 +3723,7 @@ <translation id="4366138410738374926">Wedi dechrau argraffu</translation> <translation id="4367513928820380646">Adolygu caniatadau a dynnwyd</translation> <translation id="4369215744064167350">Cais am fynediad at wefan wedi'i gymeradwyo</translation> +<translation id="4369735607080757018">Rhennir mathau cyfyngedig o ddata rhwng gwefannau i fesur perfformiadau eu hysbysebion, megis yr amser o'r dydd a ddangoswyd hysbyseb i chi</translation> <translation id="4370975561335139969">Nid yw'r e-bost a'r cyfrinair a roddwyd gennych yn cyfateb</translation> <translation id="4374831787438678295">Teclyn gosod Linux</translation> <translation id="4375035964737468845">Agor ffeiliau sydd wedi'u lawrlwytho</translation> @@ -3734,6 +3744,7 @@ <translation id="4385146930797718821">Wedi copïo'r sgrinlun i'r clipfwrdd</translation> <translation id="4385905942116811558">Wrthi'n chwilio am ddyfeisiau Bluetooth a USB</translation> <translation id="4387890294700445764">Cyfrineiriau sydd wedi'u darganfod</translation> +<translation id="4388650384344483842">Defnyddiwch o leiaf 8 nod</translation> <translation id="4389091756366370506">Defnyddiwr <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, a <ph name="NUMBER_OF_OTHER_SWITCHES" /> switsh arall</translation> <translation id="439266289085815679">Rheolir y ffurfweddiad Bluetooth gan <ph name="USER_EMAIL" />.</translation> @@ -4055,6 +4066,7 @@ <translation id="4666472247053585787">Gweld hysbysiadau o'ch ffôn ar eich <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Rhagor o apiau</translation> <translation id="4667027203988048332">Pa ddata sy'n cael eu defnyddio:</translation> +<translation id="4668279686271488041">Mae data mesur hysbyseb yn cael eu dileu yn rheolaidd o'ch dyfais</translation> <translation id="4672759829555593783">Agor <ph name="FILE_NAME" /> nawr</translation> <translation id="46733273239502219">Bydd data all-lein mewn apiau a osodwyd yn cael eu clirio hefyd</translation> <translation id="4673442866648850031">Agor offer pwyntil pan fydd y pwyntil wedi'i dynnu</translation> @@ -4248,6 +4260,7 @@ <translation id="485480310608090163">Rhagor o osodiadau a chaniatadau</translation> <translation id="4858913220355269194">Fritz</translation> <translation id="4862642413395066333">Llofnodi Ymatebion OCSP</translation> +<translation id="4863702650881330715">Ymestyn cydnawsedd</translation> <translation id="4863769717153320198">Mae'n edrych fel <ph name="WIDTH" /> x <ph name="HEIGHT" /> (Diofyn)</translation> <translation id="4864805589453749318">Dewiswch y rhiant sy'n rhoi caniatâd i ychwanegu at gyfrif ysgol.</translation> <translation id="486635084936119914">Agorwch rai mathau o ffeiliau yn awtomatig ar ôl eu lawrlwytho</translation> @@ -4296,7 +4309,6 @@ <translation id="4893336867552636863">Bydd hyn yn dileu eich data pori o'r ddyfais hon yn barhaol.</translation> <translation id="4893454800196085005">Da - DVD</translation> <translation id="4893522937062257019">Ar y clo sgrîn</translation> -<translation id="4897496410259333978">Am ragor o wybodaeth, cysylltwch â'ch gweinyddwr.</translation> <translation id="4898011734382862273">Mae'r dystysgrif "<ph name="CERTIFICATE_NAME" />" yn cynrychioli Awdurdod Ardystio</translation> <translation id="4899052647152077033">Gwrthdroi lliwiau</translation> <translation id="4899696330053002588">Yn cynnwys hysbysebion</translation> @@ -4494,6 +4506,7 @@ <translation id="5094721898978802975">Cyfathrebu ag apiau brodorol sy'n cydweithredu</translation> <translation id="5097002363526479830">Wedi methu â chysylltu â'r rhwydwaith '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Dysgu rhagor am ddefnyddio lleoliad</translation> +<translation id="5097349930204431044">Gall gwefannau rydych yn ymweld â nhw benderfynu beth rydych yn ei hoffi ac yna awgrymu hysbysebion wrth i chi barhau i bori</translation> <translation id="5097649414558628673">Offeryn: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Clicio'n awtomatig pan fydd y cyrchwr yn stopio</translation> <translation id="5101683448725092498">Creu copïau wrth gefn o'ch pethau</translation> @@ -4676,6 +4689,7 @@ <translation id="5275352920323889391">Ci</translation> <translation id="527605719918376753">Distewi'r tab</translation> <translation id="527605982717517565">Caniatáu JavaScript bob amser ar <ph name="HOST" /></translation> +<translation id="5276357196618041410">Methu â chadw'r ffurfweddiad heb fewngofnodi'n gyntaf</translation> <translation id="5277127016695466621">Dangos y panel ochr</translation> <translation id="5278823018825269962">Rhif adnabod statws</translation> <translation id="5279600392753459966">Rhwystro pob un</translation> @@ -5830,7 +5844,6 @@ <translation id="6347010704471250799">Dangos hysbysiad</translation> <translation id="6349101878882523185">Gosod <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Cromlin eliptig SECG secp256r1 (gelwir heyd ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Porwr arbrofol (ansawdd alffa)! Mae rhai nodweddion ar goll neu'n anghyflawn. Rhowch wybod am broblemau gyda Help > "Rhoi gwybod am broblem..."</translation> <translation id="635609604405270300">Cadw'r ddyfais ymlaen</translation> <translation id="63566973648609420">Dim ond rhywun â'ch cyfrinymadrodd all ddarllen eich data sydd wedi'u hamgryptio. Nid yw'r cyfrinymadrodd yn cael ei anfon at Google na'i storio. Os byddwch yn anghofio eich cyfrinymadrodd neu os hoffech newid y gosodiad hwn, bydd angen i chi <ph name="BEGIN_LINK" />ailosod cysoni<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Bydd rhai dolenni a gefnogir yn dal i agor yn <ph name="APP_NAME" /> neu <ph name="APP_NAME_2" />.</translation> @@ -6178,6 +6191,7 @@ <translation id="6670767097276846646">Gall rhai estyniadau ychwanegu peiriannau chwilio at Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{cyfeiriad}zero{# cyfeiriad}two{# gyfeiriad}few{# chyfeiriad}many{# chyfeiriad}other{# cyfeiriad}}</translation> <translation id="6671497123040790595">Wrthi'n gosod rheolaeth gan <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Ychwanegu <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">I ddechrau cysoni, rhowch eich cyfrinymadrodd</translation> <translation id="6675665718701918026">Wedi cysylltu'r ddyfais pwyntio</translation> @@ -6261,6 +6275,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Anhysbys)</translation> <translation id="6756157672127672536">Mae'r ap Files yn darparu mynediad cyflym at ffeiliau rydych wedi'u cadw ar Google Drive, storfa allanol, neu'ch dyfais ChromeOS.</translation> <translation id="6756643207511618722">Peiriannau lleferydd</translation> +<translation id="6757431299485455321">Helpu dyfeisiau eraill i ddod o hyd i'r poethfan hwn.</translation> <translation id="6758056191028427665">Rhannwch eich barn gyda ni.</translation> <translation id="6759193508432371551">Ailosod i'r gosodiadau ffatri</translation> <translation id="6761431452438552910">Gwnewch yn siŵr bod eich dyfais Bluetooth yn y modd paru a gerllaw. Parwch gyda dyfeisiau rydych yn ymddiried ynddynt yn unig.</translation> @@ -6360,6 +6375,7 @@ <translation id="6833479554815567477">Mae tab wedi'i dynnu o'r grŵp <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Newid i borwr clyfar a diogel</translation> <translation id="6833996806551876956">Prawf Privacy Sandbox</translation> +<translation id="6835712061486505758">Creu poethfan Wi-Fi i ddarparu rhyngrwyd i ddyfeisiau eraill. <ph name="BEGIN_LINK_LEARN_MORE" />Dysgu rhagor<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Cysylltwch â'r Rhyngrwyd i ddiweddaru eich <ph name="DEVICE_TYPE" />.</translation> <translation id="6839225236531462745">Gwall Dileu Tystysgrif</translation> <translation id="6839916869147598086">Mae mewngofnodi wedi newid</translation> @@ -6521,6 +6537,7 @@ <translation id="697508444536771064">Diffodd Linux</translation> <translation id="6975361011348772931">Wedi gofyn am ddarllen a newid</translation> <translation id="6978121630131642226">Peiriannau Chwilio</translation> +<translation id="6978717888677691380">Gwefannau rydych wedi'u rhwystro</translation> <translation id="6979041727349121225">Arbedwr Ynni</translation> <translation id="6979044105893951891">Lansio a gadael sesiynau gwestai a reolir</translation> <translation id="6979440798594660689">Distewi (diofyn)</translation> @@ -6612,6 +6629,7 @@ <translation id="7047059339731138197">Dewiswch gefndir</translation> <translation id="7048457618657122233">Rhannu'r ddolen â <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Cadw'r ffeil?</translation> +<translation id="7050037487872780845">Ffurfweddiad poethfan annilys</translation> <translation id="7052237160939977163">Anfon data olrhain perfformiad</translation> <translation id="7053983685419859001">Rhwystro</translation> <translation id="7055152154916055070">Mae ailgyfeirio wedi'i rwystro:</translation> @@ -6816,6 +6834,7 @@ <translation id="7258192266780953209">Trawsnewidiadau</translation> <translation id="7258225044283673131">Nid yw'r ap yn ymateb. Dewiswch "Gorfodi i gau" i gau'r ap.</translation> <translation id="7260186537988033909">Wedi cwblhau cofrestru dyfais ciosg neu arwyddion</translation> +<translation id="7260367682327802201">Gall eich dyfais Android gynnwys gosodiad tebyg. Os caiff Mesur Hysbysebion ei droi ymlaen yn Chrome ac ar eich dyfais Android, mae'n bosib y gall cwmni fesur effeithiolrwydd hysbyseb ar draws gwefannau rydych yn ymweld â nhw a'r apiau rydych yn eu defnyddio.</translation> <translation id="7262004276116528033">Mae'r gwasanaeth mewngofnodi hwn yn cael ei westeio gan <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Caniatâd wedi'i dynnu ar gyfer 1 gwefan}zero{Caniatâd wedi'i dynnu ar gyfer {NUM_SITES} gwefan}two{Caniatâd wedi'i dynnu ar gyfer {NUM_SITES} wefan}few{Caniatâd wedi'i dynnu ar gyfer {NUM_SITES} gwefan}many{Caniatâd wedi'i dynnu ar gyfer {NUM_SITES} gwefan}other{Caniatâd wedi'i dynnu ar gyfer {NUM_SITES} gwefan}}</translation> <translation id="7264695323040866038">Defnyddio'r ap <ph name="APP" /> bob amser i agor dolenni gwe a gefnogir?</translation> @@ -6959,6 +6978,7 @@ <translation id="7406912950279255498">Modd gwrthdroad lliw</translation> <translation id="7407430846095439694">Mewnforio a Rhwymo</translation> <translation id="7407504355934009739">Mae'r rhan fwyaf o bobl yn rhwystro hysbysiadau o'r wefan hon</translation> +<translation id="7408080603962564527">Bydd hyn yn weladwy i eraill</translation> <translation id="740810853557944681">Ychwanegu gweinydd argraffu</translation> <translation id="7409549334477097887">Mawr iawn</translation> <translation id="7409599290172516453">Lluniau Diweddar</translation> @@ -6997,7 +7017,6 @@ <translation id="7434757724413878233">Cyflymiad llygoden</translation> <translation id="7434969625063495310">Ni ellid ychwanegu gweinydd yr argraffydd. Gwiriwch ffurfweddiad y gweinydd a rhowch gynnig arall arni.</translation> <translation id="7436921188514130341">Damo! Bu gwall wrth ailenwi.</translation> -<translation id="7438495332316988804">Gellir dod o hyd i'r porwr sylfaenol drwy deipio "Chrome" yn Launcher.</translation> <translation id="7439519621174723623">Ychwanegwch enw dyfais i barhau</translation> <translation id="7441736921018636843">I newid y gosodiad hwn, <ph name="BEGIN_LINK" />ail-osodwch gysoni<ph name="END_LINK" /> i dynnu eich cyfrinymadrodd cysoni</translation> <translation id="7441830548568730290">Defnyddwyr eraill</translation> @@ -7274,6 +7293,7 @@ <translation id="7684718995427157417">Er mwyn creu a phrofi eich apiau, galluogwch Bont Ddadfygio Android (ADB). Sylwer bod y weithred hon yn caniatáu gosod apiau Android nad ydynt wedi'u dilysu gan Google, ac mae angen ailosod i'r gosodiadau ffatri i'w hanalluogi.</translation> <translation id="7685049629764448582">Cof JavaScript</translation> <translation id="7685087414635069102">Mae angen PIN</translation> +<translation id="7686086654630106285">Rhagor am hysbysebion a awgrymir gan wefan</translation> <translation id="7686581688229391955">Dewiswch i ganiatáu estyniadau ar y wefan hon</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Cadarnhau cyfrinair newydd</translation> @@ -7295,6 +7315,7 @@ <translation id="7704317875155739195">Awtogwblhau chwiliadau a chyfeiriadau URL</translation> <translation id="7704521324619958564">Agor Play Store</translation> <translation id="7705276765467986571">Methu â llwytho'r model nodau tudalen.</translation> +<translation id="7705334495398865155">Hap-drefnwch rif adnabod eich caledwedd (BSSID) i atal eraill rhag olrhain y ddyfais hon.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Mae'r wefan hon wedi'i rhwystro rhag defnyddio synwyryddion symudiad.</translation> <translation id="7707922173985738739">Defnyddio data symudol</translation> @@ -7488,6 +7509,7 @@ <translation id="7881483672146086348">Gweld y Cyfrif</translation> <translation id="7883792253546618164">Gallwch ddad-danysgrifio unrhyw bryd.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Adolygwch 1 wefan a anfonodd lawer o hysbysiadau}zero{Adolygwch {NUM_SITES} gwefan a anfonodd lawer o hysbysiadau}two{Adolygwch {NUM_SITES} gwefan a anfonodd lawer o hysbysiadau}few{Adolygwch {NUM_SITES} gwefan a anfonodd lawer o hysbysiadau}many{Adolygwch {NUM_SITES} gwefan a anfonodd lawer o hysbysiadau}other{Adolygwch {NUM_SITES} gwefan a anfonodd lawer o hysbysiadau}}</translation> +<translation id="7884446017008693258">Gosodiadau Poethfan</translation> <translation id="788453346724465748">Wrthi'n llwytho gwybodaeth cyfrif...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{eitem}zero{# eitem}two{# eitem}few{# eitem}many{# eitem}other{# eitem}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7575,6 +7597,7 @@ <translation id="7952904276017482715">Disgwylir y rhif adnabod "<ph name="EXPECTED_ID" />", ond y rhif adnabod oedd "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Mewnbynnau</translation> <translation id="7953955868932471628">Rheoli llwybrau byr</translation> +<translation id="7955105108888461311">Gofyn yn bersonol</translation> <translation id="7955177647836564772">Os caiff Smart Lock ei droi ymlaen a bod eich ffôn wedi'i ddatgloi, nid oes angen i chi roi cyfrinair na PIN</translation> <translation id="7956373551960864128">Argraffyddion rydych wedi'u cadw</translation> <translation id="7957074856830851026">Gweld gwybodaeth am y ddyfais, megis ei rhif cyfresol neu rif adnabod ased</translation> @@ -7712,6 +7735,7 @@ <ph name="BEGIN_PARAGRAPH3" />Gallwch ddiffodd y gwasanaeth hwn yn y Gosodiadau.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Tabiau</translation> <translation id="8076835018653442223">Mae mynediad at ffeiliau lleol ar eich dyfais wedi'i analluogi gan eich gweinyddwr</translation> +<translation id="8077120325605624147">Gall unrhyw wefan yr ymwelwch â hi ddangos unrhyw hysbyseb i chi</translation> <translation id="80798452873915119">Gall gwefannau ofyn i reoli ffenestri ar eich holl sgriniau</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Rheolir eich sesiwn gan <ph name="MANAGER_NAME" />. Gall gweinyddwyr ddileu eich proffil a hefyd monitro traffig eich rhwydwaith.</translation> @@ -8224,6 +8248,7 @@ <translation id="8557180006508471423">Trowch "Google Chrome" ymlaen yn y Gwasanaethau Lleoliad ar eich Mac</translation> <translation id="8557856025359704738">Mae'r lawrlwythiad nesaf am <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Codau pas</translation> +<translation id="8559961053328923750">Mae Chrome yn cyfyngu ar gyfanswm y data y gall gwefannau eu rhannu drwy'r porwr er mwyn mesur perfformiad hysbysebion</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Agor Pob Un mewn &Ffenestr Newydd}=1{Agor mewn &Ffenestr Newydd}two{Agor Pob Un ({COUNT}) mewn &Ffenestr Newydd}few{Agor Pob Un ({COUNT}) mewn &Ffenestr Newydd}many{Agor Pob Un ({COUNT}) mewn &Ffenestr Newydd}other{Agor Pob Un ({COUNT}) mewn &Ffenestr Newydd}}</translation> <translation id="8561206103590473338">Eliffant</translation> <translation id="8561565784790166472">Parhewch yn ofalus</translation> @@ -8365,6 +8390,7 @@ <translation id="8678933587484842200">Sut hoffech i'r ap hwn gael ei lansio?</translation> <translation id="8680251145628383637">Mewngofnodwch i gael eich nodau tudalen, eich hanes, eich cyfrineiriau a'ch gosodiadau eraill ar eich holl ddyfeisiau. Byddwch hefyd yn cael eich mewngofnodi'n awtomatig i'ch gwasanaethau Google.</translation> <translation id="8681614230122836773">Daeth Chrome o hyd i feddalwedd niweidiol ar eich cyfrifiadur</translation> +<translation id="8681886425883659911">Mae hysbysebion yn cael eu rhwystro ar wefannau y gwyddys eu bod yn dangos hysbysebion ymwthiol neu gamarweiniol</translation> <translation id="8682730193597992579">Mae <ph name="PRINTER_NAME" /> wedi'i gysylltu ac yn barod</translation> <translation id="8687103160920393343">Canslo <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Ar gael</translation> @@ -8739,6 +8765,7 @@ <translation id="9021662811137657072">Wedi canfod feirws</translation> <translation id="902236149563113779">Mae gwefannau fel arfer yn olrhain safle eich camera ar gyfer nodweddion AR, megis gemau neu gyfarwyddiadau ar y sgrîn</translation> <translation id="9022847679183471841">Mae'r cyfrif hwn eisoes yn cael ei ddefnyddio ar y cyfrifiadur hwn gan <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">Gall gwefannau a hysbysebwyr fesur perfformiad eu hysbysebion</translation> <translation id="9023015617655685412">Creu nod tudalen ar gyfer y tab hwn…</translation> <translation id="9023909777842748145">Nid yw diffodd y nodwedd hon yn effeithio ar allu eich dyfais i anfon y wybodaeth sydd ei hangen ar gyfer gwasanaethau hanfodol megis diweddariadau system a diogelwch.</translation> <translation id="9024127637873500333">&Agor mewn Tab Newydd</translation> @@ -8868,6 +8895,7 @@ <translation id="9128335130883257666">Agor y dudalen gosodiadau ar gyfer <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Cysylltwch â rhwydwaith</translation> <translation id="9130015405878219958">Mae modd annilys wedi'i nodi.</translation> +<translation id="9131209053278896908">Bydd gwefannau sydd wedi'u rhwystro yn ymddangos yma</translation> <translation id="9131487537093447019">Anfon negeseuon at ddyfeisiau Bluetooth a chael negeseuon ganddynt.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 nod tudalen}zero{# nod tudalen}two{# nod tudalen}few{# nod tudalen}many{# nod tudalen}other{# nod tudalen}}</translation> <translation id="9134066738478820307">Gall gwefannau ddefnyddio dynodwyr i chwarae cynnwys gwarchodedig</translation> @@ -8921,6 +8949,7 @@ <translation id="9180281769944411366">Mae'n bosib y bydd y broses hon gymryd ychydig funudau. Wrthi'n dechrau'r cynhwysydd Linux.</translation> <translation id="9180380851667544951">Gall y wefan rannu eich sgrîn</translation> <translation id="9182556968660520230">Peidio â chaniatáu i wefannau chwarae cynnwys gwarchodedig</translation> +<translation id="9183331776983279456">Mae Chrome yn dileu gwefannau yn awtomatig sy'n hŷn na 4 wythnos. Mae'n bosib y bydd gwefan y byddwch yn ymweld â hi eto yn ailymddangos ar y rhestr. Neu gallwch rwystro gwefan rhag awgrymu hysbysebion i chi.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Ap}zero{# ap}two{# ap}few{# ap}many{# ap}other{# ap}}</translation> <translation id="9186963452600581158">Mewngofnodi gyda Chyfrif Google plentyn</translation> <translation id="9187967020623675250">Nid yw'r bysellau'n cyfateb. Pwyswch unrhyw fysell i <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index df1b817..20862a5 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -556,6 +556,7 @@ <translation id="1509163368529404530">&Gendan gruppe</translation> <translation id="1509281256533087115">Få adgang til enhver <ph name="DEVICE_NAME_AND_VENDOR" /> via USB</translation> <translation id="1510238584712386396">Appliste</translation> +<translation id="1510341833810331442">Websites har ikke tilladelse til at gemme data på din enhed</translation> <translation id="1510785804673676069">Hvis du bruger en proxyserver, skal du kontrollere dine proxyindstillinger eller kontakte din netværksadminstrator for at sikre, at proxyserveren fungerer. Hvis du ikke mener, at der er grund til at anvende en @@ -774,6 +775,7 @@ <translation id="168715261339224929">Aktivér synkronisering for at se dine bogmærker på alle dine enheder.</translation> <translation id="1688867105868176567">Ville du rydde websitets data?</translation> <translation id="1688935057616748272">Skriv et bogstav</translation> +<translation id="1689333818294560261">Kaldenavn</translation> <translation id="168991973552362966">Tilføj en printer i nærheden</translation> <translation id="1689945336726856614">Kopiér &webadresse</translation> <translation id="1692115862433274081">Brug en anden konto</translation> @@ -902,6 +904,7 @@ <translation id="1802687198411089702">Siden svarer ikke. Du kan vente på den eller afslutte.</translation> <translation id="1803531841600994172">Sprog, der skal oversættes til</translation> <translation id="1803545009660609783">Genoplær</translation> +<translation id="1805545709333681504">Angiv den gamle adgangskode</translation> <translation id="1805738995123446102">En fane i baggrunden anvender din mikrofon</translation> <translation id="1805822111539868586">Se visninger</translation> <translation id="1805888043020974594">Printerserver</translation> @@ -1531,7 +1534,6 @@ <translation id="2329597144923131178">Log ind for at hente bogmærker, historik, adgangskoder og andre indstillinger på alle dine enheder.</translation> <translation id="2332115969598251205">Enheder, som er gemt på <ph name="PRIMARY_EMAIL" />, kan ikke indlæses. Tjek din internetforbindelse, og prøv igen.</translation> <translation id="2332131598580221120">Vis i Webshop</translation> -<translation id="2332192922827071008">Åbn præferencer</translation> <translation id="2332515770639153015">Udvidet beskyttet browsing er aktiveret</translation> <translation id="2332742915001411729">Nulstil til standard</translation> <translation id="2332948465534020594">Forstyr ikke er aktiveret</translation> @@ -1621,6 +1623,7 @@ <translation id="2410298923485357543">Brug en naturlig stemme, når enheden er online</translation> <translation id="2410754283952462441">Vælg en konto</translation> <translation id="241082044617551207">Ukendt plugin</translation> +<translation id="2410940059315936967">Et website, du besøger, kan indlejre indhold fra andre websites, f.eks. billeder, annoncer og tekst. Cookies, der gemmes af disse andre websites, kaldes tredjepartscookies.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2416435988630956212">Funktionstaster på tastaturet</translation> <translation id="2418307627282545839">Et lyst og luftigt udseende</translation> @@ -2170,6 +2173,7 @@ <translation id="2902312830803030883">Flere handlinger</translation> <translation id="2903457445916429186">Åbn de valgte elementer</translation> <translation id="2903882649406874750">Bloker altid <ph name="HOST" /> fra at få adgang til sensorer</translation> +<translation id="2904210161403910217">Din adgangskode er blevet ændret, siden sidste gang du loggede ind</translation> <translation id="2904845070985032877">Sæt animationer på pause</translation> <translation id="2907619724991574506">Startwebadresser</translation> <translation id="2907798539022650680">Der kunne ikke oprettes forbindelse til "<ph name="NAME" />": <ph name="DETAILS" /> @@ -2252,6 +2256,7 @@ <translation id="2979639724566107830">Åbn i nyt vindue</translation> <translation id="2981113813906970160">Vis stor musemarkør</translation> <translation id="2981293774053328982">Denne fil indeholder malware, der kan kompromittere dine personlige konti eller dine konti på sociale netværk</translation> +<translation id="2983102365694924129">Baseret på din aktivitet på et website. Denne indstilling er deaktiveret.</translation> <translation id="2983373101216420412">Batteriniveau på <ph name="PERCENTAGE" /> % for etui.</translation> <translation id="2985348301114641460">Vil du sende en anmodning om at installere "<ph name="EXTENSION_NAME" />" til din administrator?</translation> <translation id="2987620471460279764">Tekst, der er delt fra en anden enhed</translation> @@ -2313,6 +2318,7 @@ <translation id="3023464535986383522">Tekstoplæsning</translation> <translation id="3024374909719388945">Brug 24-timers ur</translation> <translation id="3027296729579831126">Aktivér Deling tæt på</translation> +<translation id="3027644380269727216">Baseret på din aktivitet på et website. Denne indstilling er aktiveret.</translation> <translation id="3029276696788198026">Ingen forudindlæsning</translation> <translation id="3029466929721441205">Vis styluspenværktøjer på hylden</translation> <translation id="3029808567601324798">Tid inden låsning</translation> @@ -2746,6 +2752,7 @@ <translation id="3458794975359644386">Delingen kunne ikke ophæves</translation> <translation id="3459509316159669723">Udskrivning</translation> <translation id="3459697287128633276">Du skal godkende hos din identitetsudbyder, før du kan give din konto adgang til Google Play Butik.</translation> +<translation id="3460458947710119567">{NUM_BOOKMARKS,plural, =1{1 bogmærke blev slettet}one{# bogmærke blev slettet}other{# bogmærker blev slettet}}</translation> <translation id="3461766685318630278">Opret og slet ekstra containere.</translation> <translation id="3462311546193741693">Logger dig ud af de fleste websites. Du forbliver logget ind på din Google-konto, så dine synkroniserede data kan ryddes.</translation> <translation id="3462413494201477527">Vil du annullere konfigurationen af kontoen?</translation> @@ -3242,6 +3249,7 @@ <translation id="3903187154317825986">Indbygget tastatur</translation> <translation id="3904326018476041253">Lokationstjenester</translation> <translation id="3905761538810670789">Reparer appen</translation> +<translation id="3908288065506437185">Bloker tredjepartscookies i inkognitotilstand</translation> <translation id="3908501907586732282">Aktivér udvidelse</translation> <translation id="3909701002594999354">Vis alle &knapper</translation> <translation id="3909791450649380159">Kli&p</translation> @@ -3533,6 +3541,7 @@ <translation id="4175737294868205930">Vedvarende lagring</translation> <translation id="4176463684765177261">Deaktiveret</translation> <translation id="4176864026061939326">Dette er en administreret enhed. En ny profil for kontoen <ph name="USER_EMAIL_ADDRESS" /> er påkrævet af din enhedsadministrator</translation> +<translation id="4177501066905053472">Annonceemner</translation> <translation id="4180788401304023883">Vil du slette CA-certifikatet "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Sprog</translation> @@ -4084,6 +4093,7 @@ <translation id="4683947955326903992"><ph name="PERCENTAGE" /> % (standard)</translation> <translation id="4684427112815847243">Synkroniser alt</translation> <translation id="4687613760714619596">Ukendt enhed (<ph name="DEVICE_ID" />)</translation> +<translation id="4687718960473379118">Foreslåede annoncer fra websites</translation> <translation id="4688036121858134881">Lokalt log-id: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4688176403504673761"><ph name="MANAGER" /> skifter til en tidligere version af denne enhed (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="4689235506267737042">Vælg dine demopræferencer</translation> @@ -4308,7 +4318,6 @@ <translation id="4893336867552636863">Denne handling sletter dine browserdata permanent fra denne enhed.</translation> <translation id="4893454800196085005">God – DVD-kvalitet</translation> <translation id="4893522937062257019">På låseskærmen</translation> -<translation id="4897496410259333978">Kontakt din administrator for at få flere oplysninger.</translation> <translation id="4898011734382862273">Certifikatet "<ph name="CERTIFICATE_NAME" />" repræsenterer et nøglecenter</translation> <translation id="4899052647152077033">Ombyt farver</translation> <translation id="4899696330053002588">Indeholder annoncer</translation> @@ -4411,6 +4420,7 @@ <translation id="4998430619171209993">Til</translation> <translation id="4999804342505941663">Aktivér Forstyr ikke</translation> <translation id="5000922062037820727">Blokeret (anbefales)</translation> +<translation id="5001526427543320409">Tredjepartscookies</translation> <translation id="5005498671520578047">Kopiér adgangskode</translation> <translation id="5006118752738286774">For 2 år siden</translation> <translation id="5006218871145547804">Adb til Android-apps i Crostini</translation> @@ -5129,6 +5139,7 @@ <translation id="5683806393796685434">Angiv din aktiveringskode</translation> <translation id="5684181005476681636">Info om Wi-Fi</translation> <translation id="5684661240348539843">Aktiv-id</translation> +<translation id="5684950556880280580">Din adgangskode er opdateret</translation> <translation id="5684969244627829799">Log ind på en brugerkonto, og prøv igen</translation> <translation id="5687326903064479980">Tidszone</translation> <translation id="5687935527303996204">Sørg for, at din enhed er tilsluttet, og undgå at slukke den. Installationen kan tage op til 20 minutter. Din enhed vil automatisk slukke, når installationen er gennemført.</translation> @@ -5170,6 +5181,7 @@ <translation id="572328651809341494">Seneste faner</translation> <translation id="5723508132121499792">Ingen apps kører i baggrunden</translation> <translation id="5723967018671998714">Tredjepartscookies er blokeret i inkognitotilstand</translation> +<translation id="5724642200346111167">Websitedata ryddes fra din enhed, når du lukker alle vinduer</translation> <translation id="5727728807527375859">Udvidelser, programmer og temaer kan beskadige din computer. Er du sikker på, at du vil fortsætte?</translation> <translation id="5728450728039149624">Indstillinger for skærmlås i Smart Lock</translation> <translation id="5729712731028706266">&Vis</translation> @@ -5185,6 +5197,7 @@ <translation id="5739017626473506901">Log ind for at hjælpe <ph name="USER_NAME" /> med at tilføje en skolekonto</translation> <translation id="5739235828260127894">Venter på bekræftelse. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Meget stor</translation> +<translation id="5740126560802162366">Websites kan gemme data på din enhed</translation> <translation id="5740328398383587084">Deling tæt på</translation> <translation id="5740709157181662145"><ph name="DEVICE_OS" />-stabilitet og -understøttelse af hardware</translation> <translation id="574104302965107104">Skærmspejling</translation> @@ -5685,6 +5698,7 @@ <translation id="6200151268994853226">Administrer udvidelse</translation> <translation id="6201608810045805374">Vil du fjerne denne konto?</translation> <translation id="6202304368170870640">Du kan bruge din pinkode til at logge ind på din enhed eller låse den op.</translation> +<translation id="6205314730813004066">Annoncer og privatliv</translation> <translation id="6206199626856438589">Du logges ud af de viste websites, også i åbne faner</translation> <translation id="6206311232642889873">Ko&pier billede</translation> <translation id="6206521455877863927">Dette omfatter websites fra det samme domæne, f.eks. google.com og mail.google.com. De websites, du besøger, kan gemme data på din enhed.</translation> @@ -5844,7 +5858,6 @@ <translation id="6347010704471250799">Vis notifikation</translation> <translation id="6349101878882523185">Installer <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptisk kurve secp256r1 (også kaldet ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentel browser (i alfakvalitet). Nogle funktioner mangler eller er ufuldstændige. Du kan rapportere problemer ved at gå til Hjælp > "Rapportér et problem...".</translation> <translation id="635609604405270300">Lad enheden være tændt</translation> <translation id="63566973648609420">Det er kun personer med din adgangssætning, der kan læse dine krypterede data. Adgangssætningen sendes ikke til og gemmes ikke af Google. Hvis du glemmer din adgangssætning eller vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" /> eller <ph name="APP_NAME_2" />.</translation> @@ -6306,6 +6319,7 @@ <translation id="6787839852456839824">Tastaturgenveje</translation> <translation id="6788210894632713004">Upakket udvidelse</translation> <translation id="6789592661892473991">Opdel vandret</translation> +<translation id="6789834167207639931">Angiv adgangskoden til din Google-konto igen på næste skærm for at gennemføre gendannelsen</translation> <translation id="6790428901817661496">Afspil</translation> <translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> blev tilføjet eksternt</translation> <translation id="6790820461102226165">Tilføj person...</translation> @@ -6955,6 +6969,7 @@ <translation id="7387273928653486359">Acceptabel</translation> <translation id="7387951778417998929">Hvis du vil bruge en søgemaskine, der ikke er din standardsøgemaskine, skal du angive genvejen til den i adresselinjen efterfulgt af din foretrukne tastaturgenvej. Du kan også ændre din standardsøgemaskine her.</translation> <translation id="7388209873137778229">Der vises kun understøttede enheder.</translation> +<translation id="7388615499319468910">Websites og annoncører kan få indblik i, hvordan annoncer klarer sig. Denne indstilling er deaktiveret.</translation> <translation id="7392118418926456391">Virusscanningen mislykkedes</translation> <translation id="7392915005464253525">G&enåbn lukkede faner</translation> <translation id="7393073300870882456">{COUNT,plural, =1{1 element blev kopieret}one{{COUNT} element blev kopieret}other{{COUNT} elementer blev kopieret}}</translation> @@ -7012,7 +7027,6 @@ <translation id="7434757724413878233">Acceleration af mus</translation> <translation id="7434969625063495310">Der kunne ikke tilføjes en printerserver. Tjek serverens konfiguration, og prøv igen.</translation> <translation id="7436921188514130341">Øv, surt! Der opstod en fejl under omdøbningen.</translation> -<translation id="7438495332316988804">Du finder standardbrowseren ved at skrive "Chrome" i Appliste.</translation> <translation id="7439519621174723623">Tilføj en enhed for at fortsætte</translation> <translation id="7441736921018636843">Hvis du vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkronisering<ph name="END_LINK" /> for at fjerne din adgangssætning for synkronisering</translation> <translation id="7441830548568730290">Andre brugere</translation> @@ -7031,6 +7045,7 @@ <translation id="7453467225369441013">Logger dig ud af de fleste websites. Du bliver ikke logget ud af din Google-konto.</translation> <translation id="7454548535253569100">Portal: <ph name="SUBFRAME_SITE" /></translation> <translation id="7455730275746867420">Administrer ekstra containere</translation> +<translation id="7455988709578031708">Baseret på din browserhistorik. Denne indstilling er aktiveret.</translation> <translation id="7456142309650173560">dev</translation> <translation id="7456774706094330779">Udvidet forudindlæsning</translation> <translation id="7456847797759667638">Åbn placering...</translation> @@ -7592,6 +7607,7 @@ <translation id="7952904276017482715">Det forventede id var "<ph name="EXPECTED_ID" />", men id'et viste sig at være "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Indtastningsmetoder</translation> <translation id="7953955868932471628">Administrer genveje</translation> +<translation id="7955105108888461311">Spørg ansigt til ansigt</translation> <translation id="7955177647836564772">Hvis Smart Lock er aktiveret, og din telefon er låst op, behøver du ikke at angive en adgangskode eller pinkode</translation> <translation id="7956373551960864128">Dine gemte printere</translation> <translation id="7957074856830851026">Se enhedsoplysninger som f.eks. serienummer eller aktiv-id</translation> @@ -8502,7 +8518,7 @@ <translation id="8786824282808281903">Når dit barn ser dette ikon, kan fingeraftrykket bruges til at identificere barnet eller godkende køb.</translation> <translation id="8787575090331305835">{NUM_TABS,plural, =1{Unavngivet gruppe – 1 fane}one{Unavngivet gruppe – # fane}other{Unavngivet gruppe – # faner}}</translation> <translation id="8791157330927639737">Få flere oplysninger om opdatering</translation> -<translation id="8791534160414513928">Send en anmodning om "Do Not Track" sammen med din browsertrafik</translation> +<translation id="8791534160414513928">Send en "Do Not Track"-anmodning sammen med din browsertrafik</translation> <translation id="879413103056696865">Mens hotspottet er aktivt, vil din <ph name="PHONE_NAME" />:</translation> <translation id="8795916974678578410">Nyt vindue</translation> <translation id="8797459392481275117">Oversæt aldrig dette website</translation> @@ -8848,11 +8864,14 @@ <translation id="9094859731829297286">Er du sikker på, at du vil reservere en disk med fast størrelse til Linux?</translation> <translation id="9094982973264386462">Fjern</translation> <translation id="9095253524804455615">Fjern</translation> +<translation id="9095364055741191097">De lokale data kunne ikke gendannes</translation> <translation id="909554839118732438">Luk inkognitovinduer</translation> +<translation id="9099220545925418560">Baseret på din browserhistorik. Denne indstilling er deaktiveret.</translation> <translation id="9100416672768993722">Du kan skifte til den seneste anvendte indtastningsmetode ved at trykke på <ph name="BEGIN_SHORTCUT" /><ph name="BEGIN_CTRL" />Ctrl<ph name="END_CTRL" /><ph name="SEPARATOR" /><ph name="BEGIN_SPACE" />mellemrum<ph name="END_SPACE" /><ph name="END_SHORTCUT" /></translation> <translation id="9100765901046053179">Avancerede indstillinger</translation> <translation id="9101691533782776290">Åbn appen</translation> <translation id="9102610709270966160">Aktivér udvidelse</translation> +<translation id="9102864637938129124">Websites og annoncører kan få indblik i, hvordan annoncer klarer sig. Denne indstilling er aktiveret.</translation> <translation id="9103479157856427471">Den tekst, der zoomes ind på, følger indtastningen på tastaturet</translation> <translation id="9103868373786083162">Tryk for at gå tilbage til genvejsmenuen for at se historik</translation> <translation id="9108035152087032312">Navngiv vindue...</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index d208f64..d5b70bf 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -763,6 +763,7 @@ <translation id="168715261339224929">Aktiviere die Synchronisierung, um deine Lesezeichen auf allen deinen Geräten zu sehen.</translation> <translation id="1688867105868176567">Websitedaten löschen?</translation> <translation id="1688935057616748272">Gib einen Buchstaben ein</translation> +<translation id="1689333818294560261">Alias</translation> <translation id="168991973552362966">Drucker in der Nähe hinzufügen</translation> <translation id="1689945336726856614">&URL kopieren</translation> <translation id="1692115862433274081">Anderes Konto verwenden</translation> @@ -1507,7 +1508,6 @@ <translation id="2329597144923131178">Melde dich an, um deine Lesezeichen, den Verlauf, deine Passwörter und andere Einstellungen auf allen deinen Geräten aufzurufen.</translation> <translation id="2332115969598251205">Geräte, die in <ph name="PRIMARY_EMAIL" /> gespeichert sind, können nicht geladen werden. Prüfe die Internetverbindung und versuche es noch einmal.</translation> <translation id="2332131598580221120">Im Store ansehen</translation> -<translation id="2332192922827071008">Einstellungen öffnen</translation> <translation id="2332515770639153015">Erweitertes Safe Browsing ist aktiviert</translation> <translation id="2332742915001411729">Auf Standardeinstellungen zurücksetzen</translation> <translation id="2332948465534020594">„Bitte nicht stören“ aktiviert</translation> @@ -4275,7 +4275,6 @@ <translation id="4893336867552636863">Dadurch werden die Browserdaten dauerhaft von diesem Gerät gelöscht.</translation> <translation id="4893454800196085005">Gut – DVD</translation> <translation id="4893522937062257019">Auf dem Sperrbildschirm</translation> -<translation id="4897496410259333978">Wenn du weitere Informationen brauchst, wende dich an deinen Administrator.</translation> <translation id="4898011734382862273">Das Zertifikat "<ph name="CERTIFICATE_NAME" />" repräsentiert eine Zertifizierungsstelle</translation> <translation id="4899052647152077033">Farben umkehren</translation> <translation id="4899696330053002588">Enthält Werbung</translation> @@ -5806,7 +5805,6 @@ <translation id="6347010704471250799">Benachrichtigung einblenden</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> installieren</translation> <translation id="6354918092619878358">Elliptische SECG-Kurve secp256r1 (ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Dies ist ein experimenteller Browser (Alpha). Einige Funktionen sind möglicherweise nicht verfügbar oder unvollständig. Melde Probleme über „Hilfe“ > „Problem melden…“.</translation> <translation id="635609604405270300">Gerät eingeschaltet lassen</translation> <translation id="63566973648609420">Nur Personen mit deiner Passphrase können deine verschlüsselten Daten lesen. Die Passphrase wird nicht an Google gesendet oder von Google gespeichert. Falls du sie vergessen hast oder diese Einstellung ändern möchtest, musst du die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" /> oder <ph name="APP_NAME_2" /> geöffnet.</translation> @@ -6965,7 +6963,6 @@ <translation id="7434757724413878233">Mausbeschleunigung</translation> <translation id="7434969625063495310">Der Druckserver konnte nicht hinzugefügt werden. Prüfe die Konfiguration des Servers und versuche es noch einmal.</translation> <translation id="7436921188514130341">Oh nein! Beim Umbenennen ist ein Fehler aufgetreten.</translation> -<translation id="7438495332316988804">Zum Standardbrowser gelangst du, indem du „Chrome“ in den Launcher eingibst.</translation> <translation id="7439519621174723623">Gib einen Gerätenamen ein, um fortzufahren</translation> <translation id="7441736921018636843">Wenn du diese Einstellung ändern möchtest, musst du die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />, um die Synchronisierungspassphrase zu entfernen</translation> <translation id="7441830548568730290">Andere Nutzer</translation> @@ -7543,6 +7540,7 @@ <translation id="7952904276017482715">Erwartete ID: "<ph name="EXPECTED_ID" />", tatsächliche ID: "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Eingaben</translation> <translation id="7953955868932471628">Verknüpfungen verwalten</translation> +<translation id="7955105108888461311">Persönlich fragen</translation> <translation id="7955177647836564772">Wenn Smart Lock aktiviert ist und dein Smartphone entsperrt ist, musst du weder ein Passwort noch eine PIN eingeben</translation> <translation id="7956373551960864128">Deine gespeicherten Drucker</translation> <translation id="7957074856830851026">Geräteinformationen wie Seriennummer oder Asset-ID abrufen</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 9997b5a..1ea5e339 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -773,6 +773,7 @@ <translation id="168715261339224929">Για να εμφανίζονται οι σελιδοδείκτες σας σε όλες τις συσκευές σας, ενεργοποιήστε τον συγχρονισμό.</translation> <translation id="1688867105868176567">Να διαγραφούν τα δεδομένα ιστοτόπου;</translation> <translation id="1688935057616748272">Πληκτρολογήστε ένα γράμμα</translation> +<translation id="1689333818294560261">Ψευδώνυμο</translation> <translation id="168991973552362966">Προσθήκη εκτυπωτή που βρίσκεται σε κοντινή απόσταση</translation> <translation id="1689945336726856614">Αντιγραφή &URL</translation> <translation id="1692115862433274081">Χρήση διαφορετικού λογαριασμού</translation> @@ -1530,7 +1531,6 @@ <translation id="2329597144923131178">Συνδεθείτε για χρήση σελιδοδεικτών, ιστορικού, κωδ.πρόσβ. κ.λπ. σε όλες τις συσκευές.</translation> <translation id="2332115969598251205">Δεν είναι δυνατή η φόρτωση συσκευών που έχουν αποθηκευτεί στη διεύθυνση <ph name="PRIMARY_EMAIL" />. Ελέγξτε τη σύνδεσή σας στο διαδίκτυο και δοκιμάστε ξανά.</translation> <translation id="2332131598580221120">Προβολή στο Web Store</translation> -<translation id="2332192922827071008">Άνοιγμα προτιμήσεων</translation> <translation id="2332515770639153015">Η Βελτιωμένη Ασφαλής περιήγηση είναι ενεργή</translation> <translation id="2332742915001411729">Επαναφορά προεπιλογής</translation> <translation id="2332948465534020594">Η λειτουργία Μην ενοχλείτε ενεργοποιήθηκε</translation> @@ -4300,7 +4300,6 @@ <translation id="4893336867552636863">Με αυτήν την ενέργεια θα διαγραφούν οριστικά τα δεδομένα περιήγησής σας από αυτή τη συσκευή.</translation> <translation id="4893454800196085005">Καλή - DVD</translation> <translation id="4893522937062257019">Στην οθόνη κλειδώματος</translation> -<translation id="4897496410259333978">Για περισσότερες πληροφορίες, επικοινωνήστε με τον διαχειριστή σας.</translation> <translation id="4898011734382862273">Το πιστοποιητικό "<ph name="CERTIFICATE_NAME" />" αντιπροσωπεύει μια Αρχή Πιστοποίησης</translation> <translation id="4899052647152077033">Αντιστροφή χρωμάτων</translation> <translation id="4899696330053002588">Περιέχει διαφημίσεις</translation> @@ -5835,7 +5834,6 @@ <translation id="6347010704471250799">Εμφάνιση ειδοποίησης</translation> <translation id="6349101878882523185">Εγκατάσταση εφαρμογής <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Ελλειπτική καμπύλη SECG secp256r1 (επίσης γνωστή ως ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Πειραματικό πρόγραμμα περιήγησης (ποιότητα alpha)! Ορισμένες λειτουργίες λείπουν ή δεν είναι ολοκληρωμένες. Αναφέρετε τυχόν προβλήματα στην ενότητα: Βοήθεια > Αναφορά προβλήματος…</translation> <translation id="635609604405270300">Κρατήστε τη συσκευή ενεργοποιημένη</translation> <translation id="63566973648609420">Μόνο κάποιος που γνωρίζει τη φράση πρόσβασης μπορεί να διαβάσει τα κρυπτογραφημένα δεδομένα σας. Η φράση πρόσβασης δεν αποστέλλεται ούτε αποθηκεύεται στην Google. Εάν ξεχάσετε τη φράση πρόσβασης ή θέλετε να αλλάξετε αυτήν τη ρύθμιση, θα πρέπει να <ph name="BEGIN_LINK" />επαναφέρετε τον συγχρονισμό<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Ορισμένοι υποστηριζόμενοι σύνδεσμοι θα εξακολουθούν να ανοίγουν στην εφαρμογή <ph name="APP_NAME" /> ή την εφαρμογή <ph name="APP_NAME_2" />.</translation> @@ -6994,7 +6992,6 @@ <translation id="7434757724413878233">Επιτάχυνση ποντικιού</translation> <translation id="7434969625063495310">Δεν ήταν δυνατή η προσθήκη του διακομιστή εκτύπωσης. Ελέγξτε τη διαμόρφωση του διακομιστή και δοκιμάστε ξανά.</translation> <translation id="7436921188514130341">Δυστυχώς, παρουσιάστηκε σφάλμα κατά τη μετονομασία.</translation> -<translation id="7438495332316988804">Μπορείτε να βρείτε το βασικό πρόγραμμα περιήγησης πληκτρολογώντας "Chrome" στην Εφαρμογή εκκίνησης.</translation> <translation id="7439519621174723623">Προσθέστε ένα όνομα συσκευής για να συνεχίσετε</translation> <translation id="7441736921018636843">Για να αλλάξετε αυτήν τη ρύθμιση, <ph name="BEGIN_LINK" />κάντε επαναφορά στον συγχρονισμό<ph name="END_LINK" />, έτσι ώστε να καταργηθεί η φράση πρόσβασης συγχρονισμού</translation> <translation id="7441830548568730290">Άλλοι χρήστες</translation> @@ -7572,6 +7569,7 @@ <translation id="7952904276017482715">Αναμενόταν το αναγνωριστικό "<ph name="EXPECTED_ID" />", ωστόσο το αναγνωριστικό ήταν το "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Μέθοδοι εισαγωγής</translation> <translation id="7953955868932471628">Διαχείριση συντομεύσεων</translation> +<translation id="7955105108888461311">Ερώτηση αυτοπροσώπως</translation> <translation id="7955177647836564772">Εάν το Smart Lock είναι ενεργοποιημένο και το τηλέφωνό σας είναι ξεκλείδωτο, δεν χρειάζεται να εισαγάγετε κωδικό πρόσβασης ή PIN</translation> <translation id="7956373551960864128">Οι αποθηκευμένοι εκτυπωτές σας</translation> <translation id="7957074856830851026">Προβολή πληροφοριών συσκευής, όπως του σειριακού αριθμού ή του αναγνωριστικού στοιχείου</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 8834e1124..8cb6f3a 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -780,6 +780,7 @@ <translation id="168715261339224929">To get your bookmarks on all your devices, turn on sync.</translation> <translation id="1688867105868176567">Clear site data?</translation> <translation id="1688935057616748272">Type a letter</translation> +<translation id="1689333818294560261">Nickname</translation> <translation id="168991973552362966">Add a nearby printer</translation> <translation id="1689945336726856614">Copy &URL</translation> <translation id="1692115862433274081">Use another account</translation> @@ -1540,7 +1541,6 @@ <translation id="2329597144923131178">Sign in to get your bookmarks, history, passwords and other settings on all your devices</translation> <translation id="2332115969598251205">Can’t load devices saved to <ph name="PRIMARY_EMAIL" />. Check your Internet connection and try again.</translation> <translation id="2332131598580221120">View in store</translation> -<translation id="2332192922827071008">Open preferences</translation> <translation id="2332515770639153015">Enhanced Safe Browsing is on</translation> <translation id="2332742915001411729">Reset to default</translation> <translation id="2332948465534020594">Do Not Disturb enabled</translation> @@ -4331,7 +4331,6 @@ <translation id="4893336867552636863">This will permanently delete your browsing data from this device.</translation> <translation id="4893454800196085005">Good – DVD</translation> <translation id="4893522937062257019">On the lock screen</translation> -<translation id="4897496410259333978">For more information, contact your administrator.</translation> <translation id="4898011734382862273">The certificate '<ph name="CERTIFICATE_NAME" />' represents a Certification Authority</translation> <translation id="4899052647152077033">Invert colours</translation> <translation id="4899696330053002588">Contains ads</translation> @@ -5874,7 +5873,6 @@ <translation id="6347010704471250799">Show notification</translation> <translation id="6349101878882523185">Install <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Experimental (alpha-quality) browser! Some features are missing or incomplete. Report issues with: Help > ‘Report an issue…’</translation> <translation id="635609604405270300">Keep device turned on</translation> <translation id="63566973648609420">Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase or want to change this setting, you'll need to <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Some supported links will still open in <ph name="APP_NAME" /> or <ph name="APP_NAME_2" />.</translation> @@ -7044,7 +7042,6 @@ <translation id="7434757724413878233">Mouse acceleration</translation> <translation id="7434969625063495310">Couldn't add the print server. Please check the server's configuration and try again.</translation> <translation id="7436921188514130341">Oh no! There was an error during renaming.</translation> -<translation id="7438495332316988804">The standard browser can be found by typing 'Chrome' into Launcher.</translation> <translation id="7439519621174723623">Add a device name to continue</translation> <translation id="7441736921018636843">To change this setting, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" /> to remove your sync passphrase</translation> <translation id="7441830548568730290">Other users</translation> @@ -7628,6 +7625,7 @@ <translation id="7952904276017482715">Expected ID '<ph name="EXPECTED_ID" />', but ID was '<ph name="NEW_ID" />'</translation> <translation id="7953669802889559161">Inputs</translation> <translation id="7953955868932471628">Manage shortcuts</translation> +<translation id="7955105108888461311">Ask in person</translation> <translation id="7955177647836564772">If Smart Lock is turned on and your phone is unlocked, you don't need to enter a password or PIN</translation> <translation id="7956373551960864128">Your saved printers</translation> <translation id="7957074856830851026">See device information, such as its serial number or asset ID</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 428cbf4..949091e 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -763,6 +763,7 @@ <translation id="168715261339224929">Activa la sincronización para que tus favoritos estén en todos tus dispositivos.</translation> <translation id="1688867105868176567">¿Quieres borrar los datos del sitio?</translation> <translation id="1688935057616748272">Escribe una letra</translation> +<translation id="1689333818294560261">Sobrenombre</translation> <translation id="168991973552362966">Agregar una impresora cercana</translation> <translation id="1689945336726856614">Copiar &URL</translation> <translation id="1692115862433274081">Usar otra cuenta</translation> @@ -1507,7 +1508,6 @@ <translation id="2329597144923131178">Accede a tu cuenta para ver los favoritos, el historial, las contraseñas y otras opciones de configuración en todos los dispositivos.</translation> <translation id="2332115969598251205">No se pueden cargar los dispositivos guardados en <ph name="PRIMARY_EMAIL" />. Revisa tu conexión a Internet y vuelve a intentarlo.</translation> <translation id="2332131598580221120">Ver en Chrome Web Store</translation> -<translation id="2332192922827071008">Abrir preferencias</translation> <translation id="2332515770639153015">Se activó la Navegación segura mejorada</translation> <translation id="2332742915001411729">Restablecer configuración de zoom predeterminada</translation> <translation id="2332948465534020594">Se habilitó No interrumpir</translation> @@ -4275,7 +4275,6 @@ <translation id="4893336867552636863">Esta acción borrará permanentemente los datos de navegación de este dispositivo.</translation> <translation id="4893454800196085005">Buena (DVD)</translation> <translation id="4893522937062257019">En la pantalla bloqueada</translation> -<translation id="4897496410259333978">Para obtener más información, comunícate con tu administrador.</translation> <translation id="4898011734382862273">El certificado "<ph name="CERTIFICATE_NAME" />" representa a una entidad de certificación</translation> <translation id="4899052647152077033">Invertir colores</translation> <translation id="4899696330053002588">Contiene anuncios</translation> @@ -5809,7 +5808,6 @@ <translation id="6347010704471250799">Mostrar notificación</translation> <translation id="6349101878882523185">Instalar <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Curva elíptica SECG elliptic secp256r1 (también conocido como ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Este navegador es experimental (calidad alfa). Faltan algunas funciones o están incompletas. Para informar problemas, usa la opción Ayuda > "Informar un problema…".</translation> <translation id="635609604405270300">No apagues el dispositivo</translation> <translation id="63566973648609420">Solo las personas que tengan tu frase de contraseña pueden leer los datos encriptados. Google no envía ni almacena la frase de contraseña. Si la olvidas o quieres cambiar esta configuración, deberás <ph name="BEGIN_LINK" />restablecer la sincronización<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation> @@ -6968,7 +6966,6 @@ <translation id="7434757724413878233">Aceleración del mouse</translation> <translation id="7434969625063495310">No se pudo agregar el servidor de impresión. Revisa la configuración del servidor y vuelve a intentarlo.</translation> <translation id="7436921188514130341">Se produjo un error al cambiar el nombre.</translation> -<translation id="7438495332316988804">Para encontrar el navegador predeterminado, escribe "Chrome" en el Selector.</translation> <translation id="7439519621174723623">Agregar un nombre de dispositivo para continuar</translation> <translation id="7441736921018636843">A fin de cambiar esta configuración, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para quitar la frase de contraseña de sincronización</translation> <translation id="7441830548568730290">Otros usuarios</translation> @@ -7546,6 +7543,7 @@ <translation id="7952904276017482715">Se esperaba un ID "<ph name="EXPECTED_ID" />", pero el ID fue "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Entradas</translation> <translation id="7953955868932471628">Administrar accesos directos</translation> +<translation id="7955105108888461311">Preguntar en persona</translation> <translation id="7955177647836564772">Si la función Smart Lock está activada y tu teléfono está desbloqueado, no tendrás que ingresar un PIN ni una contraseña.</translation> <translation id="7956373551960864128">Tus impresoras guardadas</translation> <translation id="7957074856830851026">Ver información del dispositivo, como el número de serie o la ID del activo</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 754d0d9..c11a235 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -766,6 +766,7 @@ <translation id="168715261339224929">Activa la sincronización para ver tus marcadores en todos tus dispositivos.</translation> <translation id="1688867105868176567">¿Borrar datos del sitio web?</translation> <translation id="1688935057616748272">Escribe una letra</translation> +<translation id="1689333818294560261">Apodo</translation> <translation id="168991973552362966">Añadir una impresora cercana</translation> <translation id="1689945336726856614">Copiar &URL</translation> <translation id="1692115862433274081">Usar otra cuenta</translation> @@ -1511,7 +1512,6 @@ <translation id="2329597144923131178">Accede para ver marcadores, historial, contraseñas y otros en dispos.</translation> <translation id="2332115969598251205">No se pueden cargar los dispositivos guardados en <ph name="PRIMARY_EMAIL" />. Comprueba tu conexión a Internet e inténtalo de nuevo.</translation> <translation id="2332131598580221120">Ver en Chrome Web Store</translation> -<translation id="2332192922827071008">Abrir las preferencias</translation> <translation id="2332515770639153015">Navegación segura mejorada está activada</translation> <translation id="2332742915001411729">Restablecer predeterminado</translation> <translation id="2332948465534020594">No molestar habilitado</translation> @@ -1894,7 +1894,7 @@ <translation id="2687407218262674387">Términos del Servicio de Google</translation> <translation id="2687621393791886981">Preguntarme más tarde</translation> <translation id="2688196195245426394">Error al registrar el dispositivo en el servidor (<ph name="CLIENT_ERROR" />)</translation> -<translation id="2688734475209947648">No tendrás que recordar esta contraseña. Se guardará en el gestor de contraseñas de Google de <ph name="ACCOUNT" />.</translation> +<translation id="2688734475209947648">No tendrás que recordar esta contraseña. Se guardará en el Gestor de contraseñas de Google de <ph name="ACCOUNT" />.</translation> <translation id="2690024944919328218">Mostrar opciones de idioma</translation> <translation id="2691385045260836588">Modelo</translation> <translation id="2691440343905273290">Cambiar configuración de introducción de texto</translation> @@ -2661,7 +2661,7 @@ <translation id="3406605057700382950">&Mostrar barra de marcadores</translation> <translation id="3407392651057365886">Se precargan más páginas. Es posible que las páginas se precarguen a través de los servidores de Google cuando lo soliciten otros sitios.</translation> <translation id="3407967630066378878">Para configurar la huella digital, pídele a tu hijo/a que toque el sensor de huellas digitales, que está en el lado izquierdo de este <ph name="DEVICE_TYPE" />. Los datos de la huella digital de tu hijo/a se almacenan de forma segura y nunca salen de este <ph name="DEVICE_TYPE" />.</translation> -<translation id="3408849592677950451">{NUM_PASSWORDS,plural, =1{1 contraseña importada al gestor de contraseñas de Google para <ph name="USER_EMAIL" />}other{{NUM_PASSWORDS} contraseñas importadas al gestor de contraseñas de Google para <ph name="USER_EMAIL" />}}</translation> +<translation id="3408849592677950451">{NUM_PASSWORDS,plural, =1{1 contraseña importada al Gestor de contraseñas de Google para <ph name="USER_EMAIL" />}other{{NUM_PASSWORDS} contraseñas importadas al Gestor de contraseñas de Google para <ph name="USER_EMAIL" />}}</translation> <translation id="3409785640040772790">Maps</translation> <translation id="3412265149091626468">Ir a la selección</translation> <translation id="3413122095806433232">Entidades emisoras de certificados: <ph name="LOCATION" /></translation> @@ -3144,7 +3144,7 @@ <translation id="383669374481694771">Esta página muestra información general sobre este dispositivo y su uso (como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores). Sirve para mejorar Android, y parte de los datos recogidos también mejoran las aplicaciones y ayudan a los partners de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.</translation> <translation id="3838085852053358637">No se ha podido cargar la extensión</translation> <translation id="3838486795898716504">Más <ph name="PAGE_TITLE" /></translation> -<translation id="3838487810283346084">Añade contraseñas guardadas al gestor de contraseñas de Google</translation> +<translation id="3838487810283346084">Añade contraseñas guardadas al Gestor de contraseñas de Google</translation> <translation id="383891835335927981">No se ha ampliado ni reducido ningún sitio web</translation> <translation id="3839509547554145593">Habilitar aceleración de desplazamiento del ratón</translation> <translation id="3839516600093027468">No permitir nunca que <ph name="HOST" /> vea el portapapeles</translation> @@ -3888,7 +3888,7 @@ <translation id="4541123282641193691">No se ha podido verificar tu cuenta. Vuelve a intentarlo o reinicia el Chromebook.</translation> <translation id="4541662893742891060">No se ha podido conectar a este perfil. Para obtener asistencia técnica, ponte en contacto con tu operador.</translation> <translation id="4541706525461326392">Quitando perfil. Este proceso puede durar unos minutos.</translation> -<translation id="4542332958571335077">{NUM_PASSWORDS,plural, =1{1 contraseña importada al gestor de contraseñas de Google en este dispositivo}other{{NUM_PASSWORDS} contraseñas importadas al gestor de contraseñas de Google en este dispositivo}}</translation> +<translation id="4542332958571335077">{NUM_PASSWORDS,plural, =1{1 contraseña importada al Gestor de contraseñas de Google en este dispositivo}other{{NUM_PASSWORDS} contraseñas importadas al Gestor de contraseñas de Google en este dispositivo}}</translation> <translation id="4542520061254486227">Leer tus datos en <ph name="WEBSITE_1" /> y en <ph name="WEBSITE_2" /></translation> <translation id="4543778593405494224">Administrador de certificados</translation> <translation id="4544174279960331769">Avatar azul predeterminado</translation> @@ -3935,7 +3935,7 @@ <translation id="4579453506923101210">Olvidar teléfono conectado</translation> <translation id="4579581181964204535">No se puede enviar <ph name="HOST_NAME" />.</translation> <translation id="4579876313423027742">Para activar las notificaciones del navegador, ve a <ph name="LINK_BEGIN" />configuración del navegador Chrome<ph name="LINK_END" /></translation> -<translation id="4580587929153007251">Vuelve a iniciar sesión en el gestor de contraseñas de Google</translation> +<translation id="4580587929153007251">Vuelve a iniciar sesión en el Gestor de contraseñas de Google</translation> <translation id="4580596421317071374">Las contraseñas se guardan en el <ph name="GOOGLE_PASSWORD_MANAGER" /> de este dispositivo.</translation> <translation id="4581774856936278355">Error al restaurar Linux</translation> <translation id="4582297591746054421">Los sitios suelen leer el contenido del portapapeles para utilizarlo en funciones como conservar el formato del texto que se ha copiado.</translation> @@ -4278,7 +4278,6 @@ <translation id="4893336867552636863">Se eliminarán de forma permanente los datos de navegación del dispositivo.</translation> <translation id="4893454800196085005">Buena - DVD</translation> <translation id="4893522937062257019">En la pantalla de bloqueo</translation> -<translation id="4897496410259333978">Ponte en contacto con el administrador para obtener más información.</translation> <translation id="4898011734382862273">El certificado "<ph name="CERTIFICATE_NAME" />" representa a una entidad emisora de certificados</translation> <translation id="4899052647152077033">Invertir colores</translation> <translation id="4899696330053002588">Contiene anuncios</translation> @@ -4561,7 +4560,7 @@ <translation id="5177549709747445269">Estás utilizando datos móviles</translation> <translation id="5178667623289523808">Buscar anterior</translation> <translation id="5181140330217080051">Descargando</translation> -<translation id="5181172023548002891">En el gestor de contraseñas de Google de <ph name="ACCOUNT" /></translation> +<translation id="5181172023548002891">En el Gestor de contraseñas de Google de <ph name="ACCOUNT" /></translation> <translation id="5184063094292164363">&Consola JavaScript</translation> <translation id="5184209580557088469">Ya existe un ticket con este nombre de usuario</translation> <translation id="5184662919967270437">Actualizando el dispositivo</translation> @@ -4701,7 +4700,7 @@ <translation id="5305145881844743843"><ph name="BEGIN_LINK" /><ph name="DOMAIN" /><ph name="END_LINK" /> gestiona esta cuenta</translation> <translation id="5307030433605830021">Fuente no admitida</translation> <translation id="5307386115243749078">Emparejar interruptor Bluetooth</translation> -<translation id="5307958609248661362">Se ha agotado el tiempo de espera del gestor de contraseñas de Google</translation> +<translation id="5307958609248661362">Se ha agotado el tiempo de espera del Gestor de contraseñas de Google</translation> <translation id="5308380583665731573">Conectar</translation> <translation id="5309418307557605830">El Asistente de Google también trabaja aquí</translation> <translation id="5311304534597152726">Iniciando sesión como</translation> @@ -5657,7 +5656,7 @@ <translation id="6206311232642889873">Copia&r imagen</translation> <translation id="6206521455877863927">Se incluyen sitios del mismo dominio, como google.com y mail.google.com. Los sitios que estás viendo pueden guardar datos en tu dispositivo.</translation> <translation id="6207200176136643843">Restablecer el nivel de zoom predeterminado</translation> -<translation id="6207806976844244951">Guardar en el gestor de contraseñas de Google (<ph name="EMAIL" />)</translation> +<translation id="6207806976844244951">Guardar en el Gestor de contraseñas de Google (<ph name="EMAIL" />)</translation> <translation id="6207937957461833379">País o región</translation> <translation id="6208521041562685716">Se están activando los datos móviles</translation> <translation id="6208725777148613371">No se ha podido guardar en <ph name="WEB_DRIVE" />. <ph name="INTERRUPT_REASON" />.</translation> @@ -5812,7 +5811,6 @@ <translation id="6347010704471250799">Mostrar notificación</translation> <translation id="6349101878882523185">Instalar <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Curva elíptica SECG secp256r1 (también denominada ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Navegador en fase experimental con la calidad de una versión alfa. Es posible que algunas funciones no estén disponibles o estén incompletas. Para informar de cualquier problema, ve a Ayuda > Notificar un problema.</translation> <translation id="635609604405270300">No apagues el dispositivo</translation> <translation id="63566973648609420">Solo alguien que tenga tu frase de contraseña puede leer tus datos cifrados. Google no envía ni almacena la frase de contraseña. Si la olvidas o quieres cambiar estos ajustes, deberás <ph name="BEGIN_LINK" />restablecer la sincronización<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation> @@ -5985,11 +5983,11 @@ <ph name="FILE_INFO" /> <ph name="EVENT_NAME" /></translation> <translation id="6519689855001245063">Comprobando si cumple los requisitos</translation> -<translation id="6520087076882753524">Puedes consultar y gestionar las contraseñas guardadas en el gestor de contraseñas de Google</translation> +<translation id="6520087076882753524">Puedes consultar y gestionar las contraseñas guardadas en el Gestor de contraseñas de Google</translation> <translation id="6520876759015997832">Resultado de búsqueda <ph name="LIST_POSITION" /> de <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Pulsa Intro para ir a esa sección.</translation> <translation id="6521214596282732365">Los sitios suelen usar tus fuentes para que puedas crear contenido de alta fidelidad con herramientas de diseño y gráficos online</translation> <translation id="6523303810310758032">Si eliminas tu historial de navegación (entero o de un sitio en concreto), también eliminarás la información de medición asociada. Consulta <ph name="BEGIN_LINK" />tu historial de navegación<ph name="END_LINK" />.</translation> -<translation id="6523574494641144162">El gestor de contraseñas de Google no ha podido guardar estas contraseñas en tu cuenta de Google. Puedes guardarlas en este dispositivo.</translation> +<translation id="6523574494641144162">El Gestor de contraseñas de Google no ha podido guardar estas contraseñas en tu cuenta de Google. Puedes guardarlas en este dispositivo.</translation> <translation id="6524735478670290456">Cómo usamos estos datos:</translation> <translation id="652492607360843641">Estás conectado a una red <ph name="NETWORK_TYPE" />.</translation> <translation id="6527303717912515753">Compartir</translation> @@ -6071,9 +6069,9 @@ <translation id="6595187330192059106">Impedir siempre que <ph name="HOST" /> tenga un control total de los dispositivos MIDI.</translation> <translation id="6595408197871512625">{COUNT,plural, =1{Contraseña vulnerada cambiada correctamente. -Tienes # contraseña vulnerada más. El gestor de contraseñas de Google te recomienda que compruebes esa contraseña ahora.}other{Contraseña vulnerada cambiada correctamente. +Tienes # contraseña vulnerada más. El Gestor de contraseñas de Google te recomienda que compruebes esa contraseña ahora.}other{Contraseña vulnerada cambiada correctamente. -Tienes # contraseñas vulneradas más. El gestor de contraseñas de Google te recomienda que compruebes esas contraseñas ahora.}}</translation> +Tienes # contraseñas vulneradas más. El Gestor de contraseñas de Google te recomienda que compruebes esas contraseñas ahora.}}</translation> <translation id="6596325263575161958">Opciones de cifrado</translation> <translation id="6596816719288285829">Dirección IP</translation> <translation id="6597017209724497268">Ejemplos</translation> @@ -6414,7 +6412,7 @@ <translation id="6903907808598579934">Activar sincronización</translation> <translation id="6904344821472985372">Revocar acceso a archivo</translation> <translation id="6904655473976120856">Pulsa el botón de la aplicación para salir.</translation> -<translation id="6906095067383230422">{NUM_MINS,plural, =1{Para proteger tus contraseñas, el gestor de contraseñas de Google se bloquea después de 1 minuto de inactividad}other{Para proteger tus contraseñas, el gestor de contraseñas de Google se bloquea después de {NUM_MINS} minutos de inactividad}}</translation> +<translation id="6906095067383230422">{NUM_MINS,plural, =1{Para proteger tus contraseñas, el Gestor de contraseñas de Google se bloquea después de 1 minuto de inactividad}other{Para proteger tus contraseñas, el Gestor de contraseñas de Google se bloquea después de {NUM_MINS} minutos de inactividad}}</translation> <translation id="6909422577741440844">¿Recibir lo que comparte este dispositivo?</translation> <translation id="6910211073230771657">Eliminado</translation> <translation id="691106080621596509">Esta acción borrará todos los datos y las cookies guardados por <ph name="SITE_GROUP_NAME" />, por los sitios que contenga y por su aplicación instalada</translation> @@ -6730,7 +6728,7 @@ <translation id="720715819012336933">{NUM_PAGES,plural, =1{Salir de la página}other{Salir de las páginas}}</translation> <translation id="7207457272187520234">Envía datos de uso y diagnóstico. Este dispositivo envía automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos servirán para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos agregados también ayudarán a las aplicaciones y a los partners de Google, como los desarrolladores de Android. El propietario ha aplicado este ajuste. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en tu cuenta de Google.</translation> <translation id="7207631048330366454">Buscar aplicaciones</translation> -<translation id="7210471695184432500">Para importar contraseñas al gestor de contraseñas de Google en este dispositivo, selecciona un archivo CSV</translation> +<translation id="7210471695184432500">Para importar contraseñas al Gestor de contraseñas de Google en este dispositivo, selecciona un archivo CSV</translation> <translation id="7210499381659830293">Impresoras de extensiones</translation> <translation id="7211783048245131419">Aún no se ha asignado ningún interruptor</translation> <translation id="7212097698621322584">Introduce tu PIN actual para cambiarlo. Si no sabes cuál es tu PIN, tendrás que restablecer la llave de seguridad y crear un nuevo PIN.</translation> @@ -6971,7 +6969,6 @@ <translation id="7434757724413878233">Aceleración del ratón</translation> <translation id="7434969625063495310">No se ha podido añadir el servidor de impresión. Revisa la configuración del servidor y vuelve a intentarlo.</translation> <translation id="7436921188514130341">¡Vaya! No se ha podido cambiar el nombre.</translation> -<translation id="7438495332316988804">Para buscar el navegador estándar, escribe "Chrome" en el menú de aplicaciones.</translation> <translation id="7439519621174723623">Asigna un nombre al dispositivo para continuar</translation> <translation id="7441736921018636843">Para cambiar este ajuste, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para eliminar tu frase de contraseña de sincronización</translation> <translation id="7441830548568730290">Otros usuarios</translation> @@ -7223,7 +7220,7 @@ <translation id="766635563210446220">No se pueden importar las contraseñas. Revisa <ph name="FILENAME" /> y comprueba que tenga el formato correcto. <ph name="BEGIN_LINK" />Consulta más información<ph name="END_LINK" />.</translation> <translation id="7666531788977935712">Botón Continuar habilitado</translation> <translation id="7668002322287525834">{NUM_WEEKS,plural, =1{Devuelve el <ph name="DEVICE_TYPE" /> en el plazo de {NUM_WEEKS} semana}other{Devuelve el <ph name="DEVICE_TYPE" /> en el plazo de {NUM_WEEKS} semanas}}</translation> -<translation id="7668423670802040666">En el gestor de contraseñas de Google de <ph name="ACCOUNT" /></translation> +<translation id="7668423670802040666">En el Gestor de contraseñas de Google de <ph name="ACCOUNT" /></translation> <translation id="7668648754769651616">Las funciones de accesibilidad hacen que tu dispositivo sea más fácil de usar. Para acceder a los ajustes rápidos, selecciona la hora en la parte inferior de la pantalla.</translation> <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{PIN incorrecto. Solo te queda 1 intento.}other{PIN incorrecto. Te quedan # intentos.}}</translation> <translation id="7670434942695515800">Para obtener el mejor rendimiento, actualiza a la versión más reciente. Es recomendable crear una copia de seguridad de los archivos por si no se puede completar la actualización. Una vez comience la actualización, Linux se apagará. Guarda los archivos abiertos antes de continuar. <ph name="LINK_START" />Más información<ph name="LINK_END" /></translation> @@ -7549,6 +7546,7 @@ <translation id="7952904276017482715">Se esperaba el ID "<ph name="EXPECTED_ID" />", pero se ha detectado el ID "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Métodos de introducción de texto</translation> <translation id="7953955868932471628">Gestionar accesos directos</translation> +<translation id="7955105108888461311">Preguntar en persona</translation> <translation id="7955177647836564772">Si Smart Lock está activado y tu teléfono está desbloqueado, no tendrás que introducir ni una contraseña ni un PIN</translation> <translation id="7956373551960864128">Tus impresoras guardadas</translation> <translation id="7957074856830851026">Ver información del dispositivo, como el número de serie o el ID de recurso</translation> @@ -7641,7 +7639,7 @@ <translation id="8041089156583427627">Enviar</translation> <translation id="8041267120753677077">Proyecta aplicaciones de tu teléfono</translation> <translation id="8042142357103597104">Opacidad del texto</translation> -<translation id="8042331986490021244">Tus contraseñas se cifran en tu dispositivo antes de guardarse en el gestor de contraseñas de Google</translation> +<translation id="8042331986490021244">Tus contraseñas se cifran en tu dispositivo antes de guardarse en el Gestor de contraseñas de Google</translation> <translation id="8044262338717486897"><ph name="LINUX_APP_NAME" /> no responde.</translation> <translation id="8044899503464538266">Lenta</translation> <translation id="8045253504249021590">La sincronización se ha detenido mediante el Panel de Control de Google.</translation> @@ -7834,7 +7832,7 @@ <translation id="8208188204689616705">Estos sitios están en un grupo definido por <ph name="FPS_OWNER" />. Los sitios que forman parte de un grupo pueden ver tu actividad en el grupo.</translation> <translation id="8208216423136871611">No guardar</translation> <translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Notificación nueva}other{# notificaciones nuevas}}</translation> -<translation id="821119981794423735">Para importar contraseñas al gestor de contraseñas de Google para <ph name="USER_EMAIL" />, selecciona un archivo CSV</translation> +<translation id="821119981794423735">Para importar contraseñas al Gestor de contraseñas de Google para <ph name="USER_EMAIL" />, selecciona un archivo CSV</translation> <translation id="8212008074015601248">{NUM_DOWNLOAD,plural, =1{Descarga en curso}other{Descargas en curso}}</translation> <translation id="8212601853154459483">Este perfil está administrado por <ph name="PROFILE_MANAGER" /> y requiere que crees otro perfil para la cuenta <ph name="USER_EMAIL_ADDRESS" />.</translation> <translation id="8214489666383623925">Abrir archivo...</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index b191a5a..206ece5 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Leht ei reageeri</translation> <translation id="1041263367839475438">Saadaolevad seadmed</translation> <translation id="1042174272890264476">Teie arvutil on ka toote <ph name="SHORT_PRODUCT_NAME" /> sisseehitatud RLZ-teek. RLZ määrab korduva ja isikut mittetuvastava ID-tunnuse, et mõõta konkreetse reklaamikampaania tekitatud otsinguid ja toote <ph name="SHORT_PRODUCT_NAME" /> kasutust. Need sildid kuvatakse vahel ka tootes <ph name="PRODUCT_NAME" /> Google'i otsingupäringutes.</translation> +<translation id="1042248468362992359">Kuumkoha kasutamiseks looge ühendus mobiilse andmesidega. <ph name="BEGIN_LINK_LEARN_MORE" />Lisateave<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Midagi läks valesti. Linuxi versiooni uuendamine võis ainult osaliselt õnnestuda. Lisateabe saamiseks vaadake üle logid. Logid salvestati jaotisse Failid > Minu failid > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Klahvitabeli stiil</translation> <translation id="104710386808485638">Kas taaskäivitada Linux?</translation> @@ -59,6 +60,7 @@ <translation id="1054153489933238809">Ava &algkujutis uuel vahelehel</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Värskendage seadet (<ph name="DEVICE_TYPE" />) ühe nädala jooksul}other{Värskendage seadet (<ph name="DEVICE_TYPE" />) {NUM_WEEKS} nädala jooksul}}</translation> <translation id="1056898198331236512">Hoiatus</translation> +<translation id="1056980582064308040">Selle seade muutmisel taaskäivitatakse kuumkoht. Kuumkohta kasutavate seadmete ühendus katkestatakse.</translation> <translation id="1058262162121953039">PUK-kood</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Sisestage oma uus PIN-kood. PIN-kood peab sisaldama vähemalt ühte tähemärki ja see tohib sisaldada nii tähti, numbreid kui ka teisi tähemärke.}other{Sisestage oma uus PIN-kood. PIN-kood peab sisaldama vähemalt # tähemärki ja see tohib sisaldada nii tähti, numbreid kui ka teisi tähemärke.}}</translation> <translation id="1059484610606223931">Hüperteksti edastusprotokoll (HTTPS)</translation> @@ -158,6 +160,7 @@ <translation id="1139923033416533844">Mälukasutus</translation> <translation id="1140351953533677694">Juurdepääs Bluetoothi ja jadaseadmetele</translation> <translation id="114036956334641753">Heli ja subtiitrid</translation> +<translation id="1141949282671776404">Ajal, mil see vaheleht oli inaktiivne, vabastas mälusäästja <ph name="MEMORY_VALUE" /> mälu muude toimingute jaoks.</translation> <translation id="1142002900084379065">Hiljutised fotod</translation> <translation id="1143142264369994168">Sertifikaadi allkirjastaja</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome ei leidnud teie arvutist kahjulikku tarkvara • Kontrolliti 1 minut tagasi}other{Chrome ei leidnud teie arvutist kahjulikku tarkvara • Kontrolliti {NUM_MINS} minutit tagasi}}</translation> @@ -305,6 +308,7 @@ <translation id="1272079795634619415">Peata</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Toetatud linkide<ph name="END_LINK" /> avamine</translation> <translation id="1272978324304772054">See kasutajakonto ei kuulu domeeni, kus seade on registreeritud. Kui soovite registreeruda mõnel teisel domeenil, peate esmalt tegema seadmetaaste.</translation> +<translation id="1273937721055267968">Blokeeri <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Küpsised ja muud saidi andmed</translation> <translation id="1275718070701477396">Valitud</translation> <translation id="1276994519141842946">Rakendust <ph name="APP_NAME" /> ei saanud installida</translation> @@ -317,6 +321,7 @@ <translation id="1285320974508926690">Ära kunagi seda saiti tõlgi</translation> <translation id="1285484354230578868">Salvestage andmed oma Google Drive'i kontole</translation> <translation id="1285625592773741684">Praegune andmekasutuse seade on Mobiilne andmeside</translation> +<translation id="1285815028662278915">Teie mobiilse andmeside pakett ei pruugi kuumkohta toetada. <ph name="BEGIN_LINK_LEARN_MORE" />Lisateave<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Funktsioon Öövalgus lülitub automaatselt sisse päikeseloojangul</translation> <translation id="1288300545283011870">Kõne atribuudid</translation> <translation id="1289619947962767206">Seda valikut enam ei toetata. Vahelehe esitamiseks kasutage rakendust <ph name="GOOGLE_MEET" />.</translation> @@ -356,6 +361,7 @@ <translation id="1327495825214193325">ADB silumise lubamiseks, tuleb seade <ph name="DEVICE_TYPE" /> taaskäivitada. Selle keelamiseks on seade vaja lähtestada tehaseseadetele.</translation> <translation id="1327527584824210101">Kasutage oma pääsukoodi</translation> <translation id="1327794256477341646">Teie asukohateavet vajavad funktsioonid ei tööta</translation> +<translation id="1329466763986822896">Täiustage selle kuumkoha privaatsust</translation> <translation id="1331977651797684645">See olin mina.</translation> <translation id="1333489022424033687">Mõni funktsioon saidil <ph name="ORIGIN" /> ei pruugi töötada enne, kui kustutate andmed, mille teised saidid on teie seadmesse salvestanud</translation> <translation id="1333965224356556482">Ära luba saitidel minu asukohta näha</translation> @@ -596,6 +602,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Teie inkognito akent ei avata uuesti.}other{Teie # inkognito akent ei avata uuesti.}}</translation> <translation id="1546280085599573572">See laiendus muutis seda, milline leht kuvatakse avalehe nupul klõpsamisel.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> soovib installida laienduse <ph name="EXTENSION_TYPE" />, mis saab teha järgmist:</translation> +<translation id="1547123415014299762">Kolmanda osapoole küpsisefailid on lubatud</translation> <translation id="1547808936554660006">Mõistan, et Powerwash ei eemalda installitud eSIM-i profiile</translation> <translation id="1547936895218027488">Külgpaneeli avamiseks klõpsake selle ikoonil</translation> <translation id="1549275686094429035">ARC on lubatud</translation> @@ -654,6 +661,7 @@ <translation id="1596286373007273895">Saadaval</translation> <translation id="1596709061955594992">Bluetooth on välja lülitatud. Saadaval seadmete nägemiseks lülitage Bluetooth sisse.</translation> <translation id="1596780725094407793">ja kõik alamdomeenid</translation> +<translation id="1598163867407640634">Kasutage saiti <ph name="SITE_ETLD_PLUS_ONE" /> kontoga <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Administraator on värskendused keelanud.</translation> <translation id="1600857548979126453">Juurdepääs lehesiluri tagaosale</translation> <translation id="1601560923496285236">Rakenda</translation> @@ -769,6 +777,7 @@ <translation id="168715261339224929">Järjehoidjate hankimiseks kõigisse oma seadmetesse lülitage sünkroonimine sisse.</translation> <translation id="1688867105868176567">Kas soovite saidi andmed kustutada?</translation> <translation id="1688935057616748272">Sisestage täht</translation> +<translation id="1689333818294560261">Hüüdnimi</translation> <translation id="168991973552362966">Lähedalasuva printeri lisamine</translation> <translation id="1689945336726856614">Kopeeri &URL</translation> <translation id="1692115862433274081">Kasuta teist kontot</translation> @@ -1231,6 +1240,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Märkus.<ph name="END_BOLD" /> Protsessi käigus süsteem taaskäivitatakse.</translation> <translation id="2095774564753225041">Toetatud failitüübid</translation> +<translation id="2097616539631531348">Ajal, mil see vaheleht oli inaktiivne, vabastas mälusäästja mälu muude toimingute jaoks.</translation> <translation id="2098805196501063469">Ülejäänud paroolide kontrollimine</translation> <translation id="2099686503067610784">Kustutada serveri sertifikaat „<ph name="CERTIFICATE_NAME" />”</translation> <translation id="2100273922101894616">Automaatne sisselogimine</translation> @@ -1399,6 +1409,7 @@ <translation id="2247870315273396641">Hääle eelvaade</translation> <translation id="2249111429176737533">Ava vahelehestatud aknas</translation> <translation id="2249605167705922988">nt 1–5, 8, 11–13</translation> +<translation id="2249635629516220541">Kohandage teavet, mida saidid teile reklaamide kuvamiseks kasutavad</translation> <translation id="2251218783371366160">Ava süsteemivaaturiga</translation> <translation id="225163402930830576">Värskenda võrke</translation> <translation id="2251809247798634662">Uus inkognito aken</translation> @@ -1516,7 +1527,6 @@ <translation id="2329597144923131178">Logige sisse, et tuua kõikidesse seadmetesse järjehoidjad, ajalugu, paroolid ja muud seaded.</translation> <translation id="2332115969598251205">Ei saa kontole <ph name="PRIMARY_EMAIL" /> salvestatud seadmeid laadida. Kontrollige internetiühendust ja proovige uuesti.</translation> <translation id="2332131598580221120">Poes kuvamine</translation> -<translation id="2332192922827071008">Ava eelistused</translation> <translation id="2332515770639153015">Täiustatud ohutu sirvimine on sisse lülitatud</translation> <translation id="2332742915001411729">Lähtesta vaikeseadetele</translation> <translation id="2332948465534020594">Režiim Mitte segada on lubatud</translation> @@ -1850,6 +1860,7 @@ <translation id="2640299212685523844">Kasuta teemat GTK</translation> <translation id="264083724974021997">Telefoniga ühenduse loomine – dialoog</translation> <translation id="2642111877055905627">Jalgpall</translation> +<translation id="2643064289437760082">Saate alati reklaamide mõõtmise andmed kustutada, kustutades oma sirvimisandmed</translation> <translation id="2643698698624765890">Laienduste haldamiseks klõpsake aknamenüüs valikul Laiendused.</translation> <translation id="2645047101481282803">Teie seadet haldab <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2309,6 +2320,7 @@ <translation id="3036327949511794916">Selle seadme (<ph name="DEVICE_TYPE" />) tagastamise tähtaeg on möödunud.</translation> <translation id="3036546437875325427">Luba Flash</translation> <translation id="3037754279345160234">Domeeniga liitumise seadistust ei saa sõeluda. Võtke ühendust administraatoriga.</translation> +<translation id="3038272154009688107">Kuva kõik saidid</translation> <translation id="3038612606416062604">Printeri käsitsi lisamine</translation> <translation id="3039491566278747710">Võrguühenduseta reegli seadmesse installimine nurjus.</translation> <translation id="3043016484125065343">Järjehoidjate nägemiseks logige sisse</translation> @@ -2545,6 +2557,7 @@ <translation id="3289668031376215426">Automaatne suurtähtede kasutamine</translation> <translation id="3289856944988573801">Kasutage värskenduste otsimiseks Etherneti või WiFi-ühendust.</translation> <translation id="3290249595466894471">Saadab ka lehtede, allalaadimiste, laienduste tegevuse ja süsteemiteabe näidiseid, et aidata uusi ohte tuvastada.</translation> +<translation id="3293181007446299124">Teie sirvimisajalugu hoitakse teie seadmes privaatsena ja aruanded saadetakse viivitusega, et teie isikut saladuses hoida</translation> <translation id="3293644607209440645">Saada leht</translation> <translation id="32939749466444286">Linuxi konteiner ei käivitunud. Proovige uuesti.</translation> <translation id="3294437725009624529">Külaline</translation> @@ -3325,6 +3338,7 @@ <translation id="3984431586879874039">Kas lubada saidil teie turvavõtit näha?</translation> <translation id="398477389655464998">Kopeeri esiletõstuga link</translation> <translation id="3984862166739904574">Definitsioon kiirvastustes</translation> +<translation id="3985022125189960801">Lisage sait tagasi, kui soovite selle kaasata saitide hulka, mis teie huvisid prognoosivad</translation> <translation id="3987544746655539083">Blokeeri selle saidi jaoks jätkuvalt juurdepääs minu asukohale</translation> <translation id="3987938432087324095">Kahjuks ei kuulnud seda.</translation> <translation id="3987993985790029246">Kop. link</translation> @@ -3375,6 +3389,7 @@ <translation id="4040041015953651705">Keel, millest tõlkida</translation> <translation id="4040105702484676956">Kas kustutada saidi <ph name="SITE_NAME" /> ning selle installitud rakenduse andmed ja load?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Välju lehelt}other{Välju lehtedelt}}</translation> +<translation id="4042941173059740150">Minge saidile <ph name="SITE_ETLD_PLUS_ONE" /> kontoga <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Kursori suurus</translation> <translation id="4044612648082411741">Sisestage oma sertifikaadi parool</translation> <translation id="4044708573046946214">Ekraaniluku parool</translation> @@ -3702,6 +3717,7 @@ <translation id="4366138410738374926">Alustati printimist</translation> <translation id="4367513928820380646">Vaadake üle eemaldatud load</translation> <translation id="4369215744064167350">Veebisaidi taotlus kinnitati</translation> +<translation id="4369735607080757018">Saitide vahel jagatakse teatud tüüpi andmeid, et mõõta nende reklaamide toimivust (nt millal päeva jooksul teile reklaami näidati)</translation> <translation id="4370975561335139969">Sisestatud e-posti aadress ja parool ei ühildu</translation> <translation id="4374831787438678295">Linuxi installiprogramm</translation> <translation id="4375035964737468845">Ava allalaaditud failid</translation> @@ -3722,6 +3738,7 @@ <translation id="4385146930797718821">Ekraanipilt on lõikelauale kopeeritud</translation> <translation id="4385905942116811558">Bluetooth- ja USB-seadmete otsimine</translation> <translation id="4387890294700445764">Ohustatud paroolid</translation> +<translation id="4388650384344483842">Kasutage vähemalt 8 tähemärki</translation> <translation id="4389091756366370506">Kasutaja <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ja veel <ph name="NUMBER_OF_OTHER_SWITCHES" /> lülitit</translation> <translation id="439266289085815679">Bluetoothi seadistust juhib <ph name="USER_EMAIL" />.</translation> @@ -4043,6 +4060,7 @@ <translation id="4666472247053585787">Vaadake oma telefoni märguandeid seadmes <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Rohkem rakendusi</translation> <translation id="4667027203988048332">Milliseid andmeid kasutatakse?</translation> +<translation id="4668279686271488041">Reklaamide mõõtmise andmed kustutatakse regulaarselt teie seadmest</translation> <translation id="4672759829555593783">Faili <ph name="FILE_NAME" /> avamine kohe</translation> <translation id="46733273239502219">Kustutatakse ka installitud rakenduste võrguühenduseta andmed</translation> <translation id="4673442866648850031">Ava elektronpliiatsi tööriistad, kui elektronpliiats eemaldatakse</translation> @@ -4236,6 +4254,7 @@ <translation id="485480310608090163">Rohkem seadeid ja lube</translation> <translation id="4858913220355269194">Fritz</translation> <translation id="4862642413395066333">Signeerimise OCSP vastused</translation> +<translation id="4863702650881330715">Ühilduvuse laiendamine</translation> <translation id="4863769717153320198">Näib kui <ph name="WIDTH" /> × <ph name="HEIGHT" /> (vaikeseade)</translation> <translation id="4864805589453749318">Vali vanem, kes annab kooli konto lisamiseks loa.</translation> <translation id="486635084936119914">Teatud failitüübid avatakse pärast allalaadimist automaatselt</translation> @@ -4284,7 +4303,6 @@ <translation id="4893336867552636863">See kustutab teie sirvimisandmed sellest seadmest jäädavalt.</translation> <translation id="4893454800196085005">Hea – DVD</translation> <translation id="4893522937062257019">Lukustuskuval</translation> -<translation id="4897496410259333978">Lisateabe saamiseks võtke ühendust administraatoriga.</translation> <translation id="4898011734382862273">Sertifikaat „<ph name="CERTIFICATE_NAME" />” esindab sertifitseerimisorganit</translation> <translation id="4899052647152077033">Värvide ümberpööramine</translation> <translation id="4899696330053002588">Sisaldab reklaame</translation> @@ -4482,6 +4500,7 @@ <translation id="5094721898978802975">Side koostööd tegevate omarakendustega</translation> <translation id="5097002363526479830">Võrguga „<ph name="NAME" />” ühenduse loomine ebaõnnestus: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Lisateave asukohafunktsiooni kasutamise kohta</translation> +<translation id="5097349930204431044">Teie külastatavad saidid saavad tuvastada, mis teile meeldib, ja siis sirvimise jätkamisel reklaame soovitada</translation> <translation id="5097649414558628673">Tööriist: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automaatne klikk kursori peatumisel</translation> <translation id="5101683448725092498">Varundage oma sisu</translation> @@ -4664,6 +4683,7 @@ <translation id="5275352920323889391">Koer</translation> <translation id="527605719918376753">Summuta vahekaart</translation> <translation id="527605982717517565">Luba alati JavaScript saidil <ph name="HOST" /></translation> +<translation id="5276357196618041410">Ei saa seadistust ilma esmalt sisse logimata salvestada</translation> <translation id="5277127016695466621">Kuva külgpaneel</translation> <translation id="5278823018825269962">Oleku ID</translation> <translation id="5279600392753459966">Blokeeri kõik</translation> @@ -5818,7 +5838,6 @@ <translation id="6347010704471250799">Kuva märguanne</translation> <translation id="6349101878882523185">Installi <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptilise kõveraga secp256r1 (ehk ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Katseline (alfa-kvaliteediga) brauser! Mõni funktsioon on puudu või poolik. Teavitage probleemidest valikutega Abi > „Probleemist teavitamine …”.</translation> <translation id="635609604405270300">Hoidke seade sisselülitatuna</translation> <translation id="63566973648609420">Teie krüpteeritud andmeid saavad lugeda vaid need, kes teavad teie parooli – seda ei saadeta Google'ile ja Google ei talleta seda. Kui unustate parooli või soovite seda seadet muuta, tuleb teil <ph name="BEGIN_LINK" />sünkroonimine lähtestada<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Mõned toetatud lingid avanevad endiselt rakenduses <ph name="APP_NAME" /> või <ph name="APP_NAME_2" />.</translation> @@ -6158,6 +6177,7 @@ <translation id="6670767097276846646">Mõned laiendused võivad Chrome'ile otsingumootoreid lisada</translation> <translation id="6671320560732140690">{COUNT,plural, =1{aadress}other{# aadressi}}</translation> <translation id="6671497123040790595">Üksusega <ph name="MANAGER" /> haldamise seadistamine</translation> +<translation id="6672917148207387131">Lisa <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Sünkroonimise alustamiseks sisestage oma parool</translation> <translation id="6675665718701918026">Ühendati kursoriseade</translation> @@ -6241,6 +6261,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Inkognito)</translation> <translation id="6756157672127672536">Rakendusega Failid saate kiiresti juurdepääsu Google Drive'i, välisesse talletusseadmesse või Chrome OS-i seadmesse salvestatud failidele.</translation> <translation id="6756643207511618722">Kõnesünteesimootorid</translation> +<translation id="6757431299485455321">Aidake teistel seadmetel see kuumkoht leida.</translation> <translation id="6758056191028427665">Andke teada, kuidas meil läheb.</translation> <translation id="6759193508432371551">Tehaseseadete lähtestamine</translation> <translation id="6761431452438552910">Veenduge, et teie Bluetooth-seade oleks sidumisrežiimis ja läheduses. Siduge ainult seadmetega, mida usaldate.</translation> @@ -6340,6 +6361,7 @@ <translation id="6833479554815567477">Vaheleht eemaldati grupist <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Minge üle nutikale ja turvalisele brauserile</translation> <translation id="6833996806551876956">Privaatsuse liivakasti prooviperiood</translation> +<translation id="6835712061486505758">Looge WiFi-kuumkoht, et teistele seadmetele internetiühendust pakkuda. <ph name="BEGIN_LINK_LEARN_MORE" />Lisateave<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Seadme <ph name="DEVICE_TYPE" /> värskendamiseks looge ühendus Internetiga.</translation> <translation id="6839225236531462745">Sertifikaadi kustutamise viga</translation> <translation id="6839916869147598086">Sisselogimine on muutunud</translation> @@ -6501,6 +6523,7 @@ <translation id="697508444536771064">Lülita Linux välja</translation> <translation id="6975361011348772931">Taotles luba lugeda ja muuta</translation> <translation id="6978121630131642226">Otsingumootorid</translation> +<translation id="6978717888677691380">Blokeeritud saidid</translation> <translation id="6979041727349121225">Energiasäästja</translation> <translation id="6979044105893951891">Hallatavate külastajaseansside käivitamine ja nendest väljumine</translation> <translation id="6979440798594660689">Vaigista (vaikeseade)</translation> @@ -6592,6 +6615,7 @@ <translation id="7047059339731138197">Tausta valimine</translation> <translation id="7048457618657122233">Jaga linki: <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Kas soovite faili säilitada?</translation> +<translation id="7050037487872780845">Kuumkoha sobimatu seadistus</translation> <translation id="7052237160939977163">Saada toimivuse jälgimise andmeid</translation> <translation id="7053983685419859001">Blokeeri</translation> <translation id="7055152154916055070">Ümbersuunamine blokeeriti:</translation> @@ -6796,6 +6820,7 @@ <translation id="7258192266780953209">Teisendamised</translation> <translation id="7258225044283673131">Rakendus ei reageeri. Rakenduse sulgemiseks valige käsk „Sundpeata”.</translation> <translation id="7260186537988033909">Kioski- ja teabeseadmete registreerimine viidi lõpule</translation> +<translation id="7260367682327802201">Teie Android-seadmes võib olla sarnane seade. Kui reklaamide mõõtmine on Chrome'is ja teie Android-seadmes sisse lülitatud, võib ettevõttel olla võimalik mõõta reklaami tõhusust veebisaitidel, mida külastate, ja rakendustes, mida kasutate.</translation> <translation id="7262004276116528033">Sisselogimisteenust hostib <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{1 saidi load eemaldati}other{{NUM_SITES} saidi load eemaldati}}</translation> <translation id="7264695323040866038">Kas kasutada toetatud veebilinkide avamiseks alati rakendust <ph name="APP" />?</translation> @@ -6939,6 +6964,7 @@ <translation id="7406912950279255498">Värvide ümberpööramise režiim</translation> <translation id="7407430846095439694">Impordi ja seo</translation> <translation id="7407504355934009739">Enamik inimesi blokeerib selle saidi märguanded</translation> +<translation id="7408080603962564527">See on teistele nähtav</translation> <translation id="740810853557944681">Prindiserveri lisamine</translation> <translation id="7409549334477097887">Väga suur</translation> <translation id="7409599290172516453">Hiljutised fotod</translation> @@ -6977,7 +7003,6 @@ <translation id="7434757724413878233">Hiire kiirendus</translation> <translation id="7434969625063495310">Prindiserverit ei õnnestunud lisada. Kontrollige serveri seadistust ja proovige uuesti.</translation> <translation id="7436921188514130341">Ups, ebaõnn! Ümbernimetamisel ilmnes viga.</translation> -<translation id="7438495332316988804">Tavalise brauseri leidmiseks sisestage käivitajas otsing „Chrome“.</translation> <translation id="7439519621174723623">Jätkamiseks lisage seadme nimi</translation> <translation id="7441736921018636843">Seade muutmiseks <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" />, et sünkroonimisparool eemaldada</translation> <translation id="7441830548568730290">Teised kasutajad</translation> @@ -7254,6 +7279,7 @@ <translation id="7684718995427157417">Rakenduste loomiseks ja testimiseks lubage Android Debug Bridge (ADB). Pange tähele, et see toiming võimaldab selliste Androidi rakenduste installimist, mida Google pole kontrollinud, ja tööriista keelamiseks on nõutav tehaseseadetele lähtestamine.</translation> <translation id="7685049629764448582">JavaScripti mälu</translation> <translation id="7685087414635069102">PIN-kood on kohustuslik</translation> +<translation id="7686086654630106285">Lisateave saidi soovitatud reklaamide kohta</translation> <translation id="7686581688229391955">Valige, et laiendused sellel saidil lubada</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Kinnitage uus parool</translation> @@ -7275,6 +7301,7 @@ <translation id="7704317875155739195">Otsingute ja URL-ide automaatne täitmine</translation> <translation id="7704521324619958564">Ava Play pood</translation> <translation id="7705276765467986571">Järjehoidja mudelit ei õnnestunud laadida.</translation> +<translation id="7705334495398865155">Juhuslikustage oma riistvara ID (BSSID), et takistada teistel selle seadme jälgimist.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Saidil pole lubatud liikumisandureid kasutada.</translation> <translation id="7707922173985738739">Kasuta mobiilset andmesidet</translation> @@ -7468,6 +7495,7 @@ <translation id="7881483672146086348">Kuva konto</translation> <translation id="7883792253546618164">Saate tellimuse alati tühistada.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Vaadake üle 1 sait, mis saatis hiljuti hulgaliselt märguandeid}other{Vaadake üle {NUM_SITES} saiti, mis saatsid hiljuti hulgaliselt märguandeid}}</translation> +<translation id="7884446017008693258">Kuumkoha seaded</translation> <translation id="788453346724465748">Kontoteabe laadimine …</translation> <translation id="7886279613512920452">{COUNT,plural, =1{üksus}other{# üksust}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7555,6 +7583,7 @@ <translation id="7952904276017482715">Eeldatav ID oli „<ph name="EXPECTED_ID" />”, kuid ID oli „<ph name="NEW_ID" />”</translation> <translation id="7953669802889559161">Sisestusmeetodid</translation> <translation id="7953955868932471628">Otseteede haldamine</translation> +<translation id="7955105108888461311">Küsi isiklikult</translation> <translation id="7955177647836564772">Kui Smart Lock on sisse lülitatud ja teie telefon on avatud, ei pea te parooli või PIN-koodi sisestama.</translation> <translation id="7956373551960864128">Teie salvestatud printerid</translation> <translation id="7957074856830851026">Seadme teabe (nt seerianumbri või vara ID) vaatamine</translation> @@ -7693,6 +7722,7 @@ <ph name="BEGIN_PARAGRAPH3" />Selle teenuse saate menüüs Seaded välja lülitada.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Vahelehed</translation> <translation id="8076835018653442223">Teie administraator on keelanud seadmes juurdepääsu kohalikele failidele</translation> +<translation id="8077120325605624147">Mis tahes külastatav sait saab teile kuvada mis tahes reklaami</translation> <translation id="80798452873915119">Saidid võivad küsida luba kõikidel teie ekraanidel akende haldamiseks</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Teie seanssi haldab <ph name="MANAGER_NAME" />. Administraatorid saavad teie profiili kustutada ning ka teie võrguliiklust jälgida.</translation> @@ -8205,6 +8235,7 @@ <translation id="8557180006508471423">Lülitage oma Maci jaotises Location Services sisse valik „Google Chrome”</translation> <translation id="8557856025359704738">Järgmine allalaadimine: <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Pääsukoodid</translation> +<translation id="8559961053328923750">Chrome piirab nende andmete hulka, mida saidid saavad reklaamide toimivuse mõõtmiseks brauseri kaudu jagada</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Ava kõik &uues aknas}=1{Ava &uues aknas}other{Ava kõik ({COUNT}) &uues aknas}}</translation> <translation id="8561206103590473338">Elevant</translation> <translation id="8561565784790166472">Olge jätkamisel ettevaatlik</translation> @@ -8336,6 +8367,7 @@ <translation id="8674903726754070732">Kahjuks on teie arvuti seadistatud valesti vormindatud riistvara ID-ga. See ei lase Chrome OS-i uusimate turvaparandustega värskendada ja teie arvuti <ph name="BEGIN_BOLD" />võib olla pahatahtlike rünnakute suhtes haavatav<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Installiprogramm ei leidnud operatsioonisüsteemi <ph name="DEVICE_OS" /> installimiseks sobivat sihtkohta.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Video}other{# videot}}</translation> +<translation id="8676276370198826499">Registreeruge saidi <ph name="SITE_ETLD_PLUS_ONE" /> kasutamiseks kontoga <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Täname teid tagasiside saatmise eest!</translation> <translation id="8676374126336081632">Tühjenda sisestus</translation> <translation id="8676770494376880701">Väikese energiakuluga laadija on ühendatud</translation> @@ -8346,6 +8378,7 @@ <translation id="8678933587484842200">Kuidas soovite selle rakenduse käivitada?</translation> <translation id="8680251145628383637">Logige sisse, et teie järjehoidjad, ajalugu, paroolid ja muud seaded oleksid kõikides seadmetes saadaval. Teid logitakse ka automaatselt sisse Google'i teenustesse.</translation> <translation id="8681614230122836773">Chrome leidis teie arvutist kahjulikku tarkvara</translation> +<translation id="8681886425883659911">Reklaamid on blokeeritud saitidel, mis teadaolevalt kuvavad sekkuvaid või eksitavaid reklaame</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> on juba ühendatud</translation> <translation id="8687103160920393343">Tühista <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Saadaval</translation> @@ -8716,6 +8749,7 @@ <translation id="9021662811137657072">Leiti viirus</translation> <translation id="902236149563113779">Saidid jälgivad teie kaamera asendit tavaliselt AR-funktsioonide jaoks, nt mängudeks või juhiste esitamisel</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> juba kasutab arvutis seda kontot.</translation> +<translation id="9022871169049522985">Saidid ja reklaamijad saavad mõõta oma reklaamide toimivust</translation> <translation id="9023015617655685412">Lisa vaheleht järjehoidjatesse …</translation> <translation id="9023909777842748145">Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.</translation> <translation id="9024127637873500333">&Ava uuel vahelehel</translation> @@ -8845,6 +8879,7 @@ <translation id="9128335130883257666">Sisestusmeetodi <ph name="INPUT_METHOD_NAME" /> seadete lehe avamine</translation> <translation id="9128870381267983090">Ühendumine Internetiga</translation> <translation id="9130015405878219958">Sisestati vale režiim.</translation> +<translation id="9131209053278896908">Blokeeritud saidid kuvatakse siin</translation> <translation id="9131487537093447019">Bluetoothi seadmetele sõnumite saatmine ja nendelt sõnumite vastuvõtmine.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 järjehoidja}other{# järjehoidjat}}</translation> <translation id="9134066738478820307">Saidid võivad identifikaatorite alusel kaitstud sisu esitada</translation> @@ -8898,6 +8933,7 @@ <translation id="9180281769944411366">Protsess võib võtta mõne minuti. Linuxi konteinerit käivitatakse.</translation> <translation id="9180380851667544951">Sait saab jagada teie ekraanikuva</translation> <translation id="9182556968660520230">Ära luba saitidel kaitstud sisu esitada</translation> +<translation id="9183331776983279456">Chrome kustutab automaatselt saidid, mis on vanemad kui 4 nädalat. Sait, mida uuesti külastate, võidakse uuesti loendis kuvada. Võite ka saidi puhul reklaamide soovitamise blokeerida.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Rakendus}other{# rakendust}}</translation> <translation id="9186963452600581158">Logige sisse oma lapse Google'i kontoga</translation> <translation id="9187967020623675250">Klahvid ei ühti. Vajutage mis tahes klahvi, et <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 0e60be4..7a9ad26e 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Ireki jatorrizko &irudia beste fitxa batean</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Eguneratu <ph name="DEVICE_TYPE" /> gailua astebeteko epean}other{Eguneratu <ph name="DEVICE_TYPE" /> gailua {NUM_WEEKS} asteko epean}}</translation> <translation id="1056898198331236512">Abisua</translation> +<translation id="1056980582064308040">Ezarpenak aldatuz gero, wifi-gunea berrabiaraziko da. Hura erabiltzen ari diren gailuak deskonektatuko dira.</translation> <translation id="1058262162121953039">PUK kodea</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Idatzi PIN berria. PINak karaktere bat izan behar du gutxienez, eta hizkiak, zenbakiak eta bestelako karaktereak eduki ditzake.}other{Idatzi PIN berria. PINak # karaktere izan behar ditu gutxienez, eta hizkiak, zenbakiak eta bestelako karaktereak eduki ditzake.}}</translation> <translation id="1059484610606223931">Hipertestua transferitzeko protokolo segurua (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">Gelditu</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Esteka bateragarriak<ph name="END_LINK" /> irekitzea</translation> <translation id="1272978324304772054">Erabiltzaile-kontu hau ez da gailua erregistratu den domeinukoa. Beste domeinu batean erregistratu ahal izateko, gailua berreskuratu behar duzu.</translation> +<translation id="1273937721055267968">Blokeatu <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookieak eta webguneko beste datuak</translation> <translation id="1275718070701477396">Hautatua</translation> <translation id="1276994519141842946">Ezin izan da desinstalatu <ph name="APP_NAME" /></translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">ADB arazketa gaitzeko, <ph name="DEVICE_TYPE" /> gailua berrabiarazi behar da. Desgaitzeko, jatorrizko ezarpenak berrezarri behar dira.</translation> <translation id="1327527584824210101">Erabili sarbide-gakoa</translation> <translation id="1327794256477341646">Kokapenerako sarbidea behar duten eginbideek ez dute funtzionatuko</translation> +<translation id="1329466763986822896">Hobetu wifi-gune honen pribatutasuna</translation> <translation id="1331977651797684645">Ni izan naiz.</translation> <translation id="1333489022424033687">Baliteke <ph name="ORIGIN" /> webguneko eginbide batzuek ez funtzionatzea beste webgune batzuek zure gailuan gorde dituzten datuak garbitu arte</translation> <translation id="1333965224356556482">Ez eman kokapena ikusteko baimena webguneei</translation> @@ -593,6 +596,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Ezkutuko moduko leihoa ez da irekiko berriro.}other{Ezkutuko moduko # leihoak ez dira irekiko berriro.}}</translation> <translation id="1546280085599573572">Luzapenak aldatu egin du Hasiera botoia sakatzean agertzen den orria.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> erabiltzaileak honako hauek egin ditzakeen <ph name="EXTENSION_TYPE" /> luzapena instalatu nahi du:</translation> +<translation id="1547123415014299762">Hirugarrenen cookieak onartzen dira</translation> <translation id="1547808936554660006">Ulertzen dut instalatutako eSIMaren profilak ez direla kenduko jatorrizko datuak berrezarrita ere</translation> <translation id="1547936895218027488">Alboko panela irekitzeko, sakatu haren ikonoa</translation> <translation id="1549275686094429035">ARC gaituta</translation> @@ -766,6 +770,7 @@ <translation id="168715261339224929">Laster-markak gailu guztietan eskura izateko, aktibatu sinkronizazioa.</translation> <translation id="1688867105868176567">Webguneko datuak garbitu nahi dituzu?</translation> <translation id="1688935057616748272">Idatzi letra bat</translation> +<translation id="1689333818294560261">Goitizena</translation> <translation id="168991973552362966">Gehitu inguruko inprimagailu bat</translation> <translation id="1689945336726856614">Kopiatu &URLa</translation> <translation id="1692115862433274081">Erabili beste kontu bat</translation> @@ -1396,6 +1401,7 @@ <translation id="2247870315273396641">Entzun ahotsa aldez aurretik</translation> <translation id="2249111429176737533">Ireki leiho fitxadun gisa</translation> <translation id="2249605167705922988">adibidez: 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Pertsonalizatu webguneek iragarkiak erakusteko erabiltzen duten informazioa</translation> <translation id="2251218783371366160">Ireki sistema-ikustailearen bidez</translation> <translation id="225163402930830576">Freskatu sareak</translation> <translation id="2251809247798634662">Ezkutuko moduko leiho berria</translation> @@ -1510,7 +1516,6 @@ <translation id="2329597144923131178">Hasi saioa laster-markak, historia, pasahitzak eta bestelakoak gailu guztietan izateko.</translation> <translation id="2332115969598251205">Ezin dira kargatu <ph name="PRIMARY_EMAIL" /> kontuan gordetako gailuak. Egiaztatu Internetera konektatuta zaudela eta saiatu berriro.</translation> <translation id="2332131598580221120">Ikusi dendan</translation> -<translation id="2332192922827071008">Ireki hobespenak</translation> <translation id="2332515770639153015">Arakatze seguru hobetua aktibatuta dago</translation> <translation id="2332742915001411729">Berrezarri balio lehenetsiak</translation> <translation id="2332948465534020594">Ez molestatzeko modua gaituta dago</translation> @@ -1844,6 +1849,7 @@ <translation id="2640299212685523844">Erabili GTK</translation> <translation id="264083724974021997">Konektatu telefonora - Leihoa</translation> <translation id="2642111877055905627">Futboleko baloia</translation> +<translation id="2643064289437760082">Iragarkien neurketen datuak ezabatzeko, ezabatu arakatze-datuak.</translation> <translation id="2643698698624765890">Luzapenak kudeatzeko, sakatu Luzapenak Leihoa menuan.</translation> <translation id="2645047101481282803"><ph name="PROFILE_NAME" /> da gailuaren kudeatzailea</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2303,6 +2309,7 @@ <translation id="3036327949511794916">Pasatu egin da <ph name="DEVICE_TYPE" /> hau itzultzeko epemuga.</translation> <translation id="3036546437875325427">Gaitu Flash</translation> <translation id="3037754279345160234">Ezin da analizatu domeinuan sartzeko konfigurazioa. Jarri administratzailearekin harremanetan.</translation> +<translation id="3038272154009688107">Ikusi webgune guztiak</translation> <translation id="3038612606416062604">Gehitu inprimagailu bat eskuz</translation> <translation id="3039491566278747710">Ezin izan da instalatu konexiorik gabeko gidalerroa gailuan.</translation> <translation id="3043016484125065343">Laster-markak ikusteko, hasi saioa</translation> @@ -2539,6 +2546,7 @@ <translation id="3289668031376215426">Maiuskula automatikoak</translation> <translation id="3289856944988573801">Eguneratzeak bilatzeko, erabili Ethernet- edo wifi-konexioa.</translation> <translation id="3290249595466894471">Gainera, orrien, deskargen, luzapenen jardueren eta sistemaren informazioaren lagin txikiak bidaltzen ditu mehatxu berriak aurkitu ahal izateko.</translation> +<translation id="3293181007446299124">Arakatze-historia pribatu mantentzen da gailuan eta txostenak beranduago bidaltzen dira, zure identitatea babesteko.</translation> <translation id="3293644607209440645">Bidali orri hau</translation> <translation id="32939749466444286">Ez da abiarazi Linux edukiontzia. Saiatu berriro.</translation> <translation id="3294437725009624529">Gonbidatua</translation> @@ -3319,6 +3327,7 @@ <translation id="3984431586879874039">Zure segurtasun-giltza ikusteko baimena eman nahi diozu webgune honi?</translation> <translation id="398477389655464998">Kopiatu nabarmendutako testurako esteka</translation> <translation id="3984862166739904574">Erantzun bizkorrak, definizioa</translation> +<translation id="3985022125189960801">Webgune batek zer gustatzen zaizun igarri ahal izatea nahi baduzu, gehi ezazu berriro</translation> <translation id="3987544746655539083">Jarraitu blokeatzen webguneari kokapena atzitzeko aukera</translation> <translation id="3987938432087324095">Ez dizut ulertu.</translation> <translation id="3987993985790029246">Kopiatu esteka</translation> @@ -3696,6 +3705,7 @@ <translation id="4366138410738374926">Inprimatzen hasi da</translation> <translation id="4367513928820380646">Berrikusi kendutako baimenak</translation> <translation id="4369215744064167350">Onartu egin da webgunea atzitzeko eskaera</translation> +<translation id="4369735607080757018">Iragarkien errendimendua neurtzeko, datu mota jakin batzuk soilik partekatzen dituzte webguneek elkarrekin; adibidez, zer ordutan erakutsi dizuten iragarki bat.</translation> <translation id="4370975561335139969">Idatzitako helbide elektronikoa eta pasahitza ez datoz bat</translation> <translation id="4374831787438678295">Linux-en instalatzailea</translation> <translation id="4375035964737468845">Ireki deskargatutako fitxategiak</translation> @@ -3716,6 +3726,7 @@ <translation id="4385146930797718821">Kopiatu da pantaila-argazkia arbelean</translation> <translation id="4385905942116811558">Bluetooth eta USB bidezko gailuak bilatzen</translation> <translation id="4387890294700445764">Arriskuan dauden pasahitzak</translation> +<translation id="4388650384344483842">Erabili zortzi karaktere gutxienez</translation> <translation id="4389091756366370506"><ph name="VALUE" /> erabiltzailea</translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> eta beste <ph name="NUMBER_OF_OTHER_SWITCHES" /> erabilerraztasun-etengailu</translation> <translation id="439266289085815679"><ph name="USER_EMAIL" /> erabiltzaileak kontrolatzen du Bluetooth konfigurazioa.</translation> @@ -4037,6 +4048,7 @@ <translation id="4666472247053585787">Jaso telefonoko jakinarazpenak <ph name="DEVICE_TYPE" /> gailuan</translation> <translation id="4666911709726371538">Aplikazio gehiago</translation> <translation id="4667027203988048332">Zein datu erabiltzen dira?</translation> +<translation id="4668279686271488041">Iragarkien neurketen datuak maiz ezabatzen dira gailutik.</translation> <translation id="4672759829555593783">Ireki <ph name="FILE_NAME" /></translation> <translation id="46733273239502219">Garbitu egingo dira instalatutako aplikazioetako konexiorik gabe erabiltzeko datu guztiak</translation> <translation id="4673442866648850031">Ireki arkatzaren tresnak arkatza kendu ondoren</translation> @@ -4230,6 +4242,7 @@ <translation id="485480310608090163">Ezarpen eta baimen gehiago</translation> <translation id="4858913220355269194">Mikel</translation> <translation id="4862642413395066333">OCSP erantzunak sinatzen</translation> +<translation id="4863702650881330715">Hedatu bateragarritasuna</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> × <ph name="HEIGHT" /> dirudi (lehenetsia)</translation> <translation id="4864805589453749318">Hautatu zer gurasok emango duen baimena ikastetxeko kontu bat gehitzeko.</translation> <translation id="486635084936119914">Ireki fitxategi mota jakin batzuk deskargatu bezain laster</translation> @@ -4278,7 +4291,6 @@ <translation id="4893336867552636863">Hori eginez gero, betiko ezabatuko dira gailuko arakatze-datuak.</translation> <translation id="4893454800196085005">Ona: DVDa</translation> <translation id="4893522937062257019">Pantaila blokeatuan</translation> -<translation id="4897496410259333978">Informazio gehiago lortzeko, jarri administratzailearekin harremanetan.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" ziurtagiria autoritate ziurtagiri-emaile batena da</translation> <translation id="4899052647152077033">Koloreak alderantzikatzeko eginbidea</translation> <translation id="4899696330053002588">Iragarkiak ditu</translation> @@ -4476,6 +4488,7 @@ <translation id="5094721898978802975">Komunikatu aplikazio lankide natiboekin</translation> <translation id="5097002363526479830">Ezin izan da "<ph name="NAME" />" sarera konektatu: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Lortu kokapena erabiltzeari buruzko informazio gehiago</translation> +<translation id="5097349930204431044">Bisitatzen dituzun webguneek zer gustatzen zaizun zehatz dezakete, eta, arakatzen jarraitzen duzunean, iragarkiak iradoki</translation> <translation id="5097649414558628673">Tresna: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Sakatu automatikoki kurtsorea gelditzen denean</translation> <translation id="5101683448725092498">Egin zure gauzen babeskopiak</translation> @@ -4658,6 +4671,7 @@ <translation id="5275352920323889391">Txakurra</translation> <translation id="527605719918376753">Desaktibatu fitxaren audioa</translation> <translation id="527605982717517565">Eman beti JavaScript <ph name="HOST" /> ostalarian erabiltzeko baimena</translation> +<translation id="5276357196618041410">Ezin da gorde konfigurazioa saioa hasi ez bada</translation> <translation id="5277127016695466621">Erakutsi alboko panela</translation> <translation id="5278823018825269962">Egoeraren IDa</translation> <translation id="5279600392753459966">Blokeatu guztiak</translation> @@ -5809,7 +5823,6 @@ <translation id="6347010704471250799">Erakutsi jakinarazpena</translation> <translation id="6349101878882523185">Instalatu <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG kurba eliptikoko secp256r1 (edo, bestela esanda: ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Arakatzaile esperimentala (alfa kalitatea). Eginbide batzuk falta dira edo ez daude osatuta. Arazoren bat aurkituz gero, jakinaraz ezazu hemen: Laguntza > "Eman arazo baten berri…".</translation> <translation id="635609604405270300">Mantendu gailua piztuta</translation> <translation id="63566973648609420">Pasaesaldia duten pertsonek soilik irakur ditzakete enkriptatutako datuak. Pasaesaldia ez da Google-ra bidaltzen, ezta bertan gordetzen ere. Pasaesaldia ahazten bazaizu edo ezarpena aldatu nahi baduzu, sinkronizazioa berrezarri beharko duzu. <ph name="BEGIN_LINK" />Berrezarri sinkronizazioa<ph name="END_LINK" /></translation> <translation id="6357305427698525450">Laguntza emateko esteka batzuek <ph name="APP_NAME" /> edo <ph name="APP_NAME_2" /> aplikazioan irekitzen jarraituko dute.</translation> @@ -6149,6 +6162,7 @@ <translation id="6670767097276846646">Luzapen batzuek bilatzaileak gehitzen dituzte Chrome-n</translation> <translation id="6671320560732140690">{COUNT,plural, =1{helbide bat}other{# helbide}}</translation> <translation id="6671497123040790595">Kudeaketa konfiguratzen ari da <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Gehitu <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Sinkronizatzen hasteko, idatzi pasaesaldia</translation> <translation id="6675665718701918026">Konektatu da gailu erakuslea</translation> @@ -6232,6 +6246,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (ezkutuko moduan)</translation> <translation id="6756157672127672536">Fitxategiak aplikazioarekin, azkar atzituko dituzu Google Drive-n, kanpoko memorian edo Chrome OS-ko gailuan gordeta dauzkazun fitxategiak.</translation> <translation id="6756643207511618722">Hizketa-motorrak</translation> +<translation id="6757431299485455321">Lagundu beste gailuei wifi-gune hau aurkitzen.</translation> <translation id="6758056191028427665">Eman iritzia.</translation> <translation id="6759193508432371551">Jatorrizko datuak berrezartzea</translation> <translation id="6761431452438552910">Ziurtatu Bluetooth bidezko gailua gertu eta parekatzeko moduan dagoela. Parekatu gailu fidagarriekin soilik.</translation> @@ -6331,6 +6346,7 @@ <translation id="6833479554815567477"><ph name="GROUP_NAME" /> taldetik kendu da fitxa (<ph name="GROUP_CONTENTS" />)</translation> <translation id="683373380308365518">Aldatu arakatzaile adimendun eta seguru batera</translation> <translation id="6833996806551876956">Privacy Sandbox-aren probaldia</translation> +<translation id="6835712061486505758">Sortu wifi-gune bat beste gailu batzuei Internet erabiltzeko aukera emateko. <ph name="BEGIN_LINK_LEARN_MORE" />Lortu informazio gehiago<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563"><ph name="DEVICE_TYPE" /> eguneratzeko, konektatu Internetera.</translation> <translation id="6839225236531462745">Errore bat gertatu da ziurtagiria ezabatzean</translation> <translation id="6839916869147598086">Aldatu egin da saioa hasteko modua</translation> @@ -6492,6 +6508,7 @@ <translation id="697508444536771064">Itxi Linux</translation> <translation id="6975361011348772931">Edukia irakurri eta aldatzeko baimena eskatu da</translation> <translation id="6978121630131642226">Bilatzaileak</translation> +<translation id="6978717888677691380">Blokeatu dituzun webguneak</translation> <translation id="6979041727349121225">Energia-aurreztailea</translation> <translation id="6979044105893951891">Abiarazi eta amaitu gonbidatuentzako saio kudeatuak</translation> <translation id="6979440798594660689">Desaktibatu audioa (lehenetsia)</translation> @@ -6583,6 +6600,7 @@ <translation id="7047059339731138197">Aukeratu atzeko plano bat</translation> <translation id="7048457618657122233">Partekatu esteka hemen: <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Fitxategia gorde nahi duzu?</translation> +<translation id="7050037487872780845">Wifi-gunearen konfigurazioak ez du balio</translation> <translation id="7052237160939977163">Bidali errendimenduaren jarraipena egiteko datuak</translation> <translation id="7053983685419859001">Blokeatu</translation> <translation id="7055152154916055070">Birbideratze hau blokeatu da:</translation> @@ -6787,6 +6805,7 @@ <translation id="7258192266780953209">Eraldaketak</translation> <translation id="7258225044283673131">Aplikazioak ez du erantzuten. Ixteko, hautatu "Behartu ixtera".</translation> <translation id="7260186537988033909">Osatu da gailuaren erregistroa (kiosko eta seinaleztatze modua)</translation> +<translation id="7260367682327802201">Baliteke Android-eko gailuak antzeko ezarpen bat izatea. Chrome-n eta Android-eko gailuan Iragarkien neurketa aktibatuta badaukazu, erabiltzen dituzun webgune eta aplikazioetan agertzen diren iragarkien eraginkortasuna neurtu ahal izango dute enpresek.</translation> <translation id="7262004276116528033">Saioa hasteko zerbitzuaren ostalaria <ph name="SAML_DOMAIN" /> da</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{1 webguneri kendu zaizkio baimenak}other{{NUM_SITES} webguneri kendu zaizkie baimenak}}</translation> <translation id="7264695323040866038">Beti <ph name="APP" /> aplikazioa erabili nahi duzu web-esteka bateragarriak irekitzeko?</translation> @@ -6930,6 +6949,7 @@ <translation id="7406912950279255498">Koloreak alderantzikatzeko modua</translation> <translation id="7407430846095439694">Inportatu eta lotu</translation> <translation id="7407504355934009739">Jende gehienak blokeatu egiten ditu webgune honen jakinarazpenak</translation> +<translation id="7408080603962564527">Besteentzat ikusgai egongo da</translation> <translation id="740810853557944681">Gehitu inprimatze-zerbitzari bat</translation> <translation id="7409549334477097887">Oso-oso handia</translation> <translation id="7409599290172516453">Azken argazkiak</translation> @@ -6968,7 +6988,6 @@ <translation id="7434757724413878233">Saguaren erabilera bizkortua</translation> <translation id="7434969625063495310">Ezin izan da gehitu inprimatze-zerbitzaria. Egiaztatu ongi konfiguratuta dagoela eta saiatu berriro.</translation> <translation id="7436921188514130341">Errore bat gertatu da izena aldatzean.</translation> -<translation id="7438495332316988804">Abiarazlean "Chrome" idatzita aurkituko duzu arakatzaile lehenetsia.</translation> <translation id="7439519621174723623">Idatzi gailu-izen bat aurrera egiteko</translation> <translation id="7441736921018636843">Ezarpena aldatzeko, <ph name="BEGIN_LINK" />berrezarri sinkronizazioa<ph name="END_LINK" /> sinkronizazio-pasaesaldia kentzeko</translation> <translation id="7441830548568730290">Beste erabiltzaile batzuk</translation> @@ -7245,6 +7264,7 @@ <translation id="7684718995427157417">Zeure aplikazioak sortu eta probatzeko, gaitu Android Debug Bridge (ADB). Kontuan izan ekintza honekin baimendu egiten dela Google-k egiaztatu ez dituen Android-erako aplikazioak instalatzeko aukera eta, inoiz tresna hori desgaitu nahi izanez gero, jatorrizko datuak berrezarri beharko direla.</translation> <translation id="7685049629764448582">JavaScript memoria</translation> <translation id="7685087414635069102">PINa behar da</translation> +<translation id="7686086654630106285">Webguneek iradokitako iragarkiei buruzko informazio gehiago</translation> <translation id="7686581688229391955">Webgune honetan luzapen guztiak baimentzeko, hautatu hau</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Berretsi pasahitz berria</translation> @@ -7266,6 +7286,7 @@ <translation id="7704317875155739195">Bete automatikoki bilaketak eta URLak</translation> <translation id="7704521324619958564">Ireki Play Store</translation> <translation id="7705276765467986571">Ezin izan da laster-marken modeloa kargatu.</translation> +<translation id="7705334495398865155">Antolatu ausaz hardwarearen IDa (BSSIDa) beste pertsonei gailuaren jarraipena egitea galarazteko.</translation> <translation id="7705524343798198388">VPNa</translation> <translation id="7707108266051544351">Webgune honi mugimendu-sentsoreak erabiltzeko aukera blokeatu zaio.</translation> <translation id="7707922173985738739">Erabili datu-konexioa</translation> @@ -7459,6 +7480,7 @@ <translation id="7881483672146086348">Ikusi kontua</translation> <translation id="7883792253546618164">Edonoiz ken dezakezu harpidetza.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Berrikusi jakinarazpen asko bidali dituen webgune bat}other{Berrikusi jakinarazpen asko bidali dituzten {NUM_SITES} webgune}}</translation> +<translation id="7884446017008693258">Wifi-gunearen ezarpenak</translation> <translation id="788453346724465748">Kontuari buruzko informazioa kargatzen…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{elementu bat}other{# elementu}}</translation> <translation id="7886605625338676841">eSIM sareak</translation> @@ -7546,6 +7568,7 @@ <translation id="7952904276017482715">"<ph name="EXPECTED_ID" />" IDa espero zen, baina "<ph name="NEW_ID" />" da IDa</translation> <translation id="7953669802889559161">Idazketa-metodoak</translation> <translation id="7953955868932471628">Kudeatu lasterbideak</translation> +<translation id="7955105108888461311">Eska iezadazu zuzenean</translation> <translation id="7955177647836564772">Smart Lock aktibatuta badago eta telefonoa, berriz, desblokeatuta, ez duzu pasahitzik edo PINik idatzi behar</translation> <translation id="7956373551960864128">Gordetako inprimagailuak</translation> <translation id="7957074856830851026">Ikusi gailuaren informazioa, hala nola serie-zenbakia edo baliabidearen IDa</translation> @@ -7683,6 +7706,7 @@ <ph name="BEGIN_PARAGRAPH3" />Ezarpenak atalean desaktiba dezakezu zerbitzu hori.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Fitxak</translation> <translation id="8076835018653442223">Administratzaileak zure gailuko fitxategi lokaletarako sarbidea blokeatu du</translation> +<translation id="8077120325605624147">Bisitatzen dituzun webgune guztiek edozein iragarki erakusteko aukera dute</translation> <translation id="80798452873915119">Webguneek leihoak pantaila guztietan kudeatzea eska dezakete</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289"><ph name="MANAGER_NAME" /> bidez kudeatzen da saioa. Administratzaileek zure profila ezaba dezakete, eta sareko trafikoa gainbegiratu.</translation> @@ -8195,6 +8219,7 @@ <translation id="8557180006508471423">Aktibatu "Google Chrome" Mac-eko Kokapen-zerbitzuak ezarpenean</translation> <translation id="8557856025359704738">Hurrengo deskargaren ordua: <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Sarbide-gakoak</translation> +<translation id="8559961053328923750">Chrome-k mugatu egiten du webguneek arakatzailearen bidez iragarkien errendimendua neurtzeko parteka dezaketen datu kopurua.</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Ireki guztiak &beste leiho batean}=1{Ireki &beste leiho batean}other{Ireki guztiak ({COUNT}) &beste leiho batean}}</translation> <translation id="8561206103590473338">Elefantea</translation> <translation id="8561565784790166472">Kontuz ibili</translation> @@ -8336,6 +8361,7 @@ <translation id="8678933587484842200">Nola abiarazi behar da aplikazio hau?</translation> <translation id="8680251145628383637">Hasi saioa laster-markak, historia eta bestelako ezarpenak gailu guztietan sinkronizatuta izateko. Google-ren zerbitzuetan ere automatikoki hasiko duzu saioa.</translation> <translation id="8681614230122836773">Chrome-k software kaltegarria aurkitu du ordenagailuan</translation> +<translation id="8681886425883659911">Iragarki oztopatzaileak edo engainagarriak erakusten dituzten webguneak blokeatzen dira</translation> <translation id="8682730193597992579">Konektatu da eta prest dago <ph name="PRINTER_NAME" /></translation> <translation id="8687103160920393343">Utzi <ph name="FILE_NAME" /> deskargatzeari</translation> <translation id="8688672835843460752">Erabilgarri</translation> @@ -8706,6 +8732,7 @@ <translation id="9021662811137657072">Birus bat hauteman da</translation> <translation id="902236149563113779">Webguneek kameraren posizioaren jarraipena egin ohi dute errealitate areagotua darabilten eginbideak eskaintzeko, hala nola jokoak edo errealitate areagotuko jarraibideak</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ari da dagoeneko kontu hau erabiltzen ordenagailuan.</translation> +<translation id="9022871169049522985">Webguneek eta iragarleek beren iragarkien errendimendua neur dezakete</translation> <translation id="9023015617655685412">Egin fitxa honen laster-marka…</translation> <translation id="9023909777842748145">Eginbidea desaktibatuta ere, gailuak beharrezko informazioa bidaltzen jarraitu ahal izango du funtsezko zerbitzuak jasotzeko, hala nola sistemaren eguneratzeak eta segurtasuna.</translation> <translation id="9024127637873500333">&Ireki fitxa berri batean</translation> @@ -8835,6 +8862,7 @@ <translation id="9128335130883257666">Ireki <ph name="INPUT_METHOD_NAME" /> idazketa-metodoaren ezarpenen orria</translation> <translation id="9128870381267983090">Konektatu sarera</translation> <translation id="9130015405878219958">Sartutako moduak ez du balio.</translation> +<translation id="9131209053278896908">Blokeatutako webguneak hemen agertzen dira</translation> <translation id="9131487537093447019">Bidali mezuak Bluetooth bidezko gailuetara eta jaso haien mezuak.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 laster-marka}other{# laster-marka}}</translation> <translation id="9134066738478820307">Webguneek identifikatzaileak erabil ditzakete eduki babestua erreproduzitzeko</translation> @@ -8888,6 +8916,7 @@ <translation id="9180281769944411366">Baliteke prozesuak minutu batzuk behar izatea. Linux edukiontzia abiarazten.</translation> <translation id="9180380851667544951">Webguneak pantaila parteka dezake</translation> <translation id="9182556968660520230">Ez eman eduki babestua erreproduzitzeko baimena webguneei</translation> +<translation id="9183331776983279456">Chrome-k automatikoki ezabatzen ditu lau aste baino gehiago dituzten webguneak. Baliteke beste behin bisitatzen duzun webgune bat berriro ere zerrendan agertzea. Era berean, webgune bat blokeatuta, zuretzako iragarkiak iradokitzea galaraz diezaiokezu.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Aplikazioa}other{# aplikazio}}</translation> <translation id="9186963452600581158">Hasi saioa haurraren Google-ko kontuan</translation> <translation id="9187967020623675250">Teklak ez datoz bat. Sakatu edozein tekla <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index aa95b35..1c4a7e2 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -767,6 +767,7 @@ <translation id="168715261339224929">برای دریافت نشانکها در همه دستگاههایتان، همگامسازی را روشن کنید.</translation> <translation id="1688867105868176567">دادههای سایت پاک شود؟</translation> <translation id="1688935057616748272">حرفی تایپ کنید</translation> +<translation id="1689333818294560261">نام مستعار</translation> <translation id="168991973552362966">افزودن چاپگری در این اطراف</translation> <translation id="1689945336726856614">کپی کردن &نشانی وب</translation> <translation id="1692115862433274081">استفاده از یک حساب دیگر</translation> @@ -1522,7 +1523,6 @@ <translation id="2329597144923131178">برای دریافت نشانکها، سابقه، گذرواژهها و سایر تنظیماتتان در همه دستگاهها، وارد سیستم شوید.</translation> <translation id="2332115969598251205">دستگاههای ذخیرهشده در <ph name="PRIMARY_EMAIL" /> بار نشد. اتصال اینترنت را بررسی کرده و دوباره امتحان کنید.</translation> <translation id="2332131598580221120">مشاهده در فروشگاه</translation> -<translation id="2332192922827071008">باز کردن اولویتها</translation> <translation id="2332515770639153015">«مرور ایمن پیشرفته» روشن است</translation> <translation id="2332742915001411729">بازنشانی روی موارد پیشفرض</translation> <translation id="2332948465534020594">«مزاحم نشوید» فعال است</translation> @@ -4291,7 +4291,6 @@ <translation id="4893336867552636863">این کار داده مرور شما را برای همیشه از روی این دستگاه حذف میکند.</translation> <translation id="4893454800196085005">خوب - DVD</translation> <translation id="4893522937062257019">در صفحه قفل</translation> -<translation id="4897496410259333978">برای اطلاعات بیشتر با سرپرست سیستم تماس بگیرید؛</translation> <translation id="4898011734382862273">مجوز «<ph name="CERTIFICATE_NAME" />» نشاندهنده یک ارائهدهنده مجوز است</translation> <translation id="4899052647152077033">نگاتیو</translation> <translation id="4899696330053002588">حاوی آگهی است</translation> @@ -5825,7 +5824,6 @@ <translation id="6347010704471250799">نمایش اعلان</translation> <translation id="6349101878882523185">نصب <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">منحنی بیضوی SECG مدل secp256r1 (بهنام ANSI X9.62 prime256v1، NIST P-256)</translation> -<translation id="6355789186038748882">مرورگر آزمایشی (با کیفیت آلفا)! برخی از ویژگیها ناقص هستند یا وجود ندارند. مشکلات را از این طریق گزارش کنید: «راهنمایی > گزارش مشکل…».</translation> <translation id="635609604405270300">روشن نگهداشتن دستگاه</translation> <translation id="63566973648609420">فقط فردی که گذرعبارت شما را دارد میتواند اطلاعات رمزگذاریشدهتان را بخواند. این گذرعبارت به Google ارسال یا در سرورهای آن ذخیره نمیشود. اگر گذرعبارتتان را فراموش کنید، باید همگامسازی را بازنشانی کنید. <ph name="BEGIN_LINK" />بازنشانی همگامسازی<ph name="END_LINK" /></translation> <translation id="6357305427698525450">برخیاز پیوندهای پشتیبانیشده همچنان در <ph name="APP_NAME" /> یا <ph name="APP_NAME_2" /> باز خواهد شد.</translation> @@ -6986,7 +6984,6 @@ <translation id="7434757724413878233">شتاب موشواره</translation> <translation id="7434969625063495310">سرور چاپ اضافه نشد. لطفاً پیکربندی سرور را بررسی و دوباره امتحان کنید.</translation> <translation id="7436921188514130341">اوه، نه! درحین تغییر نام خطایی رخ داد.</translation> -<translation id="7438495332316988804">میتوانید مرورگر استاندارد را با تایپ کردن «Chrome» در «راهانداز» پیدا کنید.</translation> <translation id="7439519621174723623">برای ادامه، نام دستگاه را اضافه کنید</translation> <translation id="7441736921018636843">برای تغییر این تنظیم، <ph name="BEGIN_LINK" />همگامسازی را بازنشانی کنید<ph name="END_LINK" /> تا گذرعبارت همگامسازی حذف شود</translation> <translation id="7441830548568730290">کاربران دیگر</translation> @@ -7563,6 +7560,7 @@ <translation id="7952904276017482715">شناسه موردانتظار «<ph name="EXPECTED_ID" />» است، اما شناسه «<ph name="NEW_ID" />» بود</translation> <translation id="7953669802889559161">ورودیها</translation> <translation id="7953955868932471628">مدیریت میانبرها</translation> +<translation id="7955105108888461311">درخواست حضوری</translation> <translation id="7955177647836564772">اگر Smart Lock روشن باشد و قفل تلفنتان باز باشد، لازم نیست گذرواژه یا پین را وارد کنید</translation> <translation id="7956373551960864128">چاپگرهای ذخیرهشده شما</translation> <translation id="7957074856830851026">دیدن اطلاعات دستگاه، مانند شماره سریال یا شناسه دارایی آن</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 7f179c1..cafac0ca 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -773,6 +773,7 @@ <translation id="168715261339224929">Ota synkronointi käyttöön, niin voit käyttää kirjanmerkkejä kaikilla laitteillasi.</translation> <translation id="1688867105868176567">Tyhjennetäänkö sivustotiedot?</translation> <translation id="1688935057616748272">Kirjoita kirjain</translation> +<translation id="1689333818294560261">Lempinimi</translation> <translation id="168991973552362966">Lisää lähellä oleva tulostin</translation> <translation id="1689945336726856614">Kopioi &URL-osoite</translation> <translation id="1692115862433274081">Käytä toista tiliä</translation> @@ -1529,7 +1530,6 @@ <translation id="2329597144923131178">Kirjaudu ja käytä kirjanm., historiaa, salasan. ja muita asetuksia kaikissa laitteissasi.</translation> <translation id="2332115969598251205">Osoitteeseen <ph name="PRIMARY_EMAIL" /> tallennettuja laitteita ei voi ladata. Tarkista internetyhteytesi ja yritä uudelleen.</translation> <translation id="2332131598580221120">Näytä Web Storessa</translation> -<translation id="2332192922827071008">Siirry valintoihin</translation> <translation id="2332515770639153015">Parannettu selaussuoja on päällä</translation> <translation id="2332742915001411729">Palauta oletusarvo</translation> <translation id="2332948465534020594">Älä häiritse ‑tila käytössä</translation> @@ -4296,7 +4296,6 @@ <translation id="4893336867552636863">Tämä poistaa pysyvästi selaustietosi tältä laitteelta.</translation> <translation id="4893454800196085005">Hyvä – DVD</translation> <translation id="4893522937062257019">Lukitusnäytöllä</translation> -<translation id="4897496410259333978">Saat lisätietoja järjestelmänvalvojaltasi.</translation> <translation id="4898011734382862273">Varmenne <ph name="CERTIFICATE_NAME" /> edustaa varmenteen myöntäjää.</translation> <translation id="4899052647152077033">Käänteiset värit</translation> <translation id="4899696330053002588">Sisältää mainoksia</translation> @@ -5830,7 +5829,6 @@ <translation id="6347010704471250799">Näytä ilmoitus</translation> <translation id="6349101878882523185">Asenna <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptinen käyrä secp256r1 (eli ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Kokeellinen (alfa-tasoinen) selain! Jotkin ominaisuudet puuttuvat tai eivät ole valmiita. Ilmoita ongelmista kohdassa Ohje > "Ilmoita ongelmasta…".</translation> <translation id="635609604405270300">Pidä laite päällä</translation> <translation id="63566973648609420">Salattuja tietojasi voi lukea vain tunnuslauseesi avulla. Tunnuslausetta ei lähetetä Googlelle eikä Google tallenna sitä. Jos unohdat tunnuslauseesi tai haluat muokata tätä asetusta, <ph name="BEGIN_LINK" />synkronointi on nollattava<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Jotkin tuetut linkit avautuvat edelleen näissä sovelluksissa: <ph name="APP_NAME" /> tai <ph name="APP_NAME_2" />.</translation> @@ -6989,7 +6987,6 @@ <translation id="7434757724413878233">Hiiren nopeuttaminen</translation> <translation id="7434969625063495310">Tulostuspalvelinta ei voitu asentaa. Tarkista palvelimen asetukset ja yritä uudelleen.</translation> <translation id="7436921188514130341">Harmin paikka! Uudelleennimeämisen aikana tapahtui virhe.</translation> -<translation id="7438495332316988804">Vakioselain löytyy kirjoittamalla Käynnistysohjelmaan "Chrome".</translation> <translation id="7439519621174723623">Jatka lisäämällä laitteen nimi</translation> <translation id="7441736921018636843">Jos haluat muuttaa tätä, <ph name="BEGIN_LINK" />nollaa synkronointi<ph name="END_LINK" /> poistaaksesi synkronoinnin tunnuslauseen</translation> <translation id="7441830548568730290">Muut käyttäjät</translation> @@ -7566,6 +7563,7 @@ <translation id="7952904276017482715">Tunnusta <ph name="EXPECTED_ID" /> odotettiin, mutta tunnus oli <ph name="NEW_ID" />.</translation> <translation id="7953669802889559161">Syötteet</translation> <translation id="7953955868932471628">Hallinnoi pikanäppäimiä</translation> +<translation id="7955105108888461311">Kysy henkilökohtaisesti</translation> <translation id="7955177647836564772">Jos Smart Lock on päällä ja puhelimesi on lukitsematon, salasanaa tai PIN-koodia ei tarvitse lisätä</translation> <translation id="7956373551960864128">Tallentamasi tulostimet</translation> <translation id="7957074856830851026">Katso laitteen tietoja, esim. sarjanumero tai sisältökohteen tunnus</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index e876dc8..a2428de 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Hindi tumutugon ang page na ito</translation> <translation id="1041263367839475438">Mga available na device</translation> <translation id="1042174272890264476">Ang iyong computer ay may naka-built in din na RLZ library ng <ph name="SHORT_PRODUCT_NAME" />. Nagtatalaga ang RLZ ng hindi natatangi at hindi personal na nakakapagpakilalang tag upang sukatin ang mga paghahanap at paggamit ng <ph name="SHORT_PRODUCT_NAME" /> na nahimok ng isang partikular na kampanya sa pag-promote. Lumalabas minsan ang mga label na ito sa mga query sa Paghahanap sa Google sa <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">Kumonekta sa mobile data para makagamit ng hotspot. <ph name="BEGIN_LINK_LEARN_MORE" />Matuto pa<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Nagkaproblema. Puwede lang bahagyang i-upgrade ang Linux. Suriin ang mga log para sa higit pang impormasyon. Na-save ang mga log sa Mga File > Aking mga file > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Istilo ng Keymap</translation> <translation id="104710386808485638">I-restart ang Linux?</translation> @@ -158,6 +159,7 @@ <translation id="1139923033416533844">Paggamit ng Memory</translation> <translation id="1140351953533677694">I-access ang iyong mga Bluetooth at Serial device</translation> <translation id="114036956334641753">Audio at mga caption</translation> +<translation id="1141949282671776404">Habang hindi aktibo ang tab na ito, nagbakante ang Memory Saver ng <ph name="MEMORY_VALUE" /> ng memory para sa iba pang gawain.</translation> <translation id="1142002900084379065">Mga pinakabagong larawan</translation> <translation id="1143142264369994168">Tagapaglagda ng Certificate</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Walang nakitang mapaminsalang software ang Chrome sa iyong computer • Tiningnan 1 minuto ang nakalipas}one{Walang nakitang mapaminsalang software ang Chrome sa iyong computer • Tiningnan {NUM_MINS} minuto ang nakalipas}other{Walang nakitang mapaminsalang software ang Chrome sa iyong computer • Tiningnan {NUM_MINS} na minuto ang nakalipas}}</translation> @@ -318,6 +320,7 @@ <translation id="1285320974508926690">Huwag isalin kailanman ang site na ito</translation> <translation id="1285484354230578868">Mag-imbak ng data sa iyong Google Drive account</translation> <translation id="1285625592773741684">Mobile Data ang kasalukuyang setting ng paggamit ng data</translation> +<translation id="1285815028662278915">Posibleng hindi sinusuportahan ng iyong mobile data ang hotspot. <ph name="BEGIN_LINK_LEARN_MORE" />Matuto pa<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Awtomatikong mag-o-on ang Night Light sa paglubog ng araw</translation> <translation id="1288300545283011870">Mga Property ng Pagsasalita</translation> <translation id="1289619947962767206">Hindi na sinusuportahan ang opsyong ito. Para mag-present ng tab, gamitin ang <ph name="GOOGLE_MEET" />.</translation> @@ -340,6 +343,7 @@ <translation id="1307165550267142340">Nagawa ang iyong PIN</translation> <translation id="1307431692088049276">Huwag akong tanungin ulit</translation> <translation id="1307559529304613120">Oops! Nabigo ang system na i-imbak ang pangmatagalang token sa pag-access sa API para sa device na ito.</translation> +<translation id="131112695174432497">Dine-delete ang data na nakakaapekto sa pag-personalize ng ad</translation> <translation id="1312811472299082263">Gumawa mula sa isang Ansible Playbook o Crostini na backup file</translation> <translation id="1313264149528821971">Inalis ang <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, <ph name="PERMISSION_3" /></translation> <translation id="1313405956111467313">Awtomatikong proxy configuration</translation> @@ -501,6 +505,7 @@ <translation id="1457907785077086338">Kulay ng badge ng app</translation> <translation id="146000042969587795">Ang frame na ito ay naharang dahil naglalaman ito ng ilang nilalaman na insecure.</translation> <translation id="1461041542809785877">Pagganap</translation> +<translation id="1461177659295855031">Lumipat sa folder na Bookmarks Bar</translation> <translation id="146219525117638703">Estado ng ONC</translation> <translation id="146220085323579959">Nadiskonekta ang Internet. Pakisuri ang iyong koneksyon sa internet at subukan ulit.</translation> <translation id="1462850958694534228">Suriin ang update sa icon</translation> @@ -553,6 +558,7 @@ <translation id="1509163368529404530">&I-restore ang grupo</translation> <translation id="1509281256533087115">I-access ang anumang <ph name="DEVICE_NAME_AND_VENDOR" /> sa pamamagitan ng USB</translation> <translation id="1510238584712386396">Launcher</translation> +<translation id="1510341833810331442">Hindi pinapayagan ang mga site na mag-save ng data sa iyong device</translation> <translation id="1510785804673676069">Kung gumagamit ka ng proxy server, tingnan ang iyong mga setting ng proxy o makipag-ugnayan sa administrator ng iyong network upang matiyak na gumagana ang proxy server. Kung hindi ka naniniwalang dapat kang gumamit @@ -655,6 +661,7 @@ <translation id="1596286373007273895">Available</translation> <translation id="1596709061955594992">Naka-off ang Bluetooth. Para makita ang mga available na device, i-on ang Bluetooth.</translation> <translation id="1596780725094407793">- kasama ang mga subdomain</translation> +<translation id="1598163867407640634">Gamitin ang <ph name="SITE_ETLD_PLUS_ONE" /> gamit ang <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Na-disable ng iyong administrator ang mga update.</translation> <translation id="1600857548979126453">I-access ang backend ng debugger ng pahina</translation> <translation id="1601560923496285236">Ilapat</translation> @@ -770,6 +777,7 @@ <translation id="168715261339224929">Para mailagay ang iyong mga bookmark sa lahat ng device mo, i-on ang sync.</translation> <translation id="1688867105868176567">I-clear ang data ng site?</translation> <translation id="1688935057616748272">Mag-type ng titik</translation> +<translation id="1689333818294560261">Nickname</translation> <translation id="168991973552362966">Magdagdag ng kalapit na printer</translation> <translation id="1689945336726856614">Kopyahin ang &URL</translation> <translation id="1692115862433274081">Gumamit ng ibang account</translation> @@ -870,6 +878,7 @@ <translation id="1776883657531386793"><ph name="OID" />: <ph name="INFO" /></translation> <translation id="1778457539567749232">Markahan bilang hindi pa nababasa</translation> <translation id="1778991607452011493">Magpadala ng mga log ng debug (inirerekomenda)</translation> +<translation id="1779441632304440041">Madaling hulaan ang mahihinang password. Tiyaking malalakas na password ang gagawin mo.</translation> <translation id="1779468444204342338">Minimum</translation> <translation id="177989070088644880">App (<ph name="ANDROID_PACKAGE_NAME" />)</translation> <translation id="1780152987505130652">Isara ang Grupo</translation> @@ -898,6 +907,7 @@ <translation id="1802687198411089702">Hindi tumutugon ang page. Maaari mo itong hintayin o maaari kang lumabas.</translation> <translation id="1803531841600994172">Wika kung saan ita-translate</translation> <translation id="1803545009660609783">I-retrain</translation> +<translation id="1805545709333681504">Ilagay ang lumang password</translation> <translation id="1805738995123446102">Ginagamit ng tab sa background ang iyong mikropono</translation> <translation id="1805822111539868586">Siyasatin ang mga view</translation> <translation id="1805888043020974594">Server sa pag-print</translation> @@ -1241,6 +1251,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Tandaan:<ph name="END_BOLD" /> Mare-reboot ang system sa panahon ng proseso.</translation> <translation id="2095774564753225041">Mga sinusuportahang uri ng file</translation> +<translation id="2097616539631531348">Habang hindi aktibo ang tab na ito, nagbakante ang Memory Saver ng memory para sa iba pang gawain.</translation> <translation id="2098805196501063469">Suriin ang mga natitirang password</translation> <translation id="2099686503067610784">Tanggalin ang certificate ng server na "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="2100273922101894616">Awtomatikong Mag-sign in</translation> @@ -1526,7 +1537,6 @@ <translation id="2329597144923131178">Mag-sign in upang makuha ang iyong mga bookmark, history, password at ibang mga setting sa lahat ng iyong device.</translation> <translation id="2332115969598251205">Hindi ma-load ang mga device na naka-save sa <ph name="PRIMARY_EMAIL" />. Tingnan ang iyong koneksyon sa internet at subukan ulit.</translation> <translation id="2332131598580221120">Tingnan sa store</translation> -<translation id="2332192922827071008">Buksan ang Mga Kagustuhan</translation> <translation id="2332515770639153015">Naka-on ang Pinahusay na Ligtas na Pag-browse</translation> <translation id="2332742915001411729">I-reset sa default</translation> <translation id="2332948465534020594">Naka-enable ang Huwag istorbohin</translation> @@ -1616,6 +1626,7 @@ <translation id="2410298923485357543">Gamitin ang natural na boses kapag online ang device</translation> <translation id="2410754283952462441">Pumili ng account</translation> <translation id="241082044617551207">Hindi kilalang plugin</translation> +<translation id="2410940059315936967">Puwedeng mag-embed ng content mula sa iba pang site ang site na binibisita mo, halimbawa, mga larawan, ad, at text. Ang cookies na itinatakda ng iba pang site na ito ay tinatawag na mga third-party na cookie.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2416435988630956212">Mga function key ng keyboard</translation> <translation id="2418307627282545839">Panatilihing maliwanag at maaliwalas ang mga bagay</translation> @@ -2101,6 +2112,7 @@ <translation id="2844169650293029770">USB-C device (port sa kaliwang bahagi sa harap)</translation> <translation id="2844809857160214557">Tingnan at pamahalaan ang mga pag-print</translation> <translation id="2845382757467349449">Palaging Ipakita ang Bookmarks Bar</translation> +<translation id="2845751331501453107">Habang nagba-browse ka, kung naka-personalize ang isang ad na nakikita mo ay nakadepende sa setting na ito, <ph name="BEGIN_LINK1" />Mga ad na iminumungkahi ng site<ph name="LINK_END1" />, iyong <ph name="BEGIN_LINK2" />mga setting ng cookie<ph name="LINK_END2" />, at kung nagpe-personalize ng mga ad ang site na tinitingnan mo</translation> <translation id="284581348330507117">Gumawa ng mga natatanging password</translation> <translation id="284805635805850872">Alisin ang mapaminsalang software?</translation> <translation id="2849035674501872372">Maghanap</translation> @@ -2164,6 +2176,7 @@ <translation id="2902312830803030883">Higit pang pagkilos</translation> <translation id="2903457445916429186">Buksan ang mga piniling item</translation> <translation id="2903882649406874750">Palaging i-block ang <ph name="HOST" /> sa pag-access sa mga sensor</translation> +<translation id="2904210161403910217">Nagbago ang iyong password mula noong huling beses kang nag-sign in</translation> <translation id="2904845070985032877">I-pause ang mga animation</translation> <translation id="2907619724991574506">Mga URL sa Pag-startup</translation> <translation id="2907798539022650680">Hindi nakakonekta sa '<ph name="NAME" />': <ph name="DETAILS" /> @@ -2246,6 +2259,7 @@ <translation id="2979639724566107830">Buksan ng bagong window</translation> <translation id="2981113813906970160">Ipakita ang malaking mouse cursor</translation> <translation id="2981293774053328982">Naglalaman ang file na ito ng malware na posibleng magkompromiso sa iyong personal na account o mga account sa social network</translation> +<translation id="2983102365694924129">Batay sa iyong aktibidad sa isang site. Naka-off ang setting na ito.</translation> <translation id="2983373101216420412"><ph name="PERCENTAGE" />% antas ng baterya ng case.</translation> <translation id="2985348301114641460">Magpadala ng kahilingan sa iyong administrator para i-install ang "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2987620471460279764">Ibinahaging text mula sa ibang device</translation> @@ -2307,6 +2321,7 @@ <translation id="3023464535986383522">Select to speak</translation> <translation id="3024374909719388945">Gamitin ang 24-oras na orasan</translation> <translation id="3027296729579831126">I-on ang Nearby Share</translation> +<translation id="3027644380269727216">Batay sa iyong aktibidad sa isang site. Naka-on ang setting na ito.</translation> <translation id="3029276696788198026">Walang pag-preload</translation> <translation id="3029466929721441205">Ipakita ang mga tool ng stylus sa shelf</translation> <translation id="3029808567601324798">Oras para mag-lock</translation> @@ -2554,6 +2569,7 @@ <translation id="3288047731229977326">Ang mga extension na tumatakbo sa developer mode ay maaaring makapinsala sa iyong computer. Kung hindi ka isang developer, dapat mong i-disable ang mga extension na tumatakbo sa developer mode upang manatiling ligtas.</translation> <translation id="3289668031376215426">Auto-capitalization</translation> <translation id="3289856944988573801">Upang tumingin ng mga update, mangyaring gumamit ng Ethernet o Wi-Fi.</translation> +<translation id="3289886661311231677">Puwede kang mag-block ng mga paksang ayaw mong i-share sa mga site. Awtomatiko ring dine-delete ng Chrome ang iyong mga paksang mas matagal sa 4 na linggo.</translation> <translation id="3290249595466894471">Nagpapadala rin ng maliit na sample ng mga page, download, aktibidad ng extension, at impormasyon ng system para makatulong na tumuklas ng mga bagong banta</translation> <translation id="3293644607209440645">Ipadala ang page na ito</translation> <translation id="32939749466444286">Hindi nalunsad ang Linux container. Pakisubukang muli.</translation> @@ -2638,6 +2654,7 @@ <translation id="3370260763947406229">Awtomatikong pagwawasto</translation> <translation id="3371140690572404006">USB-C device (port sa kanang bahagi sa harap)</translation> <translation id="337286756654493126">Mag-read ng mga folder na iyong bubuksan sa application</translation> +<translation id="3373701465337594448">Kapag naka-on, lalabas dito ang listahan ng mga binibisita mong site na humuhula ng iyong mga interes</translation> <translation id="3374294321938930390">Inilipat ang '<ph name="BOOKMARK_TITLE" />' sa '<ph name="NEW_FOLDER_TITLE" />'.</translation> <translation id="3378572629723696641">Maaaring nasira ang extension na ito.</translation> <translation id="3378627645871606983">Nalalapat ang mga pahintulot na pinayagan para sa Steam sa lahat ng laro at app ng Steam.</translation> @@ -2738,6 +2755,7 @@ <translation id="3458794975359644386">Hindi na-unshare</translation> <translation id="3459509316159669723">Pagpi-print</translation> <translation id="3459697287128633276">Upang i-enable ang iyong account na i-access ang Google Play Store, paki-authenticate gamit ang Identity Provider mo.</translation> +<translation id="3460458947710119567">{NUM_BOOKMARKS,plural, =1{Na-delete ang 1 bookmark}one{Na-delete ang # bookmark}other{Na-delete ang # na bookmark}}</translation> <translation id="3461766685318630278">Gumawa at mag-delete ng mga karagdagang container.</translation> <translation id="3462311546193741693">Sina-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account kaya maki-clear ang naka-sync mong data.</translation> <translation id="3462413494201477527">Kanselahin ang pag-setup ng account?</translation> @@ -3044,6 +3062,7 @@ <translation id="3747603683749989726">I-on ang pinahusay na seguridad?</translation> <translation id="3748424433435232460">Naka-save na sa device na ito ang password para sa account na ito</translation> <translation id="3748706263662799310">Mag-ulat ng bug</translation> +<translation id="3749724428455457489">Matuto pa tungkol sa mga iminumungkahi ng site na ad</translation> <translation id="3750562496035670393">Na-save ng Chrome ang iyong password sa device na ito, pero puwede mong i-save na lang ito sa iyong Google Account. Pagkatapos ay magiging available rin ang lahat ng iyong password sa Google Account mo habang naka-sign in ka.</translation> <translation id="3752253558646317685">Utusan ang iyong anak na panatilihing nakaangat ang kanyang daliri para ma-save ang fingerprint</translation> <translation id="3753033997400164841">I-store nang isang beses. Gamitin kahit saan</translation> @@ -3234,6 +3253,7 @@ <translation id="3903187154317825986">Built-in na Keyboard</translation> <translation id="3904326018476041253">Mga Serbisyo ng Lokasyon</translation> <translation id="3905761538810670789">Ayusin ang app</translation> +<translation id="3908288065506437185">I-block ang mga third-party na cookie sa Incognito mode</translation> <translation id="3908501907586732282">Paganahin ang extension</translation> <translation id="3909701002594999354">Ipakita ang Lahat ng &Control</translation> <translation id="3909791450649380159">Al&isin</translation> @@ -3344,6 +3364,7 @@ <translation id="3993887353483242788">I-sync ang iyong <ph name="DEVICE_TYPE" /> para magamit mo sa anumang device ang mga kagustuhan mo kapag nag-sign in ka sa iyong Google Account. Kasama sa mga kagustuhan ang mga app, mga setting, mga password ng Wi-Fi, mga wika, wallpaper, mga keyboard shortcut, at iba pa.</translation> <translation id="3994318741694670028">Sa kasamaang-palad, na-configure ang iyong computer gamit ang isang hardware ID na mali ang pagkakabuo. Pinipigilan nito ang ChromeOS Flex na mag-update sa mga pinakabagong pag-aayos sa seguridad at <ph name="BEGIN_BOLD" />posibleng maging mahina sa mga nakakapinsalang pag-atake<ph name="END_BOLD" /> ang iyong computer.</translation> <translation id="3994374631886003300">I-unlock ang iyong telepono at ilapit pa ito upang ma-unlock ang <ph name="DEVICE_TYPE" /> mo.</translation> +<translation id="3994708120330953242">Nakita ang ilan sa iyong mga password sa isang paglabag sa data. Para i-secure ang iyong mga account, dapat mong palitan ang mga password na ito ngayon mismo.</translation> <translation id="3994878504415702912">&I-zoom</translation> <translation id="3995138139523574647">USB-C device (port sa kanang bahagi sa likod)</translation> <translation id="3995963973192100066">I-play ang animation</translation> @@ -3385,6 +3406,7 @@ <translation id="4040041015953651705">Wikang pagmumulan ng pagsalin</translation> <translation id="4040105702484676956">I-clear ang data ng site at mga pahintulot para sa <ph name="SITE_NAME" /> at naka-install na app nito?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Umalis sa Page}one{Umalis sa Mga Page}other{Umalis sa Mga Page}}</translation> +<translation id="4042941173059740150">Magpatuloy sa <ph name="SITE_ETLD_PLUS_ONE" /> gamit ang <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Laki ng cursor</translation> <translation id="4044612648082411741">Ilagay ang password ng iyong certificate</translation> <translation id="4044708573046946214">Password ng lock ng screen</translation> @@ -3524,6 +3546,7 @@ <translation id="4175737294868205930">Matagalang storage</translation> <translation id="4176463684765177261">Hindi pinapagana</translation> <translation id="4176864026061939326">Pinapamahalaan ang device na ito. Humihiling ang administrator ng iyong device ng bagong profile para sa account na <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4177501066905053472">Mga paksa ng ad</translation> <translation id="4180788401304023883">Tanggalin ang CA certificate na "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Mga Wika</translation> @@ -4072,6 +4095,7 @@ <translation id="4683947955326903992"><ph name="PERCENTAGE" />% (default)</translation> <translation id="4684427112815847243">I-sync lahat</translation> <translation id="4687613760714619596">Hindi Kilalang Device (<ph name="DEVICE_ID" />)</translation> +<translation id="4687718960473379118">Mga ad na iminumungkahi ng site</translation> <translation id="4688036121858134881">Local log ID: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4688176403504673761">Ibinabalik ng <ph name="MANAGER" /> ang device na ito sa nakaraang bersyon (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="4689235506267737042">Piliin ang mga kagustuhan mo sa demo</translation> @@ -4295,7 +4319,6 @@ <translation id="4893336867552636863">Permanente nitong ide-delete ang iyong data sa pag-browse sa device na ito.</translation> <translation id="4893454800196085005">Maganda - DVD</translation> <translation id="4893522937062257019">Sa lock screen</translation> -<translation id="4897496410259333978">Para sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.</translation> <translation id="4898011734382862273">Kinakatawan ng certificate na "<ph name="CERTIFICATE_NAME" />" ang isang Certification Authority</translation> <translation id="4899052647152077033">I-invert ang mga kulay</translation> <translation id="4899696330053002588">May mga ad</translation> @@ -4393,11 +4416,13 @@ <translation id="4992458225095111526">Kumpirmahin ang Powerwash</translation> <translation id="4992473555164495036">Nilimitahan ng iyong administrator ang mga available na pamamaraan ng pag-input.</translation> <translation id="4994754230098574403">Sine-set up</translation> +<translation id="4995293419989417004">Matuto pa tungkol sa mga paksa ng ad</translation> <translation id="4996851818599058005">{NUM_VMS,plural, =0{Walang nahanap na VM na <ph name="VM_TYPE" />}=1{1 VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}one{{NUM_VMS} VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}other{{NUM_VMS} na VM na <ph name="VM_TYPE" /> ang nahanap: <ph name="VM_NAME_LIST" />}}</translation> <translation id="4997086284911172121">Walang koneksyon sa Internet.</translation> <translation id="4998430619171209993">Naka-on</translation> <translation id="4999804342505941663">I-on ang Huwag Istorbohin</translation> <translation id="5000922062037820727">Naka-block (inirerekomenda)</translation> +<translation id="5001526427543320409">Mga third-party na cookie</translation> <translation id="5005498671520578047">Kopyahin password</translation> <translation id="5006118752738286774">2 taon ang nakalipas</translation> <translation id="5006218871145547804">ADB ng Android app sa Crostini</translation> @@ -5114,6 +5139,7 @@ <translation id="5683806393796685434">Pakilagay ang iyong code sa pag-activate</translation> <translation id="5684181005476681636">Mga detalye ng Wi-Fi</translation> <translation id="5684661240348539843">Identifier ng Asset</translation> +<translation id="5684950556880280580">Na-update ang iyong password</translation> <translation id="5684969244627829799">Mag-sign in sa isang user account at subukan ulit</translation> <translation id="5687326903064479980">Timezone</translation> <translation id="5687935527303996204">Tiyaking nakasaksak ang iyong device, at huwag itong i-off. Posibleng abutin nang hanggang 20 minuto ang pag-install. Awtomatikong magsa-shut down ang iyong device kapag tapos na ang pag-install.</translation> @@ -5155,6 +5181,7 @@ <translation id="572328651809341494">Mga kamakailang tab</translation> <translation id="5723508132121499792">Walang tumatakbong apps sa background</translation> <translation id="5723967018671998714">Bina-block ang third-party na cookies sa Incognito mode</translation> +<translation id="5724642200346111167">Kini-clear ang data ng site mula sa iyong device kapag isinara mo ang lahat ng window</translation> <translation id="5727728807527375859">Maaaring mapinsala ng mga extension, apps, at mga tema ang iyong computer. Sigurado ka bang gusto mong magpatuloy?</translation> <translation id="5728450728039149624">Mga opsyon sa lock ng screen ng Smart Lock</translation> <translation id="5729712731028706266">&Tingnan</translation> @@ -5170,6 +5197,7 @@ <translation id="5739017626473506901">Mag-sign in para matulungan si <ph name="USER_NAME" /> na magdagdag ng pampaaralang account</translation> <translation id="5739235828260127894">Naghihintay ng pag-verify. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Napakalaki</translation> +<translation id="5740126560802162366">Makakapag-save ang mga site ng data sa iyong device</translation> <translation id="5740328398383587084">Nearby Share</translation> <translation id="5740709157181662145">Suporta sa at stability ng <ph name="DEVICE_OS" /> hardware</translation> <translation id="574104302965107104">Pag-mirror ng display</translation> @@ -5659,6 +5687,7 @@ <translation id="6184099524311454384">Maghanap sa Mga Tab</translation> <translation id="6185132558746749656">Lokasyon ng Device</translation> <translation id="6190953336330058278">Mga Phone Hub app</translation> +<translation id="6192413564913825901">Lumipat sa Lahat ng Bookmark</translation> <translation id="6195005504600220730">Basahin ang impormasyon tungkol sa iyong browser, OS, at device</translation> <translation id="6195155925303302899">I-align sa gitna</translation> <translation id="6195693561221576702">Hindi ma-set up ang device na ito sa offline na demo mode.</translation> @@ -5670,6 +5699,7 @@ <translation id="6200151268994853226">Pamahalaan ang Extension</translation> <translation id="6201608810045805374">Alisin ang account na ito?</translation> <translation id="6202304368170870640">Maaari mong gamitin ang iyong PIN para mag-sign in sa o para ma-unlock ang device mo.</translation> +<translation id="6205314730813004066">Privacy sa ad</translation> <translation id="6206199626856438589">Masa-sign out ka sa mga ipinapakitang site, pati na rin sa mga nakabukas na tab</translation> <translation id="6206311232642889873">Kop&yahin ang Imahe</translation> <translation id="6206521455877863927">May kasamang mga site mula sa iisang domain, halimbawa, google.com at mail.google.com. Puwedeng i-save ng mga site na tinitingnan mo ang data sa iyong device.</translation> @@ -5829,7 +5859,6 @@ <translation id="6347010704471250799">Ipakita ang notification</translation> <translation id="6349101878882523185">I-install ang <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (na tinatawag ding ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Pang-eksperimento (alpha-quality) na browser! Nawawala o hindi kumpleto ang ilang feature. Iulat ang mga isyu sa : Tulong > "Mag-ulat ng isyu...".</translation> <translation id="635609604405270300">Panatilihing naka-on ang device</translation> <translation id="63566973648609420">Ang taong may alam ng passphrase mo lang ang makakabasa sa iyong naka-encrypt na data. Hindi ipinapadala sa o iniimbak ng Google ang passphrase. Kung makalimutan mo ang iyong passphrase o gusto mong baguhin ang setting na ito, kakailanganin mong <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Bubukas pa rin ang ilang sinusuportahang link sa <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation> @@ -5920,6 +5949,7 @@ <translation id="6444070574980481588">Itakda ang petsa at oras</translation> <translation id="6444147596556711162">Gamitin ang “Susunod“ at “Nakaraan“ para magpalipat-lipat sa mga item sa screen</translation> <translation id="6444909401984215022"><ph name="WINDOW_TITLE" /> - Aktibong nagsa-scan para sa mga Bluetooth device</translation> +<translation id="6445395161658447009">Posibleng abutin nang hanggang isang linggo bago lumabas dito ang listahan ng mga site batay sa iyong history ng pag-browse</translation> <translation id="6445450263907939268">Kung hindi mo gusto ang mga pagbabagong ito, maaari mong ipanumbalik ang mga dati mong setting.</translation> <translation id="6446213738085045933">Lumikha ng shortcut sa desktop</translation> <translation id="6447842834002726250">Cookies</translation> @@ -6289,6 +6319,7 @@ <translation id="6787839852456839824">Mga keyboard shortcut</translation> <translation id="6788210894632713004">Hindi naka-pack na extension</translation> <translation id="6789592661892473991">I-split nang Pahalang</translation> +<translation id="6789834167207639931">Ilagay ulit ang password ng iyong Google Account sa susunod na screen para tapusin ang pag-recover</translation> <translation id="6790428901817661496">I-play</translation> <translation id="6790497603648687708">Naidagdag mula sa malayo ang <ph name="EXTENSION_NAME" /></translation> <translation id="6790820461102226165">Magdagdag ng Tao...</translation> @@ -6934,6 +6965,7 @@ <translation id="7387273928653486359">Katanggap-tanggap</translation> <translation id="7387951778417998929">Para gumamit ng search engine na hindi ang default, i-type ang shortcut nito sa address bar kasunod ang iyong gustong keyboard shortcut. Puwede mo ring palitan ang iyong default na search engine dito.</translation> <translation id="7388209873137778229">Ang mga sinusuportahang device lang ang ipinapakita.</translation> +<translation id="7388615499319468910">Mauunawaan ng mga site at advertiser ang performance ng mga ad. Naka-off ang setting na ito.</translation> <translation id="7392118418926456391">Nabigo ang pag-scan ng virus</translation> <translation id="7392915005464253525">M&uling buksan ang nakasarang window</translation> <translation id="7393073300870882456">{COUNT,plural, =1{Nakopya ang 1 item}one{Nakopya ang {COUNT} item}other{Nakopya ang {COUNT} na item}}</translation> @@ -6964,6 +6996,7 @@ <translation id="7412226954991670867">GPU Memory</translation> <translation id="7414464185801331860">18x</translation> <translation id="7415454883318062233">Tapos na ang pag-set up</translation> +<translation id="7415484647604548662">Puwede kang mag-block ng mga site na ayaw mo. Awtomatiko ring dine-delete ng Chrome ang mga site sa listahan na mas matagal sa 4 na linggo.</translation> <translation id="7416091793702109803">Suriin ang <ph name="FILE_NAME" /></translation> <translation id="7416263748877373774">Hindi ma-load ang Mga Tuntunin ng Serbisyo. Pakisuri ang iyong koneksyon ng network at subukan ulit.</translation> <translation id="7416362041876611053">Hindi alam na error sa network.</translation> @@ -6990,7 +7023,6 @@ <translation id="7434757724413878233">Pag-accelerate ng mouse</translation> <translation id="7434969625063495310">Hindi maidagdag ang server sa pag-print. Pakisuri ang configuration ng server at subukan ulit.</translation> <translation id="7436921188514130341">Naku! Nagka-error habang pinapalitan ang pangalan.</translation> -<translation id="7438495332316988804">Makikita ang karaniwang browser sa pamamagitan ng pag-type ng "Chrome" sa Launcher.</translation> <translation id="7439519621174723623">Magdagdag ng pangalan ng device para magpatuloy</translation> <translation id="7441736921018636843">Para baguhin ang setting na ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /> para alisin ang iyong passphrase sa pag-sync</translation> <translation id="7441830548568730290">Iba pang mga user</translation> @@ -7009,6 +7041,7 @@ <translation id="7453467225369441013">Isa-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account.</translation> <translation id="7454548535253569100">Portal: <ph name="SUBFRAME_SITE" /></translation> <translation id="7455730275746867420">Pamahalaan ang mga karagdagang container</translation> +<translation id="7455988709578031708">Batay sa iyong history ng pag-browse. Naka-on ang setting na ito.</translation> <translation id="7456142309650173560">dev</translation> <translation id="7456774706094330779">Na-extend na pag-preload</translation> <translation id="7456847797759667638">Buksan ang Lokasyon...</translation> @@ -7197,6 +7230,7 @@ <translation id="7634280112532283638">Pagbabawas ng spam at panloloko</translation> <translation id="7634566076839829401">Nagkaroon ng problema. Pakisubukang muli.</translation> <translation id="7635048370253485243">Na-pin ng iyong Administrator</translation> +<translation id="7635711411613274199">Habang nagba-browse ka, kung naka-personalize ang isang ad na nakikita mo ay nakadepende sa setting na ito, <ph name="BEGIN_LINK1" />Mga paksa ng ad<ph name="LINK_END1" />, iyong <ph name="BEGIN_LINK2" />mga setting ng cookie<ph name="LINK_END2" />, at kung nagpe-personalize ng mga ad ang site na tinitingnan mo.</translation> <translation id="7636919061354591437">I-install sa Device na ito</translation> <translation id="7637253234491814483">Pindutin ang sensor ng fingerprint sa kanang sulok sa itaas ng iyong keyboard, sa tabi ng Power button. Secure na sino-store ang data ng iyong fingerprint at hindi ito kailanman lalabas sa <ph name="DEVICE_TYPE" /> mo.</translation> <translation id="7637272932128132922">Habang hindi aktibo ang tab na ito, nagbakante ang Memory Saver ng memory para sa iba pang gawain. Puwede mo itong baguhin anumang oras sa <ph name="SETTINGS_LINK" />.</translation> @@ -7465,6 +7499,7 @@ <translation id="7865127013871431856">Mga opsyon sa pagsasalin</translation> <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - Nakapares</translation> <translation id="7869655448736341731">Kahit ano</translation> +<translation id="787069710204604994">Halimbawa, kung bibisita ka sa isang site na nagtitinda ng pangmalayuang running shoes, posibleng tukuyin ng site na interesado kang tumakbo sa mga marathon. Sa ibang pagkakataon, kung bibisita ka sa ibang site, puwedeng magpakita sa iyo ang site na iyon ng ad para sa running shoes na iminungkahi ng unang site.</translation> <translation id="7870730066603611552">Suriin ang mga opsyon sa pag-sync pagkatapos ng pag-set up</translation> <translation id="7870790288828963061">Walang nahanap na mga Kiosk app na may mas bagong bersyon. Walang ia-update. Mangyaring alisin ang USB stick.</translation> <translation id="7871049986386271121">Palagi sa Site na Ito</translation> @@ -7568,6 +7603,7 @@ <translation id="7952904276017482715">"<ph name="EXPECTED_ID" />" ang inaasahang ID, ngunit "<ph name="NEW_ID" />" ang ID</translation> <translation id="7953669802889559161">Mga Input</translation> <translation id="7953955868932471628">Pamahalaan ang mga shortcut</translation> +<translation id="7955105108888461311">Magtanong nang personal</translation> <translation id="7955177647836564772">Kung naka-on ang Smart Lock at naka-unlock ang iyong telepono, hindi mo kailangang maglagay ng password o PIN</translation> <translation id="7956373551960864128">Mga naka-save mong printer</translation> <translation id="7957074856830851026">Tingnan ang impormasyon ng device, gaya ng serial number o asset ID nito</translation> @@ -8350,6 +8386,7 @@ <translation id="8674903726754070732">Sa kasamaang-palad, na-configure ang iyong computer gamit ang isang hardware ID na mali ang pagkakabuo. Pinipigilan nito ang ChromeOS na mag-update sa mga pinakabagong pag-aayos sa seguridad at <ph name="BEGIN_BOLD" />posibleng maging mahina sa mga nakakapinsalang pag-atake<ph name="END_BOLD" /> ang iyong computer.</translation> <translation id="8675704450909805533">Hindi makakita ang installer ng valid na destinasyon para i-install ang <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Video}one{# video}other{# na video}}</translation> +<translation id="8676276370198826499">Mag-sign up sa <ph name="SITE_ETLD_PLUS_ONE" /> gamit ang <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Salamat sa pagpapadala ng feedback.</translation> <translation id="8676374126336081632">I-clear ang input</translation> <translation id="8676770494376880701">Nakakabit ang low-power charger</translation> @@ -8799,6 +8836,7 @@ <translation id="9076523132036239772">Paumanhin, hindi ma-verify ang iyong email o password. Subukan munang kumonekta sa network.</translation> <translation id="9076821103818989526">Panel sa gilid</translation> <translation id="9076977315710973122">Pagbabahagi ng SMB</translation> +<translation id="907779190626433918">Gumamit ng natatanging password para sa bawat site o app. Kung may makakatuklas ng password na ginamit ulit, posibleng gamitin ito para i-access ang iyong iba pang account.</translation> <translation id="9078193189520575214">Inilalapat ang mga pagbabago...</translation> <translation id="9078316009970372699">I-disable ang Instant na Pag-tether</translation> <translation id="9078842827190780028">Makakita pa ng mga resulta ng paghahanap sa panel sa gilid</translation> @@ -8821,11 +8859,14 @@ <translation id="9094859731829297286">Sigurado ka bang gusto mong magreserba ng fixed na espasyo sa disk para sa Linux?</translation> <translation id="9094982973264386462">Alisin</translation> <translation id="9095253524804455615">Alisin</translation> +<translation id="9095364055741191097">Hindi na-recover ang lokal na data</translation> <translation id="909554839118732438">Isara ang Incognito</translation> +<translation id="9099220545925418560">Batay sa iyong history ng pag-browse. Naka-off ang setting na ito.</translation> <translation id="9100416672768993722">Para lumipat sa huling ginamit na pamamaraan ng pag-input, pindutin ang <ph name="BEGIN_SHORTCUT" /><ph name="BEGIN_CTRL" />Ctrl<ph name="END_CTRL" /><ph name="SEPARATOR" /><ph name="BEGIN_SPACE" />Space<ph name="END_SPACE" /><ph name="END_SHORTCUT" /></translation> <translation id="9100765901046053179">Mga advanced na setting</translation> <translation id="9101691533782776290">Ilunsad ang app</translation> <translation id="9102610709270966160">I-enable ang Extension</translation> +<translation id="9102864637938129124">Mauunawaan ng mga site at advertiser ang performance ng mga ad. Naka-on ang setting na ito.</translation> <translation id="9103479157856427471">Sumusunod ang naka-zoom in na screen sa pag-focus ng keyboard</translation> <translation id="9103868373786083162">Pindutin upang bumalik, gamitin ang menu ng konteksto upang makita ang history</translation> <translation id="9108035152087032312">Pangalanan ang &window...</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index 63b65b34..2241d0b 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -771,6 +771,7 @@ <translation id="168715261339224929">Pour synchroniser vos favoris sur tous vos appareils, activez la synchronisation.</translation> <translation id="1688867105868176567">Effacer les données du site?</translation> <translation id="1688935057616748272">Entrez une lettre</translation> +<translation id="1689333818294560261">Pseudo</translation> <translation id="168991973552362966">Ajouter une imprimante à proximité</translation> <translation id="1689945336726856614">Copier l'&URL</translation> <translation id="1692115862433274081">Utiliser un autre compte</translation> @@ -1516,7 +1517,6 @@ <translation id="2329597144923131178">Connectez-vous pour synchroniser favoris, historique, mots de passe et autres sur vos appareils.</translation> <translation id="2332115969598251205">Impossible de charger les appareils enregistrés avec <ph name="PRIMARY_EMAIL" />. Vérifiez votre connexion Internet et réessayez.</translation> <translation id="2332131598580221120">Afficher dans la boutique</translation> -<translation id="2332192922827071008">Ouvrir les préférences</translation> <translation id="2332515770639153015">Navigation sécurisée améliorée activée</translation> <translation id="2332742915001411729">Rétablir la valeur par défaut</translation> <translation id="2332948465534020594">Mode Ne pas déranger activé</translation> @@ -4286,7 +4286,6 @@ <translation id="4893336867552636863">Cette action entraînera la suppression définitive de vos données de navigation sur cet appareil.</translation> <translation id="4893454800196085005">Bonne – DVD</translation> <translation id="4893522937062257019">À l'écran de verrouillage</translation> -<translation id="4897496410259333978">Pour en savoir plus, communiquez avec votre administrateur.</translation> <translation id="4898011734382862273">Le certificat « <ph name="CERTIFICATE_NAME" /> » représente une autorité de certification</translation> <translation id="4899052647152077033">Inverser les couleurs</translation> <translation id="4899696330053002588">Contient des annonces</translation> @@ -5820,7 +5819,6 @@ <translation id="6347010704471250799">Afficher une notification</translation> <translation id="6349101878882523185">Installer <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Courbe elliptique SECG secp256r1 (aussi appelée ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Navigateur expérimental (qualité de version alpha)! Certaines fonctionnalités sont manquantes ou incomplètes. Signalez tout problème en sélectionnant Aide > « Signaler un problème… ».</translation> <translation id="635609604405270300">Laissez l'appareil allumé</translation> <translation id="63566973648609420">Seule une personne connaissant votre phrase de passe peut lire vos données chiffrées. Google ne reçoit pas la phrase de passe et ne la stocke pas. Si vous l'oubliez ou souhaitez modifier ce paramètre, vous devrez <ph name="BEGIN_LINK" />réinitialiser la synchronisation<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Certains liens pris en charge continueront de s'ouvrir dans <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation> @@ -6981,7 +6979,6 @@ <translation id="7434757724413878233">Accélération de la souris</translation> <translation id="7434969625063495310">Impossible d'ajouter le serveur d'impression. Veuillez vérifier la configuration du serveur, puis réessayer.</translation> <translation id="7436921188514130341">Oups… Une erreur s'est produite lors du changement de nom.</translation> -<translation id="7438495332316988804">Vous trouverez le navigateur standard en entrant « Chrome » dans le lanceur.</translation> <translation id="7439519621174723623">Pour continuer, donnez un nom à l'appareil</translation> <translation id="7441736921018636843">Pour modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /> afin de supprimer votre phrase de passe de synchronisation</translation> <translation id="7441830548568730290">Autres utilisateurs</translation> @@ -7559,6 +7556,7 @@ <translation id="7952904276017482715">Identifiant « <ph name="NEW_ID" /> » reçu au lieu de l'identifiant « <ph name="EXPECTED_ID" /> » attendu</translation> <translation id="7953669802889559161">Entrées</translation> <translation id="7953955868932471628">Gérer les raccourcis</translation> +<translation id="7955105108888461311">Demander en personne</translation> <translation id="7955177647836564772">Lorsque Smart Lock est activé et que votre téléphone est déverrouillé, vous n'avez pas besoin d'entrer de mot de passe ni de NIP</translation> <translation id="7956373551960864128">Vos imprimantes enregistrées</translation> <translation id="7957074856830851026">Consulter des renseignements sur l'appareil, comme son numéro de série ou son identifiant d'appareil</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 14fc2dc..80bf34d 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -767,6 +767,7 @@ <translation id="168715261339224929">Activez la synchronisation pour accéder à vos favoris sur tous vos appareils.</translation> <translation id="1688867105868176567">Effacer les données de site ?</translation> <translation id="1688935057616748272">Saisissez une lettre</translation> +<translation id="1689333818294560261">Pseudo</translation> <translation id="168991973552362966">Ajouter une imprimante à proximité</translation> <translation id="1689945336726856614">Copier l'&URL</translation> <translation id="1692115862433274081">Utiliser un autre compte</translation> @@ -1511,7 +1512,6 @@ <translation id="2329597144923131178">Connectez-vous pour synchroniser favoris, historique, mots de passe et autres sur vos appareils. </translation> <translation id="2332115969598251205">Impossible de charger les appareils enregistrés dans <ph name="PRIMARY_EMAIL" />. Vérifiez votre connexion Internet, puis réessayez.</translation> <translation id="2332131598580221120">Afficher dans la boutique</translation> -<translation id="2332192922827071008">Ouvrir les préférences</translation> <translation id="2332515770639153015">Navigation sécurisée avec protection renforcée activée</translation> <translation id="2332742915001411729">Rétablir le thème par défaut</translation> <translation id="2332948465534020594">Mode Ne pas déranger activé</translation> @@ -4279,7 +4279,6 @@ <translation id="4893336867552636863">Cette action aura pour effet de supprimer définitivement vos données de navigation de cet appareil.</translation> <translation id="4893454800196085005">Bonne – DVD</translation> <translation id="4893522937062257019">Sur l'écran de verrouillage</translation> -<translation id="4897496410259333978">Pour en savoir plus, contactez votre administrateur.</translation> <translation id="4898011734382862273">Le certificat "<ph name="CERTIFICATE_NAME" />" représente une autorité de certification</translation> <translation id="4899052647152077033">Inverser les couleurs</translation> <translation id="4899696330053002588">Contient des annonces</translation> @@ -5814,7 +5813,6 @@ <translation id="6347010704471250799">Afficher les notifications</translation> <translation id="6349101878882523185">Installer <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Courbe elliptique SECG secp256r1 (également appelée "ANSI X9.62 prime256v1, NIST P-256")</translation> -<translation id="6355789186038748882">Navigateur expérimental (version alpha). Certaines fonctionnalités sont manquantes ou incomplètes. Si vous relevez un problème, sélectionnez Aide > Signaler un problème.</translation> <translation id="635609604405270300">N'éteignez pas l'appareil</translation> <translation id="63566973648609420">Seule une personne connaissant votre phrase secrète peut lire vos données chiffrées. La phrase secrète ne nous est pas envoyée et nous ne la stockons pas. Si vous l'oubliez ou si vous voulez modifier ce paramètre, vous devrez <ph name="BEGIN_LINK" />réinitialiser la synchronisation<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation> @@ -6975,7 +6973,6 @@ <translation id="7434757724413878233">Accélération du curseur</translation> <translation id="7434969625063495310">Impossible d'ajouter le serveur d'impression. Veuillez vérifier la configuration du serveur, puis réessayer.</translation> <translation id="7436921188514130341">Aïe, aïe, aïe ! Une erreur s'est produite lors du changement du nom.</translation> -<translation id="7438495332316988804">Vous pouvez accéder au navigateur standard en saisissant "Chrome" dans le Lanceur d'applications.</translation> <translation id="7439519621174723623">Attribuez un nom à l'appareil pour continuer</translation> <translation id="7441736921018636843">Pour modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /> pour supprimer votre phrase secrète de synchronisation</translation> <translation id="7441830548568730290">Autres utilisateurs</translation> @@ -7553,6 +7550,7 @@ <translation id="7952904276017482715">ID "<ph name="NEW_ID" />" reçu au lieu de l'ID "<ph name="EXPECTED_ID" />" attendu</translation> <translation id="7953669802889559161">Modes de saisie</translation> <translation id="7953955868932471628">Gérer les raccourcis</translation> +<translation id="7955105108888461311">Demander en personne</translation> <translation id="7955177647836564772">Si Smart Lock est activé et que votre téléphone est déverrouillé, vous n'avez pas besoin de saisir de mot de passe ni de code</translation> <translation id="7956373551960864128">Vos imprimantes enregistrées</translation> <translation id="7957074856830851026">Voir les informations sur l'appareil telles que son numéro de série ou son identifiant</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 6ad3490..bbc428c 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -765,6 +765,7 @@ <translation id="168715261339224929">Activa a sincronización para acceder aos marcadores desde todos os teus dispositivos.</translation> <translation id="1688867105868176567">Queres borrar os datos do sitio?</translation> <translation id="1688935057616748272">Escribe unha letra</translation> +<translation id="1689333818294560261">Alcume</translation> <translation id="168991973552362966">Engadir unha impresora que estea cerca</translation> <translation id="1689945336726856614">Copiar &URL</translation> <translation id="1692115862433274081">Utilizar outra conta</translation> @@ -1509,7 +1510,6 @@ <translation id="2329597144923131178">Inicia sesión para ter os marcadores, o historial, os contrasinais e o resto da túa configuración en todos os teus dispositivos.</translation> <translation id="2332115969598251205">Non se puideron cargar os dispositivos gardados en <ph name="PRIMARY_EMAIL" />. Comproba a conexión a Internet e téntao de novo.</translation> <translation id="2332131598580221120">Ver na tenda</translation> -<translation id="2332192922827071008">Abrir preferencias</translation> <translation id="2332515770639153015">Está activada a función Navegación segura mellorada</translation> <translation id="2332742915001411729">Restablecer valores predeterminados</translation> <translation id="2332948465534020594">O modo Non molestar está activado</translation> @@ -4277,7 +4277,6 @@ <translation id="4893336867552636863">Esta acción eliminará permanentemente os teus datos de navegación deste dispositivo.</translation> <translation id="4893454800196085005">Bo (DVD)</translation> <translation id="4893522937062257019">Na pantalla de bloqueo</translation> -<translation id="4897496410259333978">Para obter máis información, ponte en contacto co teu administrador.</translation> <translation id="4898011734382862273">O certificado "<ph name="CERTIFICATE_NAME" />" representa unha autoridade de certificación</translation> <translation id="4899052647152077033">Inverter cores</translation> <translation id="4899696330053002588">Contén anuncios</translation> @@ -5808,7 +5807,6 @@ <translation id="6347010704471250799">Mostrar notificación</translation> <translation id="6349101878882523185">Instalar a aplicación <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG Elliptic Curve secp256r1 (tamén se denomina ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Navegador experimental (calidade alfa). Pode que algunhas funcións estean incompletas ou non dispoñibles. Se tes algún problema, indícanolo en Axuda > Informar dun problema...</translation> <translation id="635609604405270300">Non apagues o dispositivo</translation> <translation id="63566973648609420">Só alguén co teu contrasinal pode ler os teus datos encriptados. O contrasinal non se envía nin se almacena en Google. Se esqueciches o contrasinal ou queres cambiar esta configuración, deberás <ph name="BEGIN_LINK" />restablecer a sincronización<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Algunhas ligazóns compatibles seguirán abríndose nas aplicacións <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation> @@ -6967,7 +6965,6 @@ <translation id="7434757724413878233">Aceleración do rato</translation> <translation id="7434969625063495310">Non se puido engadir o servidor de impresión. Comproba a súa configuración e téntao de novo.</translation> <translation id="7436921188514130341">Que pena! Produciuse un erro durante o cambio de nome.</translation> -<translation id="7438495332316988804">Se queres atopar o navegador estándar, escribe "Chrome" no menú de aplicacións.</translation> <translation id="7439519621174723623">Engade un nome de dispositivo para continuar</translation> <translation id="7441736921018636843">Se queres cambiar esta opción de configuración, <ph name="BEGIN_LINK" />restablece a sincronización<ph name="END_LINK" /> para quitar a frase de acceso da sincronización</translation> <translation id="7441830548568730290">Outros usuarios</translation> @@ -7545,6 +7542,7 @@ <translation id="7952904276017482715">Esperábase o ID "<ph name="EXPECTED_ID" />", pero o recibido foi "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Métodos de introdución de texto</translation> <translation id="7953955868932471628">Xestionar atallos</translation> +<translation id="7955105108888461311">Preguntar en persoa</translation> <translation id="7955177647836564772">Se activas Smart Lock e o teu teléfono está desbloqueado, non é necesario que poñas un contrasinal ou PIN</translation> <translation id="7956373551960864128">As túas impresoras gardadas</translation> <translation id="7957074856830851026">Consultar información do dispositivo, como o seu número de serie ou código de identificación de recurso</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index bcdcf019c..81e1fa2f 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -771,6 +771,7 @@ <translation id="168715261339224929">તમારા બધા ડિવાઇસ પર તમારા બુકમાર્ક મેળવવા માટે, સિંક કરવાનું ચાલુ કરો.</translation> <translation id="1688867105868176567">સાઇટનો ડેટા સાફ કરીએ?</translation> <translation id="1688935057616748272">એક અક્ષર લખો</translation> +<translation id="1689333818294560261">ઉપનામ</translation> <translation id="168991973552362966">નજીકનું પ્રિન્ટર ઉમેરો</translation> <translation id="1689945336726856614">&URLને કૉપિ કરો</translation> <translation id="1692115862433274081">બીજા એકાઉન્ટનો ઉપયોગ કરો</translation> @@ -1518,7 +1519,6 @@ <translation id="2329597144923131178">તમારા તમામ ડિવાઇસ પર તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય સેટિંગ મેળવવા માટે સાઇન ઇન કરો.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />માં સાચવેલા ડિવાઇસ લોડ કરી શકાતા નથી. તમારું ઇન્ટરનેટ કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો.</translation> <translation id="2332131598580221120">સ્ટોરમાં જુઓ</translation> -<translation id="2332192922827071008">પસંદગીઓ ખોલો</translation> <translation id="2332515770639153015">Safe Browsingમાં વધારેલી સુરક્ષા ચાલુ છે</translation> <translation id="2332742915001411729">ડિફોલ્ટ પર ફરીથી સેટ કરો</translation> <translation id="2332948465534020594">ખલેલ પાડશો નહીં સુવિધા ચાલુ કરી</translation> @@ -4295,7 +4295,6 @@ <translation id="4893336867552636863">આ તમારો બ્રાઉઝીંગ ડેટા આ ડિવાઇસમાંથી સ્થાયી રૂપે ડિલીટ કરશે.</translation> <translation id="4893454800196085005">સારી - DVD</translation> <translation id="4893522937062257019">લૉક સ્ક્રીન પર</translation> -<translation id="4897496410259333978">વધુ માહિતી માટે, તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="4898011734382862273">પ્રમાણપત્ર "<ph name="CERTIFICATE_NAME" />", પ્રમાણન અધિકારીનું પ્રતિનિધિત્વ કરે છે</translation> <translation id="4899052647152077033">રંગો ઉલટાવો</translation> <translation id="4899696330053002588">જાહેરાતો ધરાવે છે</translation> @@ -5833,7 +5832,6 @@ <translation id="6347010704471250799">નોટિફિકેશન બતાવો</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ઇન્સ્ટૉલ કરો</translation> <translation id="6354918092619878358">SECG એલિપ્ટિક કર્વ secp256r1 (ઉર્ફ ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">પ્રાયોગિક (આલ્ફા-ક્વૉલિટી) બ્રાઉઝર! અમુક સુવિધાઓ ઉપલબ્ધ નથી અથવા અધૂરી છે. આ સંબંધિત સમસ્યાઓની જાણ કરવા માટે: સહાય > "સમસ્યાની જાણ કરો…".</translation> <translation id="635609604405270300">ડિવાઇસને ચાલુ રાખો</translation> <translation id="63566973648609420">માત્ર તમારા પાસફ્રેઝ સાથેની કોઈ વ્યક્તિ જ તમારા એન્ક્રિપ્ટ કરેલા ડેટાને વાંચી શકે છે. Googleને પાસફ્રેઝ મોકલવામાં આવતો નથી કે એના દ્વારા સ્ટોર કરવામાં આવતો નથી. જો તમે તમારો પાસફ્રેઝ ભૂલી જાઓ અથવા આ સેટિંગ બદલવા માંગતા હો, તો તમારે <ph name="BEGIN_LINK" />સિંકને ફરીથી સેટ<ph name="END_LINK" /> કરવું પડશે.</translation> <translation id="6357305427698525450">અમુક સપોર્ટેડ લિંક હજી પણ <ph name="APP_NAME" /> અથવા <ph name="APP_NAME_2" />માં ખૂલશે.</translation> @@ -7001,7 +6999,6 @@ <translation id="7434757724413878233">માઉસની ઝડપ</translation> <translation id="7434969625063495310">પ્રિન્ટ સર્વર ઉમેરી શક્યા નથી. કૃપા કરીને સર્વરની ગોઠવણી ચેક કરો અને ફરી પ્રયાસ કરો.</translation> <translation id="7436921188514130341">અરેરે! નામ બદલતી વખતે એક ભૂલ આવી હતી.</translation> -<translation id="7438495332316988804">લૉન્ચરમાં "Chrome" ટાઇપ કરીને, માનક બ્રાઉઝર મેળવી શકાય છે.</translation> <translation id="7439519621174723623">આગળ વધવા માટે ડિવાઇસનું નામ ઉમેરો</translation> <translation id="7441736921018636843">આ સેટિંગ બદલવા, સિંક પાસફ્રેઝ કાઢી નાખવા માટે <ph name="BEGIN_LINK" />સિંક રીસેટ કરો<ph name="END_LINK" /></translation> <translation id="7441830548568730290">અન્ય વપરાશકર્તાઓ</translation> @@ -7581,6 +7578,7 @@ <translation id="7952904276017482715">અપેક્ષિત ID "<ph name="EXPECTED_ID" />" છે, પણ ID "<ph name="NEW_ID" />" હતું.</translation> <translation id="7953669802889559161">ઇનપુટ</translation> <translation id="7953955868932471628">શૉર્ટકટ્સનું સંચાલન કરો</translation> +<translation id="7955105108888461311">રૂબરૂ પૂછો</translation> <translation id="7955177647836564772">જો Smart Lock ચાલુ કરેલું હોય અને તમારો ફોન અનલૉક કરેલો હોય, તો તમારે પાસવર્ડ કે પિન દાખલ કરવાની જરૂર રહેતી નથી</translation> <translation id="7956373551960864128">તમે સાચવેલું પ્રિન્ટર</translation> <translation id="7957074856830851026">ડિવાઇસ વિશેની માહિતી જુઓ, જેમ કે તેનો અનુક્રમ નંબર અથવા અસેટ ID</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 5040aaf..ec39cef 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -770,6 +770,7 @@ <translation id="168715261339224929">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए, सिंक चालू करें.</translation> <translation id="1688867105868176567">'साइट डेटा' हटाएं?</translation> <translation id="1688935057616748272">कोई अक्षर लिखें</translation> +<translation id="1689333818294560261">प्रचलित नाम</translation> <translation id="168991973552362966">आस-पास का कोई प्रिंटर जोड़ें</translation> <translation id="1689945336726856614">यूआरएल &की कॉपी करें</translation> <translation id="1692115862433274081">किसी दूसरे खाते का इस्तेमाल करें</translation> @@ -1526,7 +1527,6 @@ <translation id="2329597144923131178">अपने सभी डिवाइस पर बुकमार्क, इतिहास, पासवर्ड और दूसरी तरह की सेटिंग पाने के लिए साइन इन करें</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> में सेव डिवाइसों को लोड नहीं किया जा सकता. अपने इंटरनेट कनेक्शन की जांच करें और फिर से कोशिश करें.</translation> <translation id="2332131598580221120">स्टोर में देखें</translation> -<translation id="2332192922827071008">'प्राथमिकताएं' खोलें</translation> <translation id="2332515770639153015">बेहतर सुरक्षित ब्राउज़िंग की सुविधा चालू है</translation> <translation id="2332742915001411729">डिफ़ॉल्ट पर रीसेट करें</translation> <translation id="2332948465534020594">'परेशान न करें' सुविधा को चालू किया गया</translation> @@ -4294,7 +4294,6 @@ <translation id="4893336867552636863">इससे इस डिवाइस से आपका पूरा ब्राउज़िंग डेटा हमेशा के लिए मिट जाएगा.</translation> <translation id="4893454800196085005">अच्छी - डीवीडी</translation> <translation id="4893522937062257019">लॉक स्क्रीन पर</translation> -<translation id="4897496410259333978">ज़्यादा जानकारी के लिए, अपने एडमिन से संपर्क करें.</translation> <translation id="4898011734382862273">प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" किसी प्रमाणन प्राधिकरण का प्रतिनिधित्व करता है</translation> <translation id="4899052647152077033">रंग उलटा करने की सुविधा से जुड़ी सेटिंग पर जाएं</translation> <translation id="4899696330053002588">ऐप्लिकेशन में विज्ञापन शामिल हैं</translation> @@ -5828,7 +5827,6 @@ <translation id="6347010704471250799">सूचना दिखाएं</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> इंस्टॉल करें</translation> <translation id="6354918092619878358">SECG अंडाकार वक्र secp256r1 (अर्थात ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">प्रयोग वाला (ऐल्फ़ा क्वालिटी) ब्राउज़र! कुछ सुविधाएं नहीं हैं या अधूरी हैं. इससे जुड़ी किसी भी समस्या की शिकायत करने के लिए, यहां जाएं: सहायता > "समस्या की शिकायत करें...".</translation> <translation id="635609604405270300">डिवाइस चालू रखें</translation> <translation id="63566973648609420">आपके सुरक्षित किए गए डेटा को सिर्फ़ वही व्यक्ति पढ़ सकता है जिसके पास आपका लंबा पासवर्ड है. लंबा पासवर्ड Google को नहीं भेजा जाता है. Google इसे सेव भी नहीं करता है. अगर आप अपना लंबा पासवर्ड भूल जाते हैं या यह सेटिंग बदलना चाहते हैं, तो आपको <ph name="BEGIN_LINK" />सिंक रीसेट करना होगा<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">कुछ सहायता लिंक <ph name="APP_NAME" /> या <ph name="APP_NAME_2" /> में अब भी खुलेंगे.</translation> @@ -6989,7 +6987,6 @@ <translation id="7434757724413878233">माउस की रफ़्तार बढ़ाना</translation> <translation id="7434969625063495310">प्रिंट सर्वर नहीं जोड़ा जा सका. कृपया सर्वर का कॉन्फ़िगरेशन जांचें और फिर से कोशिश करें.</translation> <translation id="7436921188514130341">हे भगवान! नाम बदलने के दौरान गड़बड़ी हुई.</translation> -<translation id="7438495332316988804">आप लॉन्चर में "Chrome" टाइप करके, स्टैंडर्ड ब्राउज़र ढूंढ सकते हैं.</translation> <translation id="7439519621174723623">जारी रखने के लिए किसी डिवाइस का नाम जोड़ें</translation> <translation id="7441736921018636843">यह सेटिंग बदलने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /> ताकि आपका सिंक करने का लंबा पासवर्ड हटाया जा सके</translation> <translation id="7441830548568730290">अन्य उपयोगकर्ता</translation> @@ -7566,6 +7563,7 @@ <translation id="7952904276017482715">अपेक्षित आईडी "<ph name="EXPECTED_ID" />" है, लेकिन आईडी "<ph name="NEW_ID" />" था</translation> <translation id="7953669802889559161">इनपुट</translation> <translation id="7953955868932471628">शॉर्टकट प्रबंधित करें</translation> +<translation id="7955105108888461311">व्यक्तिगत तौर पर ऐक्सेस मांगें</translation> <translation id="7955177647836564772">अगर Smart Lock चालू है और आपका फ़ोन अनलॉक है, तो आपको पासवर्ड या पिन डालने की ज़रूरत नहीं होगी</translation> <translation id="7956373551960864128">आपके सेव किए गए प्रिंटर</translation> <translation id="7957074856830851026">डिवाइस की जानकारी देखें, जैसे कि सीरियल नंबर या एसेट आईडी</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index e20d8f42..9cb9587 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -776,6 +776,7 @@ <translation id="168715261339224929">Da bi se vaše oznake prikazale na svim vašim uređajima, uključite sinkronizaciju.</translation> <translation id="1688867105868176567">Želite li izbrisati podatke web-lokacije?</translation> <translation id="1688935057616748272">Upišite slovo</translation> +<translation id="1689333818294560261">Nadimak</translation> <translation id="168991973552362966">Dodavanje obližnjeg pisača</translation> <translation id="1689945336726856614">Kopiraj &URL</translation> <translation id="1692115862433274081">Upotrijebite neki drugi račun</translation> @@ -1523,7 +1524,6 @@ <translation id="2329597144923131178">Prijavite se da biste imali svoje oznake, povijest, zaporke i druge postavke na svim svojim uređajima.</translation> <translation id="2332115969598251205">Nije moguće učitati uređaje spremljene na e-adresi <ph name="PRIMARY_EMAIL" />. Provjerite internetsku vezu i pokušajte ponovo.</translation> <translation id="2332131598580221120">Pogledaj u web-trgovini</translation> -<translation id="2332192922827071008">Otvori Postavke</translation> <translation id="2332515770639153015">Uključeno je poboljšano sigurno pregledavanje</translation> <translation id="2332742915001411729">Vrati na zadano</translation> <translation id="2332948465534020594">Omogućena je značajka Ne uznemiravaj</translation> @@ -4300,7 +4300,6 @@ <translation id="4893336867552636863">Time će se trajno izbrisati podaci o pregledavanju s ovog uređaja.</translation> <translation id="4893454800196085005">Dobra – DVD</translation> <translation id="4893522937062257019">Na zaključanom zaslonu</translation> -<translation id="4897496410259333978">Obratite se administratoru za više informacija.</translation> <translation id="4898011734382862273">Certifikat "<ph name="CERTIFICATE_NAME" />" predstavlja tijelo za izdavanje certifikata</translation> <translation id="4899052647152077033">Preokretanje boja</translation> <translation id="4899696330053002588">Sadrži oglase</translation> @@ -5833,7 +5832,6 @@ <translation id="6347010704471250799">Prikaži obavijest</translation> <translation id="6349101878882523185">Instalirajte aplikaciju <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG eliptična krivulja secp256r1 (poznata i kao ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentalni preglednik (alfa kvalitete)! Neke značajke nedostaju ili nisu potpune. Poteškoće prijavite putem odjeljka Pomoć > Prijavite poteškoću...</translation> <translation id="635609604405270300">Neka uređaj ostane uključen</translation> <translation id="63566973648609420">Samo osoba koja ima vašu šifru može čitati vaše kriptirane podatke. Šifra se ne šalje Googleu i ne pohranjuje na njemu. Ako zaboravite šifru ili želite promijeniti tu postavku, morat ćete <ph name="BEGIN_LINK" />poništiti sinkronizaciju<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Neke podržane veze i dalje će se otvarati u aplikacijama <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation> @@ -7003,7 +7001,6 @@ <translation id="7434757724413878233">Ubrzanje miša</translation> <translation id="7434969625063495310">Dodavanje poslužitelja za ispis nije uspjelo. Provjerite konfiguraciju poslužitelja i pokušajte ponovo.</translation> <translation id="7436921188514130341">O, ne! Došlo je do pogreške prilikom preimenovanja.</translation> -<translation id="7438495332316988804">Standardni preglednik možete pronaći tako da u Pokretač unesete "Chrome".</translation> <translation id="7439519621174723623">Dodajte naziv uređaja za nastavak</translation> <translation id="7441736921018636843">Da biste promijenili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation> <translation id="7441830548568730290">Ostali korisnici</translation> @@ -7584,6 +7581,7 @@ <translation id="7952904276017482715">Očekivan je ID "<ph name="EXPECTED_ID" />", no ID je bio "<ph name="NEW_ID" />".</translation> <translation id="7953669802889559161">Unosi</translation> <translation id="7953955868932471628">Upravljanje prečacima</translation> +<translation id="7955105108888461311">Zamoli osobno</translation> <translation id="7955177647836564772">Ako je Smart Lock uključen, a telefon otključan, ne trebate unijeti zaporku ili PIN</translation> <translation id="7956373551960864128">Spremljeni pisači</translation> <translation id="7957074856830851026">Pregled informacija uređaja, kao što su serijski broj ili ID uređaja</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index ff3ba7e..86bce68f 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -773,6 +773,7 @@ <translation id="168715261339224929">Ha az összes eszközén szeretné elérni könyvjelzőit, kapcsolja be a szinkronizálást.</translation> <translation id="1688867105868176567">Törli a webhelyadatokat?</translation> <translation id="1688935057616748272">Írja be a kívánt karaktert</translation> +<translation id="1689333818294560261">Egyedi név</translation> <translation id="168991973552362966">Közeli nyomtató hozzáadása</translation> <translation id="1689945336726856614">&URL másolása</translation> <translation id="1692115862433274081">Másik fiók használata</translation> @@ -1529,7 +1530,6 @@ <translation id="2329597144923131178">Jelentkezzen be, hogy könyvjelzőit, előzményeit, jelszavait és más beállításait az összes eszközén elérje.</translation> <translation id="2332115969598251205">Nem lehet betölteni a következő fiókba mentett eszközöket: <ph name="PRIMARY_EMAIL" />. Ellenőrizze az internetkapcsolatot, és próbálkozzon újra.</translation> <translation id="2332131598580221120">Megtekintés az áruházban</translation> -<translation id="2332192922827071008">A beállítások megnyitása</translation> <translation id="2332515770639153015">A Biztonságos Böngészés fokozott védelemmel funkció be van kapcsolva</translation> <translation id="2332742915001411729">Visszaállítás az alapértékre</translation> <translation id="2332948465534020594">Ne zavarjanak mód engedélyezve</translation> @@ -4305,7 +4305,6 @@ <translation id="4893336867552636863">Ezzel az eszközön lévő összes böngészési adat véglegesen törlődik.</translation> <translation id="4893454800196085005">Jó – DVD</translation> <translation id="4893522937062257019">A lezárási képernyőn</translation> -<translation id="4897496410259333978">További információért lépjen kapcsolatba a rendszergazdával.</translation> <translation id="4898011734382862273">A(z) „<ph name="CERTIFICATE_NAME" />” tanúsítvány tanúsítványkibocsátót képvisel</translation> <translation id="4899052647152077033">Színek invertálása</translation> <translation id="4899696330053002588">Hirdetéseket tartalmaz</translation> @@ -5843,7 +5842,6 @@ <translation id="6347010704471250799">Értesítés megjelenítése</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> telepítése</translation> <translation id="6354918092619878358">SECG elliptikus görbe secp256r1 (vagyis ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Kísérleti (alfa minőségű) böngésző! Bizonyos funkciók hiányoznak vagy hiányosak. A hibákat a Súgó „Probléma bejelentése…” pontjában jelentheti be.</translation> <translation id="635609604405270300">Az eszköz bekapcsolva tartása</translation> <translation id="63566973648609420">Titkosított adatait csak az olvashatja el, aki rendelkezik összetett jelszavával. Az összetett jelszót a Google nem kapja meg, és nem is tárolja. Ha elfelejtette összetett jelszavát, vagy módosítani szeretné ezt a beállítást, <ph name="BEGIN_LINK" />alaphelyzetbe kell állítania a szinkronizálást<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" /> vagy a(z) <ph name="APP_NAME_2" /> alkalmazásban nyílnak meg.</translation> @@ -7009,7 +7007,6 @@ <translation id="7434757724413878233">Egér gyorsítása</translation> <translation id="7434969625063495310">Nem sikerült hozzáadni a nyomtatószervert. Ellenőrizze a szerver beállításait, majd próbálja újra.</translation> <translation id="7436921188514130341">Ajjaj! Hiba történt az átnevezés közben.</translation> -<translation id="7438495332316988804">A hagyományos böngésző megkereséséhez gépelje be a „Chrome” karakterláncot az Indítóba.</translation> <translation id="7439519621174723623">A folytatáshoz adja meg az eszköz nevét</translation> <translation id="7441736921018636843">A beállítás módosításához <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />, hogy eltávolíthassa összetett szinkronizálási jelszavát.</translation> <translation id="7441830548568730290">Más felhasználók</translation> @@ -7590,6 +7587,7 @@ <translation id="7952904276017482715">A várt azonosító „<ph name="EXPECTED_ID" />”, de a kapott azonosító „<ph name="NEW_ID" />”</translation> <translation id="7953669802889559161">Beviteli módszerek</translation> <translation id="7953955868932471628">Parancsikonok kezelése</translation> +<translation id="7955105108888461311">Kérés személyesen</translation> <translation id="7955177647836564772">Ha a Smart Lock be van kapcsolva, telefonja pedig fel van oldva, nem kell jelszót vagy PIN-kódot megadnia.</translation> <translation id="7956373551960864128">Mentett nyomtatók</translation> <translation id="7957074856830851026">Eszközadatok megtekintése, például az eszköz sorozatszáma vagy tartalomazonosítója</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index c337976..8158602 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -768,6 +768,7 @@ <translation id="168715261339224929">Ձեր ներդիրները ձեր բոլոր սարքերում օգտագործելու համար միացրեք համաժամացումը</translation> <translation id="1688867105868176567">Ջնջե՞լ կայքի տվյալները</translation> <translation id="1688935057616748272">Մուտքագրեք տառ</translation> +<translation id="1689333818294560261">Կեղծանուն</translation> <translation id="168991973552362966">Ավելացրեք մոտակայքում գտնվող տպիչ</translation> <translation id="1689945336726856614">Պատճենել &URL-ը</translation> <translation id="1692115862433274081">Օգտագործել այլ հաշիվ</translation> @@ -1512,7 +1513,6 @@ <translation id="2329597144923131178">Մուտք գործեք՝ ձեր էջանիշները, պատմությունը, գաղտնաբառերն ու այլ կարգավորումները ձեր բոլոր սարքերում համաժամացնելու համար:</translation> <translation id="2332115969598251205">Չհաջողվեց բեռնել <ph name="PRIMARY_EMAIL" /> հաշվում պահված սարքերը։ Ստուգեք կապը և նորից փորձեք։</translation> <translation id="2332131598580221120">Դիտել խանութում</translation> -<translation id="2332192922827071008">Բացել կարգավորումները</translation> <translation id="2332515770639153015">Բարելավված Ապահով դիտարկումը միացված է</translation> <translation id="2332742915001411729">Վերադարձ կանխադրվածին</translation> <translation id="2332948465534020594">«Չանհանգստացնել» ռեժիմը միացված է</translation> @@ -4281,7 +4281,6 @@ <translation id="4893336867552636863">Այս սարքից այցելությունների տվյալներն ընդմիշտ կջնջվեն:</translation> <translation id="4893454800196085005">Լավ՝ DVD</translation> <translation id="4893522937062257019">Կողպէկրանին</translation> -<translation id="4897496410259333978">Լրացուցիչ տեղեկությունների համար դիմեք ձեր ադմինիստրատորին։</translation> <translation id="4898011734382862273">«<ph name="CERTIFICATE_NAME" />» հավաստագիրը ներկայացնում է հավաստագրման կենտրոնը</translation> <translation id="4899052647152077033">Շրջել գույները</translation> <translation id="4899696330053002588">Պարունակում է գովազդ</translation> @@ -5814,7 +5813,6 @@ <translation id="6347010704471250799">Ցուցադրել ծանուցում</translation> <translation id="6349101878882523185">Տեղադրել <ph name="APP_NAME" /> հավելվածը</translation> <translation id="6354918092619878358">SECG օվալաձև կոր secp256r1 (հայտնի է նաև որպես ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Սա փորձնական դիտարկիչ է (ալֆա տարբերակ)։ Որոշ գործառույթներ կարող են բացակայել կամ թերի լինել։ Խնդիրների մասին կարող եք հաղորդել՝ սեղմելով Օգնություն > «Հաղորդել խնդրի մասին»։</translation> <translation id="635609604405270300">Սարքը մի՛ անջատեք</translation> <translation id="63566973648609420">Միայն ձեր անցաբառն ունեցող օգտատերը կարող է կարդալ ձեր գաղտնագրված տվյալները: Անցաբառը չի ուղարկվում Google-ին և չի պահվում դրա կողմից: Անցաբառը մոռանալու դեպքում ձեզ անհրաժեշտ կլինի <ph name="BEGIN_LINK" />վերակայել համաժամացումը<ph name="END_LINK" />:</translation> <translation id="6357305427698525450">Որոշ աջակցվող հղումներ նախկինի պես կբացվեն <ph name="APP_NAME" /> կամ <ph name="APP_NAME_2" /> հավելվածում։</translation> @@ -6975,7 +6973,6 @@ <translation id="7434757724413878233">Մկնիկի արագացում</translation> <translation id="7434969625063495310">Չհաջողվեց ավելացնել տպման սերվերը։ Ստուգեք սերվերի կարգավորումները և նորից փորձեք։</translation> <translation id="7436921188514130341">Վերանվանման ժամանակ սխալ առաջացավ:</translation> -<translation id="7438495332316988804">Սովորական դիտարկիչը կարող եք գտնել՝ Գործարկիչում մուտքագրելով «Chrome»։</translation> <translation id="7439519621174723623">Շարունակելու համար ավելացրեք սարքի անունը</translation> <translation id="7441736921018636843">Կարգավորումը փոփոխելու համար <ph name="BEGIN_LINK" />վերակայեք համաժամացումը<ph name="END_LINK" />, որպեսզի հեռացնեք համաժամացման անցաբառը</translation> <translation id="7441830548568730290">Այլ օգտատերեր</translation> @@ -7552,6 +7549,7 @@ <translation id="7952904276017482715">Սպասված ID-ն՝ «<ph name="EXPECTED_ID" />», ստացված ID-ն՝ «<ph name="NEW_ID" />»</translation> <translation id="7953669802889559161">Ներածման մեթոդներ</translation> <translation id="7953955868932471628">Կառավարել դյուրանցումները</translation> +<translation id="7955105108888461311">Հարցնել անձամբ</translation> <translation id="7955177647836564772">Եթե Smart Lock-ը միացված է, և հեռախոսն ապակողպված է, PIN կոդ կամ գաղտնաբառ մուտքագրելու կարիք չկա</translation> <translation id="7956373551960864128">Ձեր պահված տպիչները</translation> <translation id="7957074856830851026">Տեսնել սարքի մասին տեղեկություններ, օրինակ՝ սերիական համարը և օբյեկտի ID-ն</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index a6789d4..58e871e0 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Buka &Gambar Asli di Tab Baru</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Update <ph name="DEVICE_TYPE" /> dalam 1 minggu}other{Update <ph name="DEVICE_TYPE" /> dalam {NUM_WEEKS} minggu}}</translation> <translation id="1056898198331236512">Peringatan</translation> +<translation id="1056980582064308040">Mengubah setelan akan memulai ulang hotspot. Perangkat yang menggunakan hotspot akan terputus.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Masukkan PIN baru. PIN harus berisi minimal satu karakter dan dapat berisi huruf, angka, dan karakter lain.}other{Masukkan PIN baru. PIN harus berisi minimal # karakter dan dapat berisi huruf, angka, dan karakter lainnya.}}</translation> <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">Berhenti</translation> <translation id="1272508081857842302">Membuka <ph name="BEGIN_LINK" />link yang didukung<ph name="END_LINK" /></translation> <translation id="1272978324304772054">Akun pengguna ini tidak berada di domain tempat perangkat mendaftar. Jika Anda ingin mendaftar ke domain lain, Anda perlu melakukan pemulihan perangkat terlebih dulu.</translation> +<translation id="1273937721055267968">Blokir <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookie dan data situs lainnya</translation> <translation id="1275718070701477396">Dipilih</translation> <translation id="1276994519141842946">Tidak dapat meng-uninstal <ph name="APP_NAME" /></translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">Untuk mengaktifkan proses debug ADB, Anda perlu memulai ulang <ph name="DEVICE_TYPE" /> ini. Perlu melakukan reset ke setelan pabrik untuk menonaktifkannya.</translation> <translation id="1327527584824210101">Gunakan kunci sandi</translation> <translation id="1327794256477341646">Fitur yang memerlukan lokasi Anda tidak akan berfungsi</translation> +<translation id="1329466763986822896">Tingkatkan privasi untuk hotspot ini</translation> <translation id="1331977651797684645">Ini saya.</translation> <translation id="1333489022424033687">Beberapa fitur di <ph name="ORIGIN" /> mungkin tidak berfungsi kecuali Anda menghapus data yang telah disimpan di perangkat Anda oleh situs lain</translation> <translation id="1333965224356556482">Jangan izinkan situs melihat lokasi Anda</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Jendela samaran Anda tidak akan dibuka kembali.}other{# jendela samaran Anda tidak akan dibuka kembali.}}</translation> <translation id="1546280085599573572">Ekstensi ini telah mengubah halaman apa yang ditampilkan saat Anda mengklik tombol Beranda.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ingin menginstal <ph name="EXTENSION_TYPE" /> yang dapat:</translation> +<translation id="1547123415014299762">Cookie pihak ketiga diizinkan</translation> <translation id="1547808936554660006">Saya memahami bahwa profil eSIM yang diinstal tidak akan dihapus dengan Powerwash</translation> <translation id="1547936895218027488">Klik ikon panel samping untuk membukanya</translation> <translation id="1549275686094429035">ARC Aktif</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">Agar bookmark tersedia di semua perangkat Anda, aktifkan sinkronisasi.</translation> <translation id="1688867105868176567">Hapus data situs?</translation> <translation id="1688935057616748272">Ketik huruf</translation> +<translation id="1689333818294560261">Nama panggilan</translation> <translation id="168991973552362966">Tambahkan printer terdekat</translation> <translation id="1689945336726856614">Salin &URL</translation> <translation id="1692115862433274081">Gunakan akun lain</translation> @@ -1408,6 +1413,7 @@ <translation id="2247870315273396641">Pratinjau suara</translation> <translation id="2249111429176737533">Buka sebagai jendela multi-tab</translation> <translation id="2249605167705922988">misal: 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Sesuaikan info yang digunakan situs untuk menampilkan iklan</translation> <translation id="2251218783371366160">Buka menggunakan penampil sistem</translation> <translation id="225163402930830576">Segarkan Jaringan</translation> <translation id="2251809247798634662">Jendela Samaran baru</translation> @@ -1525,7 +1531,6 @@ <translation id="2329597144923131178">Login untuk mendapatkan bookmark, histori, sandi, dan setelan Anda lainnya di semua perangkat.</translation> <translation id="2332115969598251205">Tidak dapat memuat perangkat yang disimpan ke <ph name="PRIMARY_EMAIL" />. Periksa koneksi internet Anda, lalu coba lagi.</translation> <translation id="2332131598580221120">Lihat di toko</translation> -<translation id="2332192922827071008">Buka Preferensi</translation> <translation id="2332515770639153015">Safe Browsing yang Disempurnakan aktif</translation> <translation id="2332742915001411729">Reset ke default</translation> <translation id="2332948465534020594">Jangan ganggu diaktifkan</translation> @@ -1859,6 +1864,7 @@ <translation id="2640299212685523844">Gunakan GTK</translation> <translation id="264083724974021997">Hubungkan ke ponsel Anda - Dialog</translation> <translation id="2642111877055905627">Bola sepak</translation> +<translation id="2643064289437760082">Anda dapat menghapus data pengukuran iklan kapan saja dengan menghapus data penjelajahan</translation> <translation id="2643698698624765890">Kelola ekstensi Anda dengan mengklik Ekstensi pada menu Window.</translation> <translation id="2645047101481282803">Perangkat Anda dikelola oleh <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2318,6 +2324,7 @@ <translation id="3036327949511794916">Batas waktu untuk mengembalikan <ph name="DEVICE_TYPE" /> ini telah habis.</translation> <translation id="3036546437875325427">Aktifkan Flash</translation> <translation id="3037754279345160234">Tidak dapat mengurai konfigurasi untuk bergabung dengan domain. Hubungi administrator.</translation> +<translation id="3038272154009688107">Lihat semua situs</translation> <translation id="3038612606416062604">Tambahkan printer secara manual</translation> <translation id="3039491566278747710">Gagal menginstal kebijakan offline di perangkat.</translation> <translation id="3043016484125065343">Login untuk melihat bookmark Anda</translation> @@ -2554,6 +2561,7 @@ <translation id="3289668031376215426">Kapitalisasi otomatis</translation> <translation id="3289856944988573801">Untuk memeriksa pembaruan, gunakan Ethernet atau Wi-Fi.</translation> <translation id="3290249595466894471">Juga mengirimkan sedikit contoh halaman, download, aktivitas ekstensi, dan informasi sistem untuk membantu menemukan ancaman baru</translation> +<translation id="3293181007446299124">Histori penjelajahan Anda tetap bersifat pribadi di perangkat Anda dan laporan dikirim dengan penundaan untuk melindungi identitas Anda</translation> <translation id="3293644607209440645">Kirim halaman ini</translation> <translation id="32939749466444286">Container Linux tidak dimulai. Harap coba lagi.</translation> <translation id="3294437725009624529">Tamu</translation> @@ -3334,6 +3342,7 @@ <translation id="3984431586879874039">Izinkan situs ini melihat kunci keamanan Anda?</translation> <translation id="398477389655464998">Salin Link ke Sorotan</translation> <translation id="3984862166739904574">Definisi Jawaban Instan</translation> +<translation id="3985022125189960801">Tambahkan situs kembali jika Anda menginginkannya berada di kumpulan situs yang dapat menebak hal-hal yang Anda sukai</translation> <translation id="3987544746655539083">Terus blokir situs ini agar tidak mengakses lokasi Anda</translation> <translation id="3987938432087324095">Maaf, kurang jelas.</translation> <translation id="3987993985790029246">Salin link</translation> @@ -3711,6 +3720,7 @@ <translation id="4366138410738374926">Pencetakan dimulai</translation> <translation id="4367513928820380646">Tinjau izin yang dihapus</translation> <translation id="4369215744064167350">Permintaan situs disetujui</translation> +<translation id="4369735607080757018">Jenis data tertentu akan dibagikan antar-situs untuk mengukur performa iklan situs tersebut, seperti waktu iklan ditampilkan kepada Anda</translation> <translation id="4370975561335139969">Email dan sandi yang Anda masukkan tidak cocok</translation> <translation id="4374831787438678295">Installer Linux</translation> <translation id="4375035964737468845">Membuka file yang didownload</translation> @@ -3731,6 +3741,7 @@ <translation id="4385146930797718821">Screenshot disalin ke papan klip</translation> <translation id="4385905942116811558">Menelusuri perangkat Bluetooth dan USB</translation> <translation id="4387890294700445764">Sandi yang telah dibobol</translation> +<translation id="4388650384344483842">Gunakan minimal 8 karakter</translation> <translation id="4389091756366370506">Pengguna <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, dan <ph name="NUMBER_OF_OTHER_SWITCHES" /> tombol lainnya</translation> <translation id="439266289085815679">Konfigurasi Bluetooth dikontrol oleh <ph name="USER_EMAIL" />.</translation> @@ -4053,6 +4064,7 @@ <translation id="4666472247053585787">Lihat notifikasi dari ponsel di <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Aplikasi lainnya</translation> <translation id="4667027203988048332">Data yang digunakan:</translation> +<translation id="4668279686271488041">Data pengukuran iklan dihapus secara berkala dari perangkat Anda</translation> <translation id="4672759829555593783">Buka <ph name="FILE_NAME" /> sekarang</translation> <translation id="46733273239502219">Data offline di aplikasi terinstal juga akan dihapus</translation> <translation id="4673442866648850031">Buka alat stilus saat stilus dihapus</translation> @@ -4246,6 +4258,7 @@ <translation id="485480310608090163">Setelan dan izin lainnya</translation> <translation id="4858913220355269194">Ronaldo</translation> <translation id="4862642413395066333">Tanggapan OCSP Penandatanganan</translation> +<translation id="4863702650881330715">Perluas kompatibilitas</translation> <translation id="4863769717153320198">Terlihat seperti <ph name="WIDTH" /> x <ph name="HEIGHT" /> (Default)</translation> <translation id="4864805589453749318">Pilih orang tua yang memberikan izin untuk menambahkan akun sekolah.</translation> <translation id="486635084936119914">Buka jenis file tertentu secara otomatis setelah didownload</translation> @@ -4294,7 +4307,6 @@ <translation id="4893336867552636863">Tindakan ini akan menghapus data penjelajahan Anda dari perangkat ini secara permanen.</translation> <translation id="4893454800196085005">Baik - DVD</translation> <translation id="4893522937062257019">Di layar kunci</translation> -<translation id="4897496410259333978">Untuk informasi selengkapnya, hubungi administrator Anda.</translation> <translation id="4898011734382862273">Sertifikat "<ph name="CERTIFICATE_NAME" />" mewakili Otoritas Sertifikasi</translation> <translation id="4899052647152077033">Inversi warna</translation> <translation id="4899696330053002588">Berisi iklan</translation> @@ -4492,6 +4504,7 @@ <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang kooperatif</translation> <translation id="5097002363526479830">Gagal menyambung ke jaringan '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Pelajari cara menggunakan lokasi lebih lanjut</translation> +<translation id="5097349930204431044">Situs yang Anda buka dapat menentukan hal-hal yang Anda sukai, lalu menyarankan iklan saat Anda melanjutkan penjelajahan</translation> <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klik secara otomatis saat kursor berhenti</translation> <translation id="5101683448725092498">Cadangkan data Anda</translation> @@ -4674,6 +4687,7 @@ <translation id="5275352920323889391">Anjing</translation> <translation id="527605719918376753">Nonaktifkan tab</translation> <translation id="527605982717517565">Selalu izinkan JavaScript di <ph name="HOST" /></translation> +<translation id="5276357196618041410">Tidak dapat menyimpan konfigurasi tanpa login terlebih dahulu</translation> <translation id="5277127016695466621">Tampilkan panel samping</translation> <translation id="5278823018825269962">ID Status</translation> <translation id="5279600392753459966">Blokir semua</translation> @@ -5828,7 +5842,6 @@ <translation id="6347010704471250799">Tampilkan notifikasi</translation> <translation id="6349101878882523185">Instal <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Kurva eliptis SECG secp256r1 (alias ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Browser eksperimental (kualitas alfa). Beberapa fitur mungkin tidak ada atau tidak lengkap. Laporkan masalah melalui: Bantuan > "Laporkan masalah ...".</translation> <translation id="635609604405270300">Jaga perangkat tetap menyala</translation> <translation id="63566973648609420">Hanya orang yang memiliki frasa sandi Anda yang dapat membaca data terenkripsi. Frasa sandi tidak dikirim ke atau disimpan oleh Google. Jika lupa frasa sandi atau ingin mengubah setelan ini, Anda perlu <ph name="BEGIN_LINK" />menyetel ulang sinkronisasi<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" /> atau <ph name="APP_NAME_2" />.</translation> @@ -6168,6 +6181,7 @@ <translation id="6670767097276846646">Beberapa ekstensi dapat menambahkan mesin telusur ke Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 alamat}other{# alamat}}</translation> <translation id="6671497123040790595">Menyiapkan pengelolaan oleh <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Tambahkan <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Untuk memulai sinkronisasi, masukkan frasa sandi</translation> <translation id="6675665718701918026">Perangkat penunjuk telah terhubung</translation> @@ -6251,6 +6265,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Samaran)</translation> <translation id="6756157672127672536">Aplikasi File memberikan akses cepat ke file yang telah Anda simpan di Google Drive, penyimpanan eksternal, atau perangkat ChromeOS.</translation> <translation id="6756643207511618722">Mesin ucapan</translation> +<translation id="6757431299485455321">Bantu perangkat lain menemukan hotspot ini.</translation> <translation id="6758056191028427665">Berikan masukan Anda tentang kinerja kami.</translation> <translation id="6759193508432371551">Kembalikan ke setelan pabrik</translation> <translation id="6761431452438552910">Pastikan perangkat Bluetooth Anda dalam mode penyambungan dan berada di sekitar. Hanya sambungkan dengan perangkat yang Anda percayai.</translation> @@ -6350,6 +6365,7 @@ <translation id="6833479554815567477">Tab dihapus dari grup <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Beralih ke browser cerdas dan aman</translation> <translation id="6833996806551876956">Uji coba Privacy Sandbox</translation> +<translation id="6835712061486505758">Buat hotspot Wi-Fi guna menyediakan internet untuk perangkat lain. <ph name="BEGIN_LINK_LEARN_MORE" />Pelajari lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Sambungkan ke internet untuk memperbarui <ph name="DEVICE_TYPE" /> Anda.</translation> <translation id="6839225236531462745">Kesalahan Penghapusan Sertifikat</translation> <translation id="6839916869147598086">Login telah berubah</translation> @@ -6511,6 +6527,7 @@ <translation id="697508444536771064">Matikan Linux</translation> <translation id="6975361011348772931">Meminta untuk membaca & mengubah</translation> <translation id="6978121630131642226">Mesin Telusur</translation> +<translation id="6978717888677691380">Situs yang Anda blokir</translation> <translation id="6979041727349121225">Penghemat Energi</translation> <translation id="6979044105893951891">Luncurkan dan tutup sesi tamu terkelola</translation> <translation id="6979440798594660689">Matikan (default)</translation> @@ -6602,6 +6619,7 @@ <translation id="7047059339731138197">Pilih latar belakang</translation> <translation id="7048457618657122233">Bagikan link ke <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Simpan file?</translation> +<translation id="7050037487872780845">Konfigurasi hotspot tidak valid</translation> <translation id="7052237160939977163">Mengirim data pelacakan kinerja</translation> <translation id="7053983685419859001">Blokir</translation> <translation id="7055152154916055070">Pengalihan diblokir:</translation> @@ -6806,6 +6824,7 @@ <translation id="7258192266780953209">Transformasi</translation> <translation id="7258225044283673131">Aplikasi tidak merespons. Pilih "Tutup paksa" untuk menutup aplikasi.</translation> <translation id="7260186537988033909">Pendaftaran perangkat kios dan reklame selesai</translation> +<translation id="7260367682327802201">Perangkat Android Anda mungkin menyertakan setelan serupa. Jika Pengukuran iklan diaktifkan di Chrome dan di perangkat Android Anda, perusahaan iklan mungkin dapat mengukur keefektifan iklan di semua situs yang Anda buka dan aplikasi yang Anda gunakan.</translation> <translation id="7262004276116528033">Layanan masuk ini dihosting oleh <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Izin dihapus untuk 1 situs}other{Izin dihapus untuk {NUM_SITES} situs}}</translation> <translation id="7264695323040866038">Selalu gunakan aplikasi <ph name="APP" /> untuk membuka link web yang didukung?</translation> @@ -6949,6 +6968,7 @@ <translation id="7406912950279255498">Mode inversi warna</translation> <translation id="7407430846095439694">Impor dan Kaitkan</translation> <translation id="7407504355934009739">Sebagian besar orang memblokir notifikasi dari situs ini</translation> +<translation id="7408080603962564527">Nama ini akan terlihat oleh orang lain</translation> <translation id="740810853557944681">Tambahkan server cetak</translation> <translation id="7409549334477097887">Sangat besar</translation> <translation id="7409599290172516453">Foto Terbaru</translation> @@ -6987,7 +7007,6 @@ <translation id="7434757724413878233">Akselerasi mouse</translation> <translation id="7434969625063495310">Tidak dapat menambahkan server cetak. Harap periksa konfigurasi server dan coba lagi.</translation> <translation id="7436921188514130341">Maaf. Terjadi error saat mengganti nama.</translation> -<translation id="7438495332316988804">Browser standar dapat ditemukan dengan mengetik "Chrome" di Peluncur.</translation> <translation id="7439519621174723623">Tambahkan nama perangkat untuk melanjutkan</translation> <translation id="7441736921018636843">Untuk mengubah setelan ini, <ph name="BEGIN_LINK" />reset sinkronisasi<ph name="END_LINK" /> untuk menghapus frasa sandi sinkronisasi</translation> <translation id="7441830548568730290">Pengguna lainnya</translation> @@ -7264,6 +7283,7 @@ <translation id="7684718995427157417">Untuk membuat dan menguji aplikasi, aktifkan Android Debug Bridge (ADB). Perhatikan bahwa tindakan ini dapat menginstal aplikasi Android yang belum diverifikasi oleh Google, dan perlu peresetan ke setelan pabrik untuk menonaktifkannya.</translation> <translation id="7685049629764448582">Memori JavaScript</translation> <translation id="7685087414635069102">Perlu PIN</translation> +<translation id="7686086654630106285">Selengkapnya tentang iklan yang disarankan situs</translation> <translation id="7686581688229391955">Pilih untuk mengizinkan ekstensi di situs ini</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Konfirmasi sandi baru</translation> @@ -7285,6 +7305,7 @@ <translation id="7704317875155739195">Lengkapi otomatis penelusuran dan URL</translation> <translation id="7704521324619958564">Buka Play Store</translation> <translation id="7705276765467986571">Tidak dapat memuat model bookmark.</translation> +<translation id="7705334495398865155">Acak ID hardware (BSSID) Anda untuk mencegah orang lain melacak perangkat ini.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Situs ini telah diblokir agar tidak dapat mengakses sensor gerakan.</translation> <translation id="7707922173985738739">Gunakan data seluler</translation> @@ -7478,6 +7499,7 @@ <translation id="7881483672146086348">Lihat Akun</translation> <translation id="7883792253546618164">Anda dapat berhenti berlangganan kapan saja.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Tinjau 1 situs yang mengirim banyak notifikasi}other{Tinjau {NUM_SITES} situs yang mengirim banyak notifikasi}}</translation> +<translation id="7884446017008693258">Setelan Hotspot</translation> <translation id="788453346724465748">Memuat informasi akun ...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 item}other{# item}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7565,6 +7587,7 @@ <translation id="7952904276017482715">ID yang diharapkan "<ph name="EXPECTED_ID" />", namun ID-nya adalah "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Input</translation> <translation id="7953955868932471628">Kelola pintasan</translation> +<translation id="7955105108888461311">Tanya secara langsung</translation> <translation id="7955177647836564772">Jika Smart Lock diaktifkan dan ponsel tidak terkunci, Anda tidak perlu memasukkan sandi atau PIN</translation> <translation id="7956373551960864128">Printer yang Anda simpan</translation> <translation id="7957074856830851026">Melihat informasi perangkat, seperti nomor seri atau ID aset</translation> @@ -7703,6 +7726,7 @@ <ph name="BEGIN_PARAGRAPH3" />Anda dapat menonaktifkan layanan ini di Setelan.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Tab</translation> <translation id="8076835018653442223">Akses ke file lokal di perangkat Anda dinonaktifkan oleh administrator</translation> +<translation id="8077120325605624147">Setiap situs yang Anda buka dapat menampilkan iklan apa pun kepada Anda</translation> <translation id="80798452873915119">Situs dapat meminta untuk mengelola jendela di semua layar</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Sesi Anda dikelola oleh <ph name="MANAGER_NAME" />. Administrator dapat menghapus profil serta memantau traffic jaringan Anda.</translation> @@ -8215,6 +8239,7 @@ <translation id="8557180006508471423">Aktifkan "Google Chrome" di Layanan Lokasi pada Mac</translation> <translation id="8557856025359704738">Download berikutnya pada <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Kunci sandi</translation> +<translation id="8559961053328923750">Chrome membatasi jumlah total data yang dapat dibagikan oleh situs melalui browser untuk mengukur performa iklan</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Buka Semua di &Jendela Baru}=1{Buka di &Jendela Baru}other{Buka Semua ({COUNT}) di &Jendela Baru}}</translation> <translation id="8561206103590473338">Gajah</translation> <translation id="8561565784790166472">Lanjutkan dengan hati-hati</translation> @@ -8356,6 +8381,7 @@ <translation id="8678933587484842200">Bagaimana Anda ingin meluncurkan aplikasi ini?</translation> <translation id="8680251145628383637">Login untuk mendapatkan bookmark, histori, sandi, dan setelan lain di semua perangkat. Anda juga akan otomatis masuk ke layanan Google.</translation> <translation id="8681614230122836773">Chrome menemukan software berbahaya di komputer Anda</translation> +<translation id="8681886425883659911">Iklan diblokir di situs yang dikenal menampilkan iklan yang mengganggu atau menyesatkan</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> terhubung dan siap digunakan</translation> <translation id="8687103160920393343">Batalkan <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Tersedia</translation> @@ -8726,6 +8752,7 @@ <translation id="9021662811137657072">Virus terdeteksi</translation> <translation id="902236149563113779">Situs biasanya melacak posisi kamera Anda untuk fitur AR, seperti game atau petunjuk arah</translation> <translation id="9022847679183471841">Akun ini sudah digunakan di komputer ini dengan nama <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">Situs dan pengiklan dapat mengukur performa iklannya</translation> <translation id="9023015617655685412">Bookmark tab ini...</translation> <translation id="9023909777842748145">Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda dalam mengirimkan informasi yang diperlukan bagi layanan penting seperti keamanan dan update sistem.</translation> <translation id="9024127637873500333">&Buka di Tab Baru</translation> @@ -8855,6 +8882,7 @@ <translation id="9128335130883257666">Buka halaman setelan untuk <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Sambungkan ke jaringan</translation> <translation id="9130015405878219958">Mode yang dimasukkan tidak valid.</translation> +<translation id="9131209053278896908">Situs yang diblokir akan muncul di sini</translation> <translation id="9131487537093447019">Kirim pesan ke dan terima pesan dari perangkat Bluetooth.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 bookmark}other{# bookmark}}</translation> <translation id="9134066738478820307">Situs dapat menggunakan ID untuk memutar konten yang dilindungi</translation> @@ -8908,6 +8936,7 @@ <translation id="9180281769944411366">Proses ini dapat memerlukan waktu beberapa menit. Memulai container Linux.</translation> <translation id="9180380851667544951">Situs dapat membagikan layar Anda</translation> <translation id="9182556968660520230">Jangan izinkan situs memutar konten yang dilindungi</translation> +<translation id="9183331776983279456">Chrome akan otomatis menghapus situs yang tersimpan lebih dari 4 minggu. Situs yang Anda buka lagi dapat kembali muncul di daftar. Atau, Anda dapat memblokir situs agar tidak menyarankan iklan untuk Anda.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Aplikasi}other{# aplikasi}}</translation> <translation id="9186963452600581158">Login dengan Akun Google anak</translation> <translation id="9187967020623675250">Kunci tidak cocok. Tekan sembarang kunci untuk <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 8b3c692..86bf8bf 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -770,6 +770,7 @@ <translation id="168715261339224929">Kveiktu á samstillingu til að fá aðgang að bókamerkjunum þínum í öllum tækjum.</translation> <translation id="1688867105868176567">Viltu hreinsa vefsvæðagögn?</translation> <translation id="1688935057616748272">Sláðu inn staf</translation> +<translation id="1689333818294560261">Gælunafn</translation> <translation id="168991973552362966">Bæta nálægum prentara við</translation> <translation id="1689945336726856614">Afrita &vefslóð</translation> <translation id="1692115862433274081">Nota annan reikning</translation> @@ -1526,7 +1527,6 @@ <translation id="2329597144923131178">Skráðu þig inn til að fá bókamerkin þín, ferilinn, aðgangsorð og aðrar stillingar í öll tækin þín.</translation> <translation id="2332115969598251205">Ekki tókst að hlaða tækjum sem eru vistuð á <ph name="PRIMARY_EMAIL" />. Athugaðu nettenginguna og reyndu aftur.</translation> <translation id="2332131598580221120">Skoða í verslun</translation> -<translation id="2332192922827071008">Opna kjörstillingar</translation> <translation id="2332515770639153015">Kveikt er á enn öruggari vefskoðun</translation> <translation id="2332742915001411729">Endurstilla á sjálfgefið</translation> <translation id="2332948465534020594">Kveikt er á „Ónáðið ekki“</translation> @@ -4295,7 +4295,6 @@ <translation id="4893336867552636863">Þetta mun eyða vefskoðunargögnum varanlega úr þessu tæki.</translation> <translation id="4893454800196085005">Góð – DVD</translation> <translation id="4893522937062257019">Á lásskjánum</translation> -<translation id="4897496410259333978">Hafðu samband við kerfisstjórann til að fá nánari upplýsingar.</translation> <translation id="4898011734382862273">Vottorðið „<ph name="CERTIFICATE_NAME" />“ stendur fyrir vottunarstöð</translation> <translation id="4899052647152077033">Umsnúa litum</translation> <translation id="4899696330053002588">Inniheldur auglýsingar</translation> @@ -5829,7 +5828,6 @@ <translation id="6347010704471250799">Sýna tilkynningu</translation> <translation id="6349101878882523185">Setja upp <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG sporger ferill secp256r1 (e.þ.s. ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Tilraunaútgáfa (í tilraunagæðum) vafra! Sumir eiginleikar eru ekki til staðar eða eru óvirkir. Tilkynntu vandamál með: Hjálp > „Tilkynna vandamál…“.</translation> <translation id="635609604405270300">Hafðu kveikt á tækinu</translation> <translation id="63566973648609420">Aðeins þeir sem vita aðgangsorðið geta lesið dulkóðuðu gögnin þín. Aðgangsorðið er ekki sent til Google eða vistað þar. Ef þú gleymir aðgangsorðinu eða þig langar að breyta þessari stillingu þarftu að <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" /> eða <ph name="APP_NAME_2" />.</translation> @@ -6990,7 +6988,6 @@ <translation id="7434757724413878233">Hröðun músar</translation> <translation id="7434969625063495310">Ekki var hægt að bæta við prentþjóni. Athugaðu stillingar þjónsins og reyndu aftur.</translation> <translation id="7436921188514130341">Úbbs! Villa kom upp við að breyta heiti.</translation> -<translation id="7438495332316988804">Hægt er að finna venjulega vafrann með því að slá „Chrome“ inn í ræsiforritið.</translation> <translation id="7439519621174723623">Bættu við heiti tækis til að halda áfram</translation> <translation id="7441736921018636843">Til að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /> til að fjarlægja aðgangsorð samstillingar</translation> <translation id="7441830548568730290">Aðrir notendur</translation> @@ -7568,6 +7565,7 @@ <translation id="7952904276017482715">Búist var við auðkenninu „<ph name="EXPECTED_ID" />“ en auðkennið er „<ph name="NEW_ID" />“</translation> <translation id="7953669802889559161">Innsláttur</translation> <translation id="7953955868932471628">Stjórna flýtileiðum</translation> +<translation id="7955105108888461311">Spyrja í eigin persónu</translation> <translation id="7955177647836564772">Ef kveikt er á Smart Lock og síminn er ólæstur þarftu ekki að slá inn aðgangsorð eða PIN-númer</translation> <translation id="7956373551960864128">Vistaðir prentarar þínir</translation> <translation id="7957074856830851026">Sjá upplýsingar um tæki, svo sem raðnúmer eða eignarauðkenni</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index c141086..7a43c0c 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -766,6 +766,7 @@ <translation id="168715261339224929">Attiva la sincronizzazione per trovare i tuoi preferiti su tutti i dispositivi.</translation> <translation id="1688867105868176567">Cancellare i dati del sito?</translation> <translation id="1688935057616748272">Digita una lettera</translation> +<translation id="1689333818294560261">Nickname</translation> <translation id="168991973552362966">Aggiungi una stampante vicina</translation> <translation id="1689945336726856614">Copia &URL</translation> <translation id="1692115862433274081">Utilizza un altro account</translation> @@ -900,7 +901,7 @@ L'eliminazione non riguarda app o contenuti presenti su altri dispositivi.</translation> <translation id="1809734401532861917">Aggiungi preferiti, cronologia, password e altre impostazioni a <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="1810366086647840386">Server immagine</translation> -<translation id="1811908311154949291">Frame fenced in incognito: <ph name="FENCEDFRAME_SITE" /></translation> +<translation id="1811908311154949291">Frame isolato in incognito: <ph name="FENCEDFRAME_SITE" /></translation> <translation id="1812284620455788548">Trasmissione all'app <ph name="TAB_NAME" /></translation> <translation id="1813278315230285598">Servizi</translation> <translation id="18139523105317219">EDI Party Name</translation> @@ -1510,7 +1511,6 @@ <translation id="2329597144923131178">Accedi per visualizzare i tuoi Preferiti, la cronologia, le password e altre impostazioni su tutti i tuoi dispositivi.</translation> <translation id="2332115969598251205">Impossibile caricare i dispositivi salvati in <ph name="PRIMARY_EMAIL" />. Controlla la connessione a Internet e riprova.</translation> <translation id="2332131598580221120">Visualizza nello store</translation> -<translation id="2332192922827071008">Apri Preferenze</translation> <translation id="2332515770639153015">Navigazione sicura avanzata attiva</translation> <translation id="2332742915001411729">Ripristina impostazioni predefinite</translation> <translation id="2332948465534020594">Funzionalità Non disturbare attiva</translation> @@ -1764,7 +1764,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> non è riuscito a collegarsi a <ph name="NETWORK_ID" />. Seleziona un'altra rete o riprova.</translation> <translation id="2553440850688409052">Nascondi questo plug-in</translation> <translation id="2554553592469060349">Il file selezionato è troppo grande (dimensioni massime: 3 mb).</translation> -<translation id="25568951186001797">Frame fenced: <ph name="FENCEDFRAME_SITE" /></translation> +<translation id="25568951186001797">Frame isolato: <ph name="FENCEDFRAME_SITE" /></translation> <translation id="2558569818338050235">La cronologia di navigazione incide sugli annunci che ti vengono mostrati</translation> <translation id="2559889124253841528">Salva sul dispositivo</translation> <translation id="2564520396658920462">L'esecuzione di JavaScript tramite AppleScript è disattivata. Per attivarla, vai alla barra dei menu, apri Visualizza > Sviluppatore > Consenti JavaScript da Apple Events. Per ulteriori informazioni, visita la pagina all'indirizzo https://support.google.com/chrome/?p=applescript</translation> @@ -4278,7 +4278,6 @@ <translation id="4893336867552636863">I tuoi dati di navigazione verranno eliminati definitivamente da questo dispositivo.</translation> <translation id="4893454800196085005">Buona - DVD</translation> <translation id="4893522937062257019">Nella schermata di blocco</translation> -<translation id="4897496410259333978">Per ulteriori informazioni, contatta l'amministratore.</translation> <translation id="4898011734382862273">Il certificato "<ph name="CERTIFICATE_NAME" />" rappresenta un'autorità di certificazione</translation> <translation id="4899052647152077033">Inverti i colori</translation> <translation id="4899696330053002588">Contiene annunci</translation> @@ -5809,7 +5808,6 @@ <translation id="6347010704471250799">Mostra notifica</translation> <translation id="6349101878882523185">Installa <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Curva ellittica SECG secp256r1 (anche nota come ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Browser sperimentale (qualità alpha). Alcune funzionalità potrebbero essere assenti o incomplete. Segnala eventuali problemi selezionando Guida > "Segnala un problema…".</translation> <translation id="635609604405270300">Tieni accesi i dispositivi</translation> <translation id="63566973648609420">Soltanto chi conosce la tua passphrase può leggere i tuoi dati criptati. La passphrase non viene inviata a Google né memorizzata. Se dimentichi la passphrase o vuoi modificare questa impostazione, dovrai <ph name="BEGIN_LINK" />reimpostare la sincronizzazione<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Alcuni link supportati saranno comunque aperti nelle app <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation> @@ -6968,7 +6966,6 @@ <translation id="7434757724413878233">Accelerazione del mouse</translation> <translation id="7434969625063495310">Impossibile aggiungere il server di stampa. Controlla la configurazione del server e riprova.</translation> <translation id="7436921188514130341">Uffa! Si è verificato un errore durante la ridenominazione.</translation> -<translation id="7438495332316988804">Il browser standard può essere trovato digitando "Chrome" nell'Avvio app.</translation> <translation id="7439519621174723623">Per continuare, aggiungi un nome per il dispositivo</translation> <translation id="7441736921018636843">Per modificare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /> per rimuovere la passphrase di sincronizzazione.</translation> <translation id="7441830548568730290">Altri utenti</translation> @@ -7546,6 +7543,7 @@ <translation id="7952904276017482715">ID previsto: "<ph name="EXPECTED_ID" />", ID rilevato: "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Metodi di immissione</translation> <translation id="7953955868932471628">Gestisci scorciatoie</translation> +<translation id="7955105108888461311">Chiedi di persona</translation> <translation id="7955177647836564772">Se la funzionalità Smart Lock è attiva e il telefono è sbloccato, non è necessario inserire una password o un PIN</translation> <translation id="7956373551960864128">Stampanti salvate</translation> <translation id="7957074856830851026">Visualizzazione di informazioni del dispositivo, ad esempio numero di serie o ID asset</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 2ce9ed8f..ec9de894 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -768,6 +768,7 @@ <translation id="168715261339224929">כדי שהסימניות שלך יופיעו בכל המכשירים, יש להפעיל סנכרון.</translation> <translation id="1688867105868176567">למחוק את נתוני האתר?</translation> <translation id="1688935057616748272">צריך להזין אות</translation> +<translation id="1689333818294560261">כינוי</translation> <translation id="168991973552362966">הוספת מדפסת קרובה</translation> <translation id="1689945336726856614">העתקת &כתובת אתר</translation> <translation id="1692115862433274081">חשבון אחר</translation> @@ -1524,7 +1525,6 @@ <translation id="2329597144923131178">יש להיכנס כדי לקבל גישה אל הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות בכל המכשירים שברשותך.</translation> <translation id="2332115969598251205">לא ניתן לטעון מכשירים שנשמרו בחשבון <ph name="PRIMARY_EMAIL" />. יש לבדוק את החיבור לאינטרנט ולנסות שוב.</translation> <translation id="2332131598580221120">הצגה בחנות</translation> -<translation id="2332192922827071008">פתיחת ההעדפות</translation> <translation id="2332515770639153015">הגרסה המשופרת של הגלישה הבטוחה מופעלת</translation> <translation id="2332742915001411729">איפוס לברירת המחדל</translation> <translation id="2332948465534020594">מצב 'נא לא להפריע' פועל</translation> @@ -4294,7 +4294,6 @@ <translation id="4893336867552636863">הפעולה הזו תמחק לצמיתות את נתוני הגלישה שלך במכשיר הזה.</translation> <translation id="4893454800196085005">טוב – DVD</translation> <translation id="4893522937062257019">במסך הנעילה</translation> -<translation id="4897496410259333978">למידע נוסף, יש לפנות אל מנהל המערכת.</translation> <translation id="4898011734382862273">האישור <ph name="CERTIFICATE_NAME" /> מייצג רשות אישורים</translation> <translation id="4899052647152077033">היפוך צבעים</translation> <translation id="4899696330053002588">מכילה מודעות</translation> @@ -5828,7 +5827,6 @@ <translation id="6347010704471250799">הצגת התראה</translation> <translation id="6349101878882523185">התקנת <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">עקומה אליפטית SECG מסוג secp256r1 (מוכרת גם בשם ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">דפדפן ניסיוני (באיכות אלפא)! כמה מהתכונות חסרות או חלקיות. אפשר לדווח על בעיות דרך 'עזרה' > "דיווח על בעיה…".</translation> <translation id="635609604405270300">אין לכבות את המכשיר</translation> <translation id="63566973648609420">רק מי שיודע את ביטוי הסיסמה יכול לקרוא את הנתונים המוצפנים. ביטוי הסיסמה לא נשלח אל Google והיא אינה מאחסנת אותו. אם לא זוכרים את ביטוי הסיסמה או אם רוצים לשנות את ההגדרה הזו, יש <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">חלק מהקישורים הנתמכים ימשיכו להיפתח ב-<ph name="APP_NAME" /> או ב-<ph name="APP_NAME_2" />.</translation> @@ -6991,7 +6989,6 @@ <translation id="7434757724413878233">האצת עכבר</translation> <translation id="7434969625063495310">לא ניתן היה להוסיף את שרת ההדפסה. יש לבדוק את הגדרת השרת ולנסות שוב.</translation> <translation id="7436921188514130341">אופס! אירעה שגיאה במהלך שינוי השם.</translation> -<translation id="7438495332316988804">כדי למצוא את הדפדפן הרגיל, יש להקליד "Chrome" במרכז האפליקציות.</translation> <translation id="7439519621174723623">יש להוסיף את שם המכשיר כדי להמשיך</translation> <translation id="7441736921018636843">כדי לשנות את ההגדרה הזאת, צריך להסיר את ביטוי הסיסמה של הסנכרון על ידי <ph name="BEGIN_LINK" />איפוס הסנכרון<ph name="END_LINK" /></translation> <translation id="7441830548568730290">משתמשים אחרים</translation> @@ -7568,6 +7565,7 @@ <translation id="7952904276017482715">המזהה הצפוי הוא "<ph name="EXPECTED_ID" />", אך המזהה היה "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">שיטות קלט</translation> <translation id="7953955868932471628">ניהול קיצורי דרך</translation> +<translation id="7955105108888461311">ביצוע בקשה פנים-אל-פנים</translation> <translation id="7955177647836564772">אם מצב Smart Lock מופעל והטלפון לא נעול, אין צורך להזין סיסמה או קוד אימות</translation> <translation id="7956373551960864128">מדפסות שמורות</translation> <translation id="7957074856830851026">הצגה של פרטי המכשיר, כמו המספר הסידורי או מזהה הנכס שלו</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index d3c00bed..7ed2bc22 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -765,6 +765,7 @@ <translation id="168715261339224929">お使いのどのデバイスでも同じブックマークを使用するには、同期を有効にします。</translation> <translation id="1688867105868176567">サイトデータを削除しますか?</translation> <translation id="1688935057616748272">文字を入力してください</translation> +<translation id="1689333818294560261">ニックネーム</translation> <translation id="168991973552362966">近くのプリンタを追加</translation> <translation id="1689945336726856614">URL をコピー(&U)</translation> <translation id="1692115862433274081">別のアカウントを使用</translation> @@ -1505,7 +1506,6 @@ <translation id="2329597144923131178">ログインすると、お使いのどのデバイスでも同じブックマーク、履歴、パスワード、その他の設定を利用できるようになります。</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> に保存されているデバイスを読み込めません。インターネット接続を確認してから、もう一度お試しください。</translation> <translation id="2332131598580221120">ストアで見る</translation> -<translation id="2332192922827071008">設定を開く</translation> <translation id="2332515770639153015">セーフ ブラウジング保護強化機能はオンになっています</translation> <translation id="2332742915001411729">デフォルトに戻す</translation> <translation id="2332948465534020594">マナーモードを有効にしました</translation> @@ -4270,7 +4270,6 @@ <translation id="4893336867552636863">このデバイスから閲覧データが完全に削除されます。</translation> <translation id="4893454800196085005">良い - DVD</translation> <translation id="4893522937062257019">ロック画面</translation> -<translation id="4897496410259333978">詳しくは、管理者にお問い合わせください。</translation> <translation id="4898011734382862273">証明書にある「<ph name="CERTIFICATE_NAME" />」は認証局を表しています</translation> <translation id="4899052647152077033">色を反転</translation> <translation id="4899696330053002588">広告が表示されます</translation> @@ -4553,7 +4552,7 @@ <translation id="5177549709747445269">モバイルデータ接続を使用しています</translation> <translation id="5178667623289523808">前を検索</translation> <translation id="5181140330217080051">ダウンロードしています</translation> -<translation id="5181172023548002891"><ph name="ACCOUNT" /> の Google パスワード マネージャーに移動</translation> +<translation id="5181172023548002891"><ph name="ACCOUNT" /> の Google パスワード マネージャー</translation> <translation id="5184063094292164363">JavaScript コンソール(&J)</translation> <translation id="5184209580557088469">このユーザー名のチケットはすでに設定されています</translation> <translation id="5184662919967270437">デバイスを更新しています</translation> @@ -5802,7 +5801,6 @@ <translation id="6347010704471250799">通知を表示</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> をインストールします</translation> <translation id="6354918092619878358">SECG 楕円曲線 secp256r1(別名 ANSI X9.62 prime256v1、NIST P-256)</translation> -<translation id="6355789186038748882">試験運用版(アルファ版品質)のブラウザです。一部の機能がないか、不完全です。問題が発生した場合は、[ヘルプ] > [問題の報告...] からご報告ください。</translation> <translation id="635609604405270300">デバイスの電源を切らないでください</translation> <translation id="63566973648609420">パスフレーズを知っているユーザーだけが暗号化データを読み取ることができます。パスフレーズが Google に送信されたり Google で保存されたりすることはありません。パスフレーズを忘れた場合や、この設定を変更する場合は、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />する必要があります。</translation> <translation id="6357305427698525450">サポートされているリンクの一部は、引き続き <ph name="APP_NAME" /> または <ph name="APP_NAME_2" /> で開かれます。</translation> @@ -6958,7 +6956,6 @@ <translation id="7434757724413878233">マウス アクセラレーション</translation> <translation id="7434969625063495310">プリント サーバーを追加できませんでした。サーバーの設定を確認してから、もう一度お試しください。</translation> <translation id="7436921188514130341">名前の変更中にエラーが発生しました。</translation> -<translation id="7438495332316988804">標準のブラウザはランチャーに「Chrome」と入力すると表示されます。</translation> <translation id="7439519621174723623">続行するにはデバイス名を追加してください</translation> <translation id="7441736921018636843">この設定を変更するには、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />して同期パスフレーズを削除します</translation> <translation id="7441830548568730290">他のユーザー</translation> @@ -7535,6 +7532,7 @@ <translation id="7952904276017482715">ID「<ph name="EXPECTED_ID" />」が必要ですが、ID「<ph name="NEW_ID" />」が検出されました</translation> <translation id="7953669802889559161">入力方法</translation> <translation id="7953955868932471628">ショートカットの管理</translation> +<translation id="7955105108888461311">直接リクエストする</translation> <translation id="7955177647836564772">Smart Lock がオンになっていて、スマートフォンのロックが解除されている場合、パスワードや PIN を入力する必要はありません</translation> <translation id="7956373551960864128">保存されているプリンタ</translation> <translation id="7957074856830851026">シリアル番号やアセット ID などのデバイス情報を読み取る</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index efed4e3..8b143c7 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">ეს გვერდი არ რეაგირებს</translation> <translation id="1041263367839475438">ხელმისაწვდომი მოწყობილობები</translation> <translation id="1042174272890264476">თქვენს კომპიუტერში ასევე ჩაშენებულია <ph name="SHORT_PRODUCT_NAME" />-ის RLZ ბიბლიოთეკა. RLZ მიამაგრებს არაუნიკალურ, არაპერსონალურ ტეგს, რომელიც გაზომავს ძიებებს და <ph name="SHORT_PRODUCT_NAME" />-ის გამოყენებას, რომლებიც აქტიურდება გარკვეული სარეკლამო კამპანიის მიერ. ეს წარწერები ზოგჯერ გამოჩნდება Google-ის ძიების მოთხოვნებში <ph name="PRODUCT_NAME" />-ში.</translation> +<translation id="1042248468362992359">უსადენო ქსელის გამოსაყენებლად დაუკავშირდით ინტერნეტს. <ph name="BEGIN_LINK_LEARN_MORE" />შეიტყვეთ მეტი<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">მცირე შეფერხებაა. შესაძლოა, Linux-ის ვერსია მხოლოდ ნაწილობრივ იყოს განახლებული. დამატებითი ინფორმაციისთვის გაეცანით ჟურნალებს. ჟურნალები შენახულია აქ: ფაილები > ჩემი ფაილები > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">კლავიშთა განლაგების სტილი</translation> <translation id="104710386808485638">გსურთ Linux-ის გადატვირთვა?</translation> @@ -157,6 +158,7 @@ <translation id="1139923033416533844">მეხსიერების გამოყენება</translation> <translation id="1140351953533677694">წვდომა თქვენს Bluetooth და სერიულ მოწყობილობებზე</translation> <translation id="114036956334641753">აუდიო და ტიტრები</translation> +<translation id="1141949282671776404">სანამ ეს ჩანართი არააქტიური იყო, მეხსიერების დამზოგმა გამოათავისუფლა მეხსიერების <ph name="MEMORY_VALUE" /> სხვა ამოცანებისთვის.</translation> <translation id="1142002900084379065">ბოლოდროინდელი ფოტოები</translation> <translation id="1143142264369994168">სერტიფიკატის ხელმომწერი</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome-მა თქვენს კომპიუტერში საზიანო პროგრამული უზრუნველყოფა ვერ აღმოაჩინა • შემოწმდა 1 წუთის წინ}other{Chrome-მა თქვენს კომპიუტერში საზიანო პროგრამული უზრუნველყოფა ვერ აღმოაჩინა • შემოწმდა {NUM_MINS} წუთის წინ}}</translation> @@ -317,6 +319,7 @@ <translation id="1285320974508926690">არასდროს გადათარგმნო ეს საიტი</translation> <translation id="1285484354230578868">მონაცემების შენახვა თქვენს Google Drive ანგარიშზე</translation> <translation id="1285625592773741684">მონაცემთა გადაცემისთვის ამჟამად არჩეული გაქვთ „მობილური ინტერნეტი“</translation> +<translation id="1285815028662278915">უსადენო ქსელი, შესაძლოა, მხარდაუჭერელი იყოს თქვენი მობილური ინტერნეტის მიერ. <ph name="BEGIN_LINK_LEARN_MORE" />შეიტყვეთ მეტი<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">ღამის განათება ავტომატურად ჩაირთვება მზის ჩასვლისას</translation> <translation id="1288300545283011870">მეტყველების პარამეტრები</translation> <translation id="1289619947962767206">ეს ვარიანტი მხარდაჭერილი აღარ არის. ჩანართის პრეზენტირებისთვის გამოიყენეთ <ph name="GOOGLE_MEET" />.</translation> @@ -655,6 +658,7 @@ <translation id="1596286373007273895">ხელმისაწვდომია</translation> <translation id="1596709061955594992">Bluetooth გამორთულია. ხელმისაწვდომი მოწყობილობების სანახავად ჩართეთ Bluetooth.</translation> <translation id="1596780725094407793">- მოიცავს ქვედომენებსაც</translation> +<translation id="1598163867407640634">ისარგებლეთ <ph name="SITE_ETLD_PLUS_ONE" />-ით <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />-ის მეშვეობით</translation> <translation id="1598233202702788831">განახლებები გათიშულია თქვენი ადმინისტრატორის მიერ.</translation> <translation id="1600857548979126453">წვდომა გვერდის გამმართველის სპეცპროცესორზე</translation> <translation id="1601560923496285236">გამოყენება</translation> @@ -770,6 +774,7 @@ <translation id="168715261339224929">ჩართეთ სინქრონიზაცია სანიშნეებზე თქვენი ყველა მოწყობილობიდან წვდომისთვის.</translation> <translation id="1688867105868176567">გსურთ საიტის მონაცემების გასუფთავება?</translation> <translation id="1688935057616748272">აკრიფეთ ასო</translation> +<translation id="1689333818294560261">მეტსახელი</translation> <translation id="168991973552362966">ახლომდებარე პრინტერის დამატება</translation> <translation id="1689945336726856614">URL-ის &კოპირება</translation> <translation id="1692115862433274081">სხვა ანგარიშის გამოყენება</translation> @@ -1232,6 +1237,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />შენიშვნა:<ph name="END_BOLD" /> პროცესის მსვლელობისას სისტემა გადაიტვირთება.</translation> <translation id="2095774564753225041">ფაილების მხარდაჭერილი ტიპები</translation> +<translation id="2097616539631531348">სანამ ეს ჩანართი არააქტიური იყო, მეხსიერების დამზოგმა გამოათავისუფლა მეხსიერება სხვა ამოცანებისთვის.</translation> <translation id="2098805196501063469">დარჩენილი პაროლების შემოწმება</translation> <translation id="2099686503067610784">წავშალოთ სერვერის სერთიფიკატი „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="2100273922101894616">ავტომატური შესვლა</translation> @@ -1515,7 +1521,6 @@ <translation id="2329597144923131178">შედით სისტემაში თქვენი სანიშნეების, ისტორიის, პაროლების და სხვა პარამეტრების ყველა თქვენს მოწყობილობაში მისაღებად.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />-ში შენახული მოწყობილობები ვერ ჩაიტვირთა. შეამოწმეთ კავშირი ინტერნეტთან და ხელახლა ცადეთ.</translation> <translation id="2332131598580221120">მაღაზიაში ნახვა</translation> -<translation id="2332192922827071008">პარამეტრების გახსნა</translation> <translation id="2332515770639153015">გაძლიერებული Safe Browsing ჩართულია</translation> <translation id="2332742915001411729">დააბრუნეთ ნაგულისხმევზე</translation> <translation id="2332948465534020594">„არ შემაწუხოთ“ ჩართულია</translation> @@ -3378,6 +3383,7 @@ <translation id="4040041015953651705">ენა, რომლიდანაც უნდა ითარგმნოს</translation> <translation id="4040105702484676956">გსურთ, გაასუფთავოთ საიტების მონაცემები და ნებართვები როგორც <ph name="SITE_NAME" />-ის, ისე მიერ მიერ დაინსტალირებული აპისთვის?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{გვერდიდან გასვლა}other{გვერდებიდან გასვლა}}</translation> +<translation id="4042941173059740150">გადადით <ph name="SITE_ETLD_PLUS_ONE" />-ზე <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />-ით</translation> <translation id="4043267180218562935">კურსორის ზომა</translation> <translation id="4044612648082411741">შეიყვანეთ თქვენი სერტიფიკატის პაროლი</translation> <translation id="4044708573046946214">ეკრანის დაბლოკვის პაროლი</translation> @@ -4291,7 +4297,6 @@ <translation id="4893336867552636863">ეს მოქმედება სამუდამოდ წაშლის თქვენს დათვალიერების მონაცემებს ამ მოწყობილობიდან.</translation> <translation id="4893454800196085005">კარგი – DVD</translation> <translation id="4893522937062257019">ჩაკეტილ ეკრანზე</translation> -<translation id="4897496410259333978">დამატებითი ინფორმაციისთვის დაუკავშირდით თქვენს ადმინისტრატორს.</translation> <translation id="4898011734382862273">სერთიფიკატი „<ph name="CERTIFICATE_NAME" />“ წარმოადგენს სერტიფიცირების ცენტრს</translation> <translation id="4899052647152077033">ფერების ინვერსია</translation> <translation id="4899696330053002588">შეიცავს რეკლამებს</translation> @@ -5827,7 +5832,6 @@ <translation id="6347010704471250799">შეტყობინების ჩვენება</translation> <translation id="6349101878882523185"><ph name="APP_NAME" />-ის ინსტალაცია</translation> <translation id="6354918092619878358">SECG ეკლიპტიკური მრუდი secp256r1 (ასევე ცნობილი, როგორც ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">ბრაუზერი ექსპერიმენტულია (ალფა-ხარისხის)! მას ზოგიერთი ფუნქცია აკლია, ან ისინი არასრულია. პრობლემების შესატყობინებლად გადადით აქ: დახმარება > „შეტყობინება პრობლემის შესახებ...“.</translation> <translation id="635609604405270300">მოწყობილობის ჩართულად შენარჩუნება</translation> <translation id="63566973648609420">თქვენი დაშიფრული მონაცემების წაკითხვა შეუძლია მხოლოდ იმ ადამიანს, რომელმაც იცის თქვენი საიდუმლო ფრაზა. საიდუმლო ფრაზა არ იგზავნება Google-ში და არ ინახება მის მიერ. საიდუმლო ფრაზის დავიწყების ან ამ პარამეტრის შეცვლის სურვილის შემთხვევაში, <ph name="BEGIN_LINK" />სინქრონიზაციის გადაყენება<ph name="END_LINK" /> მოგიწევთ.</translation> <translation id="6357305427698525450">ზოგიერთი მხარდაჭერილი ბმული კვლავ გაიხსნება <ph name="APP_NAME" />-ში ან <ph name="APP_NAME_2" />-ში.</translation> @@ -6993,7 +6997,6 @@ <translation id="7434757724413878233">მაუსის აჩქარება</translation> <translation id="7434969625063495310">ბეჭდვის სერვერის დამატება ვერ მოხერხდა. შეამოწმეთ სერვერის კონფიგურაცია და ცადეთ ხელახლა.</translation> <translation id="7436921188514130341">სამწუხაროდ, გადარქმევა ვერ მოხერხდა შეცდომის გამო.</translation> -<translation id="7438495332316988804">სტანდარტული ბრაუზერის საპოვნელად გამშვებში აკრიფეთ „Chrome“.</translation> <translation id="7439519621174723623">გასაგრძელებლად დაამატეთ მოწყობილობის სახელი</translation> <translation id="7441736921018636843">ამ პარამეტრის შესაცვლელად <ph name="BEGIN_LINK" />გადააყენეთ სინქრონიზაცია<ph name="END_LINK" />, რომ ამოშალოთ სინქრონიზაციის საიდუმლო ფრაზა</translation> <translation id="7441830548568730290">სხვა მომხმარებლები</translation> @@ -7574,6 +7577,7 @@ <translation id="7952904276017482715">მოსალოდნელი ID: „<ph name="EXPECTED_ID" />“, მიღებული ID: „<ph name="NEW_ID" />“</translation> <translation id="7953669802889559161">შეყვანის მეთოდები</translation> <translation id="7953955868932471628">მალსახმობების მართვა</translation> +<translation id="7955105108888461311">პირადად კითხვა</translation> <translation id="7955177647836564772">თუ Smart Lock ჩართულია და თქვენი ტელეფონი განბლოკილია, პაროლის ან PIN-კოდის შეყვანა არ დაგჭირდებათ</translation> <translation id="7956373551960864128">თქვენი შენახული პრინტერები</translation> <translation id="7957074856830851026">მოწყობილობის ინფორმაციის (მაგ., მისი სერიული ნომრის ან აქტივის ID-ს) ნახვა</translation> @@ -8356,6 +8360,7 @@ <translation id="8674903726754070732">სამწუხაროდ, თქვენი კომპიუტერი კონფიგურირებულია დეფორმირებული აპარატურის ID-ს გამოყენებით. ეს ხელს უშლის ChromeOS-ის განახლებას უსაფრთხოების უახლესი ჩასწორებებით და თქვენი კომპიუტერი <ph name="BEGIN_BOLD" />შეიძლება გახდეს მავნე პროგრამების მიერ განხორციელებული შეტევების ობიექტი<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">ინსტალატორმა ვერ იპოვა დანიშნულების სათანადო ადგილი, <ph name="DEVICE_OS" /> რომ დააინსტალიროს.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{ვიდეო}other{# ვიდეო}}</translation> +<translation id="8676276370198826499">დარეგისტრირდით <ph name="SITE_ETLD_PLUS_ONE" />-ში <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />-ით</translation> <translation id="8676313779986170923">გმადლობთ გამოხმაურებისთვის.</translation> <translation id="8676374126336081632">შეყვანილი ტექსტის გასუფთავება</translation> <translation id="8676770494376880701">დაბალი სიმძლავრის დამტენი დაკავშირებულია</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index a0e373c..a2431596 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -763,6 +763,7 @@ <translation id="168715261339224929">Бетбелгілерге барлық құрылғылардан кіру үшін синхрондауды қосыңыз.</translation> <translation id="1688867105868176567">Сайт деректері өшірілсін бе?</translation> <translation id="1688935057616748272">Әріп енгізіңіз</translation> +<translation id="1689333818294560261">Лақап ат</translation> <translation id="168991973552362966">Маңайдағы принтерді енгізу</translation> <translation id="1689945336726856614">&URL мекенжайын көшіру</translation> <translation id="1692115862433274081">Басқа аккаунтты пайдалану</translation> @@ -1507,7 +1508,6 @@ <translation id="2329597144923131178">Барлық құрылғыларда бетбелгілеріңізді, журналыңызды, құпия сөздеріңізді және басқа параметрлеріңізді алу үшін кіріңіз.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> аккаунтына сақталған құрылғыларды жүктеу мүмкін емес. Интернет байланысын тексеріп, әрекетті қайталаңыз.</translation> <translation id="2332131598580221120">Дүкенде көру</translation> -<translation id="2332192922827071008">Жеке параметрлерді ашу</translation> <translation id="2332515770639153015">Күшейтілген Safe Browsing қосулы</translation> <translation id="2332742915001411729">Әдепкі параметрлерге қайта орнату</translation> <translation id="2332948465534020594">Мазаламау режимі қосулы</translation> @@ -4275,7 +4275,6 @@ <translation id="4893336867552636863">Бұл осы құрылғыдағы шолу деректерін біржола жояды.</translation> <translation id="4893454800196085005">Жақсы – DVD</translation> <translation id="4893522937062257019">Құлып экранында</translation> -<translation id="4897496410259333978">Толығырақ ақпарат алу үшін әкімшіге хабарласыңыз.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" сертификаты сертификат беру органын көрсетеді</translation> <translation id="4899052647152077033">Түсін кетіру</translation> <translation id="4899696330053002588">Жарнама бар</translation> @@ -5806,7 +5805,6 @@ <translation id="6347010704471250799">Хабарландыруды көрсету</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> қолданбасын орнату</translation> <translation id="6354918092619878358">SECG эллипстік қисық сызығы secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Бұл — эксперименттік (альфа нұсқасы) браузер. Оның кейбір функциялары жоқ немесе шектелген болуы мүмкін. Ақауларды "Анықтама > Ақау туралы хабарлау" бөліміне өтіп хабарлай аласыз.</translation> <translation id="635609604405270300">Құрылғыны қосулы күйде ұстаңыз</translation> <translation id="63566973648609420">Тек құпия фразаны білетін адам ғана шифрланған деректерді оқи алады. Құпия фраза Google қызметіне жіберілмейді және онда сақталмайды. Құпия фразаны ұмытып қалған жағдайда немесе бұл параметрді өзгерткіңіз келгенде, <ph name="BEGIN_LINK" />синхрондауды бастапқы күйіне қайтару<ph name="END_LINK" /> қажет болады.</translation> <translation id="6357305427698525450">Кейбір қолдау көрсету сілтемелері <ph name="APP_NAME" /> немесе <ph name="APP_NAME_2" /> қолданбасында ашық болады.</translation> @@ -6965,7 +6963,6 @@ <translation id="7434757724413878233">Тінтуірді жылдамдату</translation> <translation id="7434969625063495310">Басып шығару сервері енгізілмеді. Сервер конфигурациясын тексеріп, қайталап көріңіз.</translation> <translation id="7436921188514130341">Қап! Атын өзгерту кезінде қате пайда болды.</translation> -<translation id="7438495332316988804">Стандартты браузерді Launcher қолданбасына "Chrome" деп теру арқылы таба аласыз.</translation> <translation id="7439519621174723623">Жалғастыру үшін құрылғының атауын енгізіңіз.</translation> <translation id="7441736921018636843">Параметрді өзгерту үшін <ph name="BEGIN_LINK" />синхрондауды бастапқы күйге қайтарып<ph name="END_LINK" />, синхрондаудың құпия фразасын өшіріңіз</translation> <translation id="7441830548568730290">Басқа пайдаланушылар</translation> @@ -7543,6 +7540,7 @@ <translation id="7952904276017482715">"<ph name="NEW_ID" />" идентификаторы күтілген "<ph name="EXPECTED_ID" />" идентификаторына сәйкес келмейді</translation> <translation id="7953669802889559161">Енгізу әдістері</translation> <translation id="7953955868932471628">Таңбашаларды басқару</translation> +<translation id="7955105108888461311">Жеке сұрау</translation> <translation id="7955177647836564772">Smart Lock қосулы және телефоныңыздың құлпы ашық болса, құпия сөзді немесе PIN кодын енгізудің қажеті жоқ.</translation> <translation id="7956373551960864128">Сақталған принтерлер</translation> <translation id="7957074856830851026">Сериялық нөмір және актив идентификаторы сияқты құрылғы ақпаратын көру</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 651382e..4241b3c7 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -774,6 +774,7 @@ <translation id="168715261339224929">ដើម្បីទទួលបានចំណាំរបស់អ្នកនៅលើឧបករណ៍ទាំងអស់របស់អ្នក សូមបើកសមកាលកម្ម។</translation> <translation id="1688867105868176567">សម្អាតទិន្នន័យគេហទំព័រ?</translation> <translation id="1688935057616748272">វាយបញ្ចូលអក្សរ</translation> +<translation id="1689333818294560261">ឈ្មោះហៅក្រៅ</translation> <translation id="168991973552362966">បន្ថែមម៉ាស៊ីនបោះពុម្ពនៅក្បែរ</translation> <translation id="1689945336726856614">ចម្លង &URL</translation> <translation id="1692115862433274081">ប្រើគណនីផ្សេង</translation> @@ -1532,7 +1533,6 @@ <translation id="2329597144923131178">ចូលគណនីដើម្បីទទួលយកចំណាំ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតរបស់អ្នកទៅលើឧបករណ៍ទាំងអស់របស់អ្នក។</translation> <translation id="2332115969598251205">មិនអាចផ្ទុកឧបករណ៍ដែលបានរក្សាទុកទៅ <ph name="PRIMARY_EMAIL" /> បានទេ។ សូមពិនិត្យមើលការតភ្ជាប់អ៊ីនធឺណិតរបស់អ្នក រួចព្យាយាមម្ដងទៀត។</translation> <translation id="2332131598580221120">មើលនៅក្នុងហាង</translation> -<translation id="2332192922827071008">បើកចំណូលចិត្ត</translation> <translation id="2332515770639153015">ការរុករកដោយសុវត្ថិភាពបន្ថែមត្រូវបានបើក</translation> <translation id="2332742915001411729">កំណត់ទៅលំនាំដើមឡើងវិញ</translation> <translation id="2332948465534020594">បានបើកមុខងារកុំរំខាន</translation> @@ -4317,7 +4317,6 @@ <translation id="4893336867552636863">វានឹងលុបទិន្នន័យរុករករបស់អ្នកចេញពីឧបករណ៍នេះជាអចិន្ត្រៃយ៍</translation> <translation id="4893454800196085005">ល្អ - DVD</translation> <translation id="4893522937062257019">នៅលើអេក្រង់ចាក់សោ</translation> -<translation id="4897496410259333978">សម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។</translation> <translation id="4898011734382862273">វិញ្ញាបនបត្រ "<ph name="CERTIFICATE_NAME" />" តំណាងឲ្យអាជ្ងាធរវិញ្ញាបនបត្រ</translation> <translation id="4899052647152077033">បញ្ច្រាសពណ៌</translation> <translation id="4899696330053002588">មានការផ្សាយពាណិជ្ជកម្ម</translation> @@ -5859,7 +5858,6 @@ <translation id="6347010704471250799">បង្ហាញការជូនដំណឹង</translation> <translation id="6349101878882523185">ដំឡើង <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">កម្មវិធីរុករកតាមអ៊ីនធឺណិត (គុណភាពអាល់ហ្វា) សាកល្បង! មិនមានមុខងារមួយចំនួន ឬមិនពេញលេញ។ រាយការណ៍អំពីបញ្ហាតាមរយៈ៖ ជំនួយ > "រាយការណ៍អំពីបញ្ហា..."។</translation> <translation id="635609604405270300">បន្តបើកឧបករណ៍</translation> <translation id="63566973648609420">មានតែបុគ្គលដែលមានឃ្លាសម្ងាត់របស់អ្នកប៉ុណ្ណោះ ដែលអាចអានទិន្នន័យដែលបានអ៊ិនគ្រីបរបស់អ្នក។ ឃ្លាសម្ងាត់នេះមិនត្រូវបានផ្ញើទៅ ឬផ្ទុកដោយ Google ឡើយ។ ប្រសិនបើអ្នកភ្លេចឃ្លាសម្ងាត់របស់អ្នក ឬចង់ប្តូរការកំណត់នេះ អ្នកត្រូវ<ph name="BEGIN_LINK" />កំណត់សមកាលកម្មឡើងវិញ<ph name="END_LINK" />។</translation> <translation id="6357305427698525450">តំណដែលអាចប្រើបានមួយចំនួននឹងនៅតែបើកនៅក្នុង <ph name="APP_NAME" /> ឬ <ph name="APP_NAME_2" /> ដដែល។</translation> @@ -7027,7 +7025,6 @@ <translation id="7434757724413878233">ការបង្កើនល្បឿនកណ្ដុរ</translation> <translation id="7434969625063495310">មិនអាចបញ្ចូលម៉ាស៊ីនមេបោះពុម្ពបានទេ។ សូមពិនិត្យការកំណត់រចនាសម្ព័ន្ធរបស់ម៉ាស៊ីនមេ រួចព្យាយាមម្ដងទៀត។</translation> <translation id="7436921188514130341">អូ! មានបញ្ហាពេលកំពុងប្តូរឈ្មោះ។</translation> -<translation id="7438495332316988804">អាចរកឃើញកម្មវិធីរុករកតាមអ៊ីនធឺណិតស្តង់ដារបានដោយវាយបញ្ចូលពាក្យ "Chrome" នៅក្នុងកម្មវិធីចាប់ផ្ដើម។</translation> <translation id="7439519621174723623">បញ្ចូលឈ្មោះឧបករណ៍ ដើម្បីបន្ត</translation> <translation id="7441736921018636843">ដើម្បីប្ដូរការកំណត់នេះ <ph name="BEGIN_LINK" />សូមកំណត់សមកាលកម្មឡើងវិញ<ph name="END_LINK" /> ដើម្បីលុបឃ្លាសម្ងាត់សមកាលកម្មរបស់អ្នក</translation> <translation id="7441830548568730290">អ្នកប្រើផ្សេងទៀត</translation> @@ -7609,6 +7606,7 @@ <translation id="7952904276017482715">លេខសម្គាល់ដែលបានរំពឹងទុក "<ph name="EXPECTED_ID" />" ប៉ុន្តែលេខសម្គាល់ជាក់ស្ដែងគឺ "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">វិធីសាស្ត្របញ្ចូល</translation> <translation id="7953955868932471628">គ្រប់គ្រង់ផ្លូវកាត់</translation> +<translation id="7955105108888461311">សាកសួរដោយផ្ទាល់</translation> <translation id="7955177647836564772">ប្រសិនបើ Smart Lock ត្រូវបានបើក ហើយទូរសព្ទរបស់អ្នកត្រូវបានដោះសោ អ្នកមិនចាំបាច់ត្រូវបញ្ចូលពាក្យសម្ងាត់ ឬកូដ PIN ទេ</translation> <translation id="7956373551960864128">ម៉ាស៊ីនបោះពុម្ពដែលអ្នកបានរក្សាទុក</translation> <translation id="7957074856830851026">មើលព័ត៌មានឧបករណ៍ ដូចជាលេខស៊េរី ឬលេខសម្គាល់ទ្រព្យរបស់វាជាដើម</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 64ceace..7af7233 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -771,6 +771,7 @@ <translation id="168715261339224929">ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation> <translation id="1688867105868176567">ಸೈಟ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಬೇಕೇ?</translation> <translation id="1688935057616748272">ಅಕ್ಷರವನ್ನು ಟೈಪ್ ಮಾಡಿ</translation> +<translation id="1689333818294560261">ಅಡ್ಡಹೆಸರು</translation> <translation id="168991973552362966">ಸಮೀಪದಲ್ಲಿರುವ ಪ್ರಿಂಟರ್ ಸೇರಿಸಿ</translation> <translation id="1689945336726856614">&URL ನಕಲಿಸಿ</translation> <translation id="1692115862433274081">ಬೇರೊಂದು ಖಾತೆಯನ್ನು ಬಳಸಿ</translation> @@ -1518,7 +1519,6 @@ <translation id="2329597144923131178">ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> ಗೆ ಉಳಿಸಿದ ಸಾಧನಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಕನೆಕ್ಷನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2332131598580221120">ಸ್ಟೋರ್ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ</translation> -<translation id="2332192922827071008">ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="2332515770639153015">ವರ್ಧಿತ ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಆನ್ ಆಗಿದೆ</translation> <translation id="2332742915001411729">ಡೀಫಾಲ್ಟ್ಗೆ ಮರುಹೊಂದಿಸಿ</translation> <translation id="2332948465534020594">ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಫೀಚರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> @@ -4288,7 +4288,6 @@ <translation id="4893336867552636863">ಇದು ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಖಾಯಂ ಆಗಿ ಅಳಿಸುತ್ತದೆ.</translation> <translation id="4893454800196085005">ಉತ್ತಮ - DVD</translation> <translation id="4893522937062257019">ಲಾಕ್ ಪರದೆಯಲ್ಲಿ</translation> -<translation id="4897496410259333978">ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" ಪ್ರಮಾಣಪತ್ರವು ಪ್ರಮಾಣೀಕರಣದ ಪ್ರಾಧಿಕಾರವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ</translation> <translation id="4899052647152077033">ಬಣ್ಣಗಳನ್ನು ಇನ್ವರ್ಟ್ ಮಾಡಿ</translation> <translation id="4899696330053002588">ಜಾಹೀರಾತುಗಳಿವೆ</translation> @@ -5823,7 +5822,6 @@ <translation id="6347010704471250799">ಅಧಿಸೂಚನೆಯನ್ನು ತೋರಿಸಿ</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="6354918092619878358">SECG ಎಲಿಪ್ಟಿಕ್ ಕರ್ವ್ secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">ಪ್ರಾಯೋಗಿಕ (ಆಲ್ಫಾ ಗುಣಮಟ್ಟ) ಬ್ರೌಸರ್! ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಕಾಣೆಯಾಗಿರಬಹುದು ಅಥವಾ ಅಪೂರ್ಣವಾಗಿದೆ. ಯಾವುದೇ ಸಮಸ್ಯೆಗಳಿದ್ದರೆ, ಸಹಾಯ > "ಸಮಸ್ಯೆಯನ್ನು ವರದಿ ಮಾಡಿ..." ನಲ್ಲಿ ವರದಿ ಮಾಡಿ.</translation> <translation id="635609604405270300">ಸಾಧನವು ಆನ್ ಆಗಿರಲಿ</translation> <translation id="63566973648609420">ನಿಮ್ಮ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಪಾಸ್ಫ್ರೇಸ್ ಹೊಂದಿರುವವರು ಮಾತ್ರ ಓದಬಹುದು. ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಅದನ್ನು ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನೀವು ಮರೆತಿದ್ದರೆ ಅಥವಾ ಈ ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ, ನೀವು <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">ಕೆಲವು ಬೆಂಬಲಿಸಿದ ಲಿಂಕ್ಗಳು ಈಗಲೂ <ph name="APP_NAME" /> ಅಥವಾ <ph name="APP_NAME_2" /> ನಲ್ಲಿ ತೆರೆದುಕೊಳ್ಳುತ್ತವೆ.</translation> @@ -6985,7 +6983,6 @@ <translation id="7434757724413878233">ಮೌಸ್ ವೇಗವರ್ಧನೆ</translation> <translation id="7434969625063495310">ಪ್ರಿಂಟ್ ಸರ್ವರ್ ಅನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸರ್ವರ್ನ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7436921188514130341">ಓಹ್, ಹೋಯ್ತು! ಮರುಹೆಸರಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ.</translation> -<translation id="7438495332316988804">"Chrome" ನಲ್ಲಿ ಲಾಂಚರ್ ಎಂದು ಟೈಪ್ ಮಾಡಿದರೆ, ಪ್ರಮಾಣಿತ ಬ್ರೌಸರ್ ಅನ್ನು ಹುಡುಕಬಹುದು.</translation> <translation id="7439519621174723623">ಮುಂದುವರಿಸಲು ಸಾಧನದ ಹೆಸರನ್ನು ಸೇರಿಸಿ</translation> <translation id="7441736921018636843">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation> <translation id="7441830548568730290">ಇತರ ಬಳಕೆದಾರರು</translation> @@ -7562,6 +7559,7 @@ <translation id="7952904276017482715">ನಿರೀಕ್ಷಿತ ಐಡಿ "<ph name="EXPECTED_ID" />", ಆದರೆ ಐಡಿ "<ph name="NEW_ID" />" ಆಗಿದೆ</translation> <translation id="7953669802889559161">ಇನ್ಪುಟ್ಗಳು</translation> <translation id="7953955868932471628">ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸು</translation> +<translation id="7955105108888461311">ವ್ಯಕ್ತಿಗತವಾಗಿ ಕೇಳಿರಿ</translation> <translation id="7955177647836564772">Smart Lock ಆನ್ ಆಗಿದ್ದರೆ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್ ಅನ್ಲಾಕ್ ಆಗಿದ್ದರೆ, ನೀವು ಪಾಸ್ವರ್ಡ್ ಅಥವಾ ಪಿನ್ ಅನ್ನು ನಮೂದಿಸುವ ಅಗತ್ಯವಿಲ್ಲ</translation> <translation id="7956373551960864128">ನೀವು ಉಳಿಸಿರುವ ಪ್ರಿಂಟರ್ಗಳು</translation> <translation id="7957074856830851026">ಸಾಧನದ ಮಾಹಿತಿಯನ್ನು ನೋಡಿ, ಉದಾಹರಣೆಗೆ ಅದರ ಕ್ರಮ ಸಂಖ್ಯೆ ಅಥವಾ ಸ್ವತ್ತು ಐಡಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 6940903..67f8769 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">새 탭에서 원본 이미지 열기</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{1주일 이내에 <ph name="DEVICE_TYPE" /> 업데이트}other{{NUM_WEEKS}주일 이내에 <ph name="DEVICE_TYPE" /> 업데이트}}</translation> <translation id="1056898198331236512">경고</translation> +<translation id="1056980582064308040">설정을 변경하면 핫스팟이 다시 시작됩니다. 핫스팟을 사용하는 기기의 연결이 해제됩니다.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{새 PIN을 입력하세요. PIN은 1자 이상이어야 하며 글자, 숫자, 기타 문자를 포함할 수 있습니다.}other{새 PIN을 입력하세요. PIN은 #자 이상이어야 하며 글자, 숫자, 기타 문자를 포함할 수 있습니다.}}</translation> <translation id="1059484610606223931">하이퍼텍스트 전송 프로토콜 보안(HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">중지</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />지원되는 링크<ph name="END_LINK" /> 열기</translation> <translation id="1272978324304772054">이 사용자 계정은 기기가 등록된 도메인에 속해 있지 않습니다. 다른 도메인에 등록하려면 먼저 기기 복구 절차를 거쳐야 합니다.</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> 차단</translation> <translation id="1274997165432133392">쿠키 및 기타 사이트 데이터</translation> <translation id="1275718070701477396">선택됨</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> 앱을 제거할 수 없음</translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">ADB 디버깅을 사용 설정하려면 이 <ph name="DEVICE_TYPE" /> 기기를 다시 시작해야 합니다. ADB 디버깅을 사용 중지하려면 초기화해야 합니다.</translation> <translation id="1327527584824210101">패스키 사용</translation> <translation id="1327794256477341646">위치가 필요한 기능이 작동하지 않음</translation> +<translation id="1329466763986822896">이 핫스팟의 개인 정보 보호 개선</translation> <translation id="1331977651797684645">본인이 맞습니다.</translation> <translation id="1333489022424033687">기기에 저장된 다른 사이트의 데이터를 삭제할 때까지 <ph name="ORIGIN" />의 일부 기능을 사용하지 못할 수 있습니다.</translation> <translation id="1333965224356556482">사이트에서 내 위치를 확인하도록 허용하지 않음</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{시크릿 창이 다시 열리지 않습니다.}other{시크릿 창 #개가 다시 열리지 않습니다.}}</translation> <translation id="1546280085599573572">홈 버튼을 클릭하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" />님이 다음 작업을 실행할 수 있는 <ph name="EXTENSION_TYPE" />을(를) 설치하려고 합니다.</translation> +<translation id="1547123415014299762">서드 파티 쿠키 허용됨</translation> <translation id="1547808936554660006">설치된 eSIM 프로필이 파워워시로 삭제되지 않음을 이해합니다</translation> <translation id="1547936895218027488">측면 패널 아이콘을 클릭하여 엽니다.</translation> <translation id="1549275686094429035">ARC 사용 설정됨</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">어느 기기에서나 북마크를 사용하려면 동기화를 사용 설정하세요.</translation> <translation id="1688867105868176567">사이트 데이터를 삭제하시겠습니까?</translation> <translation id="1688935057616748272">문자를 입력하세요</translation> +<translation id="1689333818294560261">닉네임</translation> <translation id="168991973552362966">근처 프린터 추가</translation> <translation id="1689945336726856614">&URL 복사</translation> <translation id="1692115862433274081">다른 계정 사용</translation> @@ -1408,6 +1413,7 @@ <translation id="2247870315273396641">음성 미리보기</translation> <translation id="2249111429176737533">탭 창으로 열기</translation> <translation id="2249605167705922988">예: 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">사이트에서 광고를 표시하는 데 사용하는 정보를 맞춤설정합니다.</translation> <translation id="2251218783371366160">시스템 뷰어로 열기</translation> <translation id="225163402930830576">네트워크 새로고침</translation> <translation id="2251809247798634662">새 시크릿 창</translation> @@ -1526,7 +1532,6 @@ <translation id="2329597144923131178">로그인하면 모든 기기에서 북마크, 방문 기록, 비밀번호, 기타 설정을 사용할 수 있습니다.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />에 저장된 기기를 로드할 수 없습니다. 인터넷 연결을 확인하고 다시 시도해 보세요.</translation> <translation id="2332131598580221120">스토어에서 보기</translation> -<translation id="2332192922827071008">환경설정 열기</translation> <translation id="2332515770639153015">향상된 세이프 브라우징 사용 설정됨</translation> <translation id="2332742915001411729">기본 설정으로 돌아가기</translation> <translation id="2332948465534020594">방해 금지 모드 사용 설정됨</translation> @@ -1860,6 +1865,7 @@ <translation id="2640299212685523844">GTK 사용</translation> <translation id="264083724974021997">휴대전화에 연결 - 대화상자</translation> <translation id="2642111877055905627">축구공</translation> +<translation id="2643064289437760082">언제든지 인터넷 사용 기록을 삭제하여 광고 측정 데이터를 삭제할 수 있습니다.</translation> <translation id="2643698698624765890">창 메뉴에서 확장 프로그램을 클릭하여 확장 프로그램을 관리할 수 있습니다.</translation> <translation id="2645047101481282803"><ph name="PROFILE_NAME" />님이 관리하는 기기입니다</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2319,6 +2325,7 @@ <translation id="3036327949511794916"><ph name="DEVICE_TYPE" /> 반납 기한이 지났습니다.</translation> <translation id="3036546437875325427">Flash 사용</translation> <translation id="3037754279345160234">도메인 연결 구성을 파싱할 수 없습니다. 관리자에게 문의하세요.</translation> +<translation id="3038272154009688107">모든 사이트 보기</translation> <translation id="3038612606416062604">수동으로 프린터 추가</translation> <translation id="3039491566278747710">기기에 오프라인 정책을 설치하지 못했습니다.</translation> <translation id="3043016484125065343">북마크를 보려면 로그인하세요</translation> @@ -2555,6 +2562,7 @@ <translation id="3289668031376215426">자동 대문자화</translation> <translation id="3289856944988573801">업데이트를 확인하려면 이더넷 또는 Wi-Fi를 사용하세요.</translation> <translation id="3290249595466894471">또한 페이지, 다운로드 항목, 확장 프로그램 활동, 시스템 정보의 표본을 일부 전송하여 새로운 위협을 발견하는 데 도움을 줍니다.</translation> +<translation id="3293181007446299124">방문 기록은 기기에서 비공개로 유지되며 신고는 사용자의 신원을 보호하기 위해 보고서 전송이 지연됩니다.</translation> <translation id="3293644607209440645">이 페이지 전송</translation> <translation id="32939749466444286">Linux 컨테이너가 시작되지 않았습니다. 다시 시도해 주세요.</translation> <translation id="3294437725009624529">게스트</translation> @@ -3335,6 +3343,7 @@ <translation id="3984431586879874039">이 사이트에서 보안 키를 보도록 허용할까요?</translation> <translation id="398477389655464998">하이라이트 링크 복사</translation> <translation id="3984862166739904574">빠른 답변 정의</translation> +<translation id="3985022125189960801">내가 원하는 콘텐츠를 추측할 수 있는 사이트 풀에 원하는 사이트를 다시 추가하세요.</translation> <translation id="3987544746655539083">이 사이트의 위치 액세스 계속 차단</translation> <translation id="3987938432087324095">죄송합니다. 인식하지 못했습니다.</translation> <translation id="3987993985790029246">링크 복사</translation> @@ -3710,6 +3719,7 @@ <translation id="4366138410738374926">인쇄 시작됨</translation> <translation id="4367513928820380646">권한이 삭제된 웹사이트 검토</translation> <translation id="4369215744064167350">웹사이트 요청 승인됨</translation> +<translation id="4369735607080757018">광고 실적을 측정할 수 있도록 광고 표시 시간 등 제한된 유형의 데이터가 사이트 간에 공유됩니다.</translation> <translation id="4370975561335139969">입력한 이메일과 비밀번호가 일치하지 않습니다.</translation> <translation id="4374831787438678295">Linux 설치 프로그램</translation> <translation id="4375035964737468845">다운로드한 파일 열기</translation> @@ -3730,6 +3740,7 @@ <translation id="4385146930797718821">클립보드에 스크린샷이 복사되었습니다</translation> <translation id="4385905942116811558">블루투스 및 USB 기기 검색 중</translation> <translation id="4387890294700445764">유출된 비밀번호</translation> +<translation id="4388650384344483842">8자 이상 입력하세요.</translation> <translation id="4389091756366370506">사용자 <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> 외 <ph name="NUMBER_OF_OTHER_SWITCHES" />개</translation> <translation id="439266289085815679">블루투스 구성은 <ph name="USER_EMAIL" />님이 관리합니다.</translation> @@ -4052,6 +4063,7 @@ <translation id="4666472247053585787"><ph name="DEVICE_TYPE" />에서 휴대전화 알림 보기</translation> <translation id="4666911709726371538">앱 더보기</translation> <translation id="4667027203988048332">사용되는 데이터:</translation> +<translation id="4668279686271488041">광고 측정 데이터가 기기에서 정기적으로 삭제됩니다.</translation> <translation id="4672759829555593783">지금 <ph name="FILE_NAME" /> 열기</translation> <translation id="46733273239502219">설치된 앱 내 오프라인 데이터도 삭제됩니다.</translation> <translation id="4673442866648850031">스타일러스가 분리되면 스타일러스 도구가 열립니다.</translation> @@ -4245,6 +4257,7 @@ <translation id="485480310608090163">추가 설정 및 권한</translation> <translation id="4858913220355269194">축구왕</translation> <translation id="4862642413395066333">OCSP 응답 서명</translation> +<translation id="4863702650881330715">호환성 확장</translation> <translation id="4863769717153320198"><ph name="WIDTH" />x<ph name="HEIGHT" />(권장)처럼 보입니다.</translation> <translation id="4864805589453749318">학교 계정을 추가할 수 있도록 권한을 부여할 부모님을 선택하세요.</translation> <translation id="486635084936119914">다운로드 후에 특정 파일 형식을 자동으로 열기</translation> @@ -4293,7 +4306,6 @@ <translation id="4893336867552636863">기기에서 인터넷 사용 기록이 완전히 삭제됩니다.</translation> <translation id="4893454800196085005">좋음 - DVD</translation> <translation id="4893522937062257019">잠금 화면에서</translation> -<translation id="4897496410259333978">자세한 내용은 관리자에게 문의하세요.</translation> <translation id="4898011734382862273">'<ph name="CERTIFICATE_NAME" />' 인증서는 인증 기관을 나타냅니다.</translation> <translation id="4899052647152077033">색상 반전</translation> <translation id="4899696330053002588">광고 포함</translation> @@ -4491,6 +4503,7 @@ <translation id="5094721898978802975">협력 중인 기본 애플리케이션과 통신</translation> <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">위치 사용 자세히 알아보기</translation> +<translation id="5097349930204431044">방문한 사이트에서 내가 좋아하는 콘텐츠가 무엇인지 파악할 수 있으며, 내가 인터넷을 계속 탐색하면 사이트에서 광고를 제안할 수 있습니다.</translation> <translation id="5097649414558628673">도구: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">커서가 멈추면 자동 클릭</translation> <translation id="5101683448725092498">데이터 백업하기</translation> @@ -4673,6 +4686,7 @@ <translation id="5275352920323889391">개</translation> <translation id="527605719918376753">탭 음소거</translation> <translation id="527605982717517565"><ph name="HOST" />에서 자바스크립트 항상 허용</translation> +<translation id="5276357196618041410">먼저 로그인하지 않으면 구성을 저장할 수 없습니다.</translation> <translation id="5277127016695466621">측면 패널 표시</translation> <translation id="5278823018825269962">상태 ID</translation> <translation id="5279600392753459966">모두 차단</translation> @@ -5827,7 +5841,6 @@ <translation id="6347010704471250799">알림 표시</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> 설치</translation> <translation id="6354918092619878358">SECG 타원 곡선 secp256r1(또는 ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">실험(알파 등급) 브라우저입니다. 일부 기능이 누락되거나 완전하지 않을 수 있습니다. 문제가 발생하면 도움말 > '문제 신고...'에서 신고해 주세요.</translation> <translation id="635609604405270300">기기를 계속 켜두세요.</translation> <translation id="63566973648609420">암호를 아는 사람만 암호화된 데이터를 읽을 수 있습니다. 암호는 Google로 전송되거나 Google에 저장되지 않습니다. 암호가 기억나지 않거나 이 설정을 변경하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />해야 합니다.</translation> <translation id="6357305427698525450">지원되는 링크 일부는 <ph name="APP_NAME" /> 또는 <ph name="APP_NAME_2" />에서 계속 열 수 있습니다.</translation> @@ -6167,6 +6180,7 @@ <translation id="6670767097276846646">일부 확장 프로그램은 Chrome에 검색엔진을 추가할 수 있습니다.</translation> <translation id="6671320560732140690">{COUNT,plural, =1{주소 1개}other{주소 #개}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" />에서 관리 설정 중</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> 추가</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" />(USB)</translation> <translation id="6674571176963658787">동기화를 시작하려면 암호를 입력하세요.</translation> <translation id="6675665718701918026">포인팅 기기 연결됨</translation> @@ -6250,6 +6264,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (시크릿 모드)</translation> <translation id="6756157672127672536">파일 앱을 사용하면 Google Drive, 외부 저장소, ChromeOS 기기에 저장한 파일에 신속하게 액세스할 수 있습니다.</translation> <translation id="6756643207511618722">음성 엔진</translation> +<translation id="6757431299485455321">다른 기기가 이 핫스팟을 찾도록 돕습니다.</translation> <translation id="6758056191028427665">개선할 점이나 격려하고 싶은 점을 알려주세요.</translation> <translation id="6759193508432371551">초기화</translation> <translation id="6761431452438552910">블루투스 기기를 페어링 모드로 설정하고 가까이 두세요. 신뢰하는 기기만 페어링하세요.</translation> @@ -6349,6 +6364,7 @@ <translation id="6833479554815567477"><ph name="GROUP_NAME" /> 그룹에서 탭이 삭제됨 - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">편리하고 안전한 브라우저로 전환</translation> <translation id="6833996806551876956">개인정보 보호 샌드박스 무료 체험</translation> +<translation id="6835712061486505758">다른 기기에 인터넷을 제공할 수 있는 Wi-Fi 핫스팟을 만듭니다. <ph name="BEGIN_LINK_LEARN_MORE" />자세히 알아보기<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563"><ph name="DEVICE_TYPE" />을(를) 업데이트하려면 인터넷에 연결하세요.</translation> <translation id="6839225236531462745">인증서 삭제 오류</translation> <translation id="6839916869147598086">로그인 변경됨</translation> @@ -6510,6 +6526,7 @@ <translation id="697508444536771064">Linux 종료</translation> <translation id="6975361011348772931">읽기 및 변경 요청됨</translation> <translation id="6978121630131642226">검색엔진</translation> +<translation id="6978717888677691380">차단한 사이트</translation> <translation id="6979041727349121225">에너지 절약 모드</translation> <translation id="6979044105893951891">관리 게스트 세션 실행 및 종료</translation> <translation id="6979440798594660689">음소거(기본값)</translation> @@ -6601,6 +6618,7 @@ <translation id="7047059339731138197">백그라운드를 선택합니다.</translation> <translation id="7048457618657122233"><ph name="SHARE_TARGET" /> 링크 공유</translation> <translation id="7049293980323620022">파일을 보관하시겠습니까?</translation> +<translation id="7050037487872780845">핫스팟 구성이 잘못됨</translation> <translation id="7052237160939977163">성능 추적 데이터 전송</translation> <translation id="7053983685419859001">차단</translation> <translation id="7055152154916055070">다음 주소로의 리디렉션이 차단됨:</translation> @@ -6805,6 +6823,7 @@ <translation id="7258192266780953209">Transformations(변환)</translation> <translation id="7258225044283673131">애플리케이션이 응답하지 않습니다. '강제 종료'를 선택하여 앱을 닫으세요.</translation> <translation id="7260186537988033909">키오스크 및 사이니지 기기 등록 완료</translation> +<translation id="7260367682327802201">Android 기기에 비슷한 설정이 포함되어 있을 수 있습니다. Chrome과 Android 기기에서 광고 측정이 사용 설정되어 있으면 회사에서 사용자가 방문하는 웹사이트와 사용하는 앱에서 광고 효과를 측정할 수 있습니다.</translation> <translation id="7262004276116528033">이 로그인 서비스는 <ph name="SAML_DOMAIN" />에서 호스팅됩니다.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{사이트 1개의 권한이 삭제됨}other{사이트 {NUM_SITES}개의 권한이 삭제됨}}</translation> <translation id="7264695323040866038">지원되는 웹 링크를 열 때 항상 <ph name="APP" /> 앱을 사용할까요?</translation> @@ -6948,6 +6967,7 @@ <translation id="7406912950279255498">색상 반전 모드</translation> <translation id="7407430846095439694">가져오기 및 연결</translation> <translation id="7407504355934009739">대부분의 사용자가 이 사이트의 알림을 차단합니다.</translation> +<translation id="7408080603962564527">다른 사용자에게 표시됩니다.</translation> <translation id="740810853557944681">인쇄 서버 추가</translation> <translation id="7409549334477097887">아주 크게</translation> <translation id="7409599290172516453">최근 사진</translation> @@ -6986,7 +7006,6 @@ <translation id="7434757724413878233">마우스 가속</translation> <translation id="7434969625063495310">인쇄 서버를 추가할 수 없습니다. 서버 설정을 확인하고 다시 시도해 보세요.</translation> <translation id="7436921188514130341">이름 변경 중에 오류가 발생했습니다.</translation> -<translation id="7438495332316988804">표준 브라우저는 런처에 'Chrome'이라고 입력하여 찾을 수 있습니다.</translation> <translation id="7439519621174723623">계속하려면 기기 이름을 추가하세요.</translation> <translation id="7441736921018636843">이 설정을 변경하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />하여 동기화 암호를 삭제하세요.</translation> <translation id="7441830548568730290">다른 사용자</translation> @@ -7263,6 +7282,7 @@ <translation id="7684718995427157417">앱을 만들고 테스트하려면 Android 디버그 브리지(ADB)를 사용 설정하세요. 이렇게 하면 Google에서 확인하지 않은 Android 앱을 설치할 수 있게 되며, 사용 중지하려면 초기화가 필요합니다.</translation> <translation id="7685049629764448582">자바스크립트 메모리</translation> <translation id="7685087414635069102">PIN 필요</translation> +<translation id="7686086654630106285">사이트 추천 광고에 관해 자세히 알아보기</translation> <translation id="7686581688229391955">이 사이트에서 확장 프로그램을 허용하려면 선택하세요</translation> <translation id="7686938547853266130"><ph name="DEVICE_PATH" /> <ph name="FRIENDLY_NAME" /></translation> <translation id="7690294790491645610">새 비밀번호 확인</translation> @@ -7284,6 +7304,7 @@ <translation id="7704317875155739195">검색어 및 URL 자동 완성</translation> <translation id="7704521324619958564">Play 스토어 열기</translation> <translation id="7705276765467986571">북마크 모델을 로드하지 못했습니다.</translation> +<translation id="7705334495398865155">다른 사람이 이 기기를 추적하지 못하도록 하드웨어 ID(BSSID)를 무작위로 선택합니다.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">움직임 감지 센서 사용이 차단된 사이트입니다.</translation> <translation id="7707922173985738739">모바일 데이터 사용</translation> @@ -7478,6 +7499,7 @@ <translation id="7881483672146086348">계정 보기</translation> <translation id="7883792253546618164">언제든지 수신 거부할 수 있습니다.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{알림을 많이 보낸 사이트 1개 검토}other{알림을 많이 보낸 사이트 {NUM_SITES}개 검토}}</translation> +<translation id="7884446017008693258">핫스팟 설정</translation> <translation id="788453346724465748">계정 정보 로드 중…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{항목 1개}other{항목 #개}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7565,6 +7587,7 @@ <translation id="7952904276017482715">ID로 '<ph name="EXPECTED_ID" />'을(를) 예상했으나 '<ph name="NEW_ID" />'이(가) 표시되었습니다</translation> <translation id="7953669802889559161">입력</translation> <translation id="7953955868932471628">단축키 관리</translation> +<translation id="7955105108888461311">직접 요청</translation> <translation id="7955177647836564772">Smart Lock이 사용 설정되어 있고 휴대전화가 잠금 해제되어 있는 경우 비밀번호나 PIN을 입력하지 않아도 됩니다.</translation> <translation id="7956373551960864128">저장한 프린터</translation> <translation id="7957074856830851026">일련번호 또는 기기 ID와 같은 기기 정보 보기</translation> @@ -7703,6 +7726,7 @@ <ph name="BEGIN_PARAGRAPH3" />설정에서 이 서비스를 사용 중지할 수 있습니다.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">탭</translation> <translation id="8076835018653442223">관리자가 내 기기의 로컬 파일 액세스를 차단했습니다</translation> +<translation id="8077120325605624147">어떤 사이트에서나 광고를 게재할 수 있습니다.</translation> <translation id="80798452873915119">사이트에서 모든 디스플레이의 창 관리 허용 여부를 확인할 수 있음</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289"><ph name="MANAGER_NAME" />에서 세션을 관리합니다. 관리자가 내 프로필을 삭제하고 네트워크 트래픽을 모니터링할 수도 있습니다.</translation> @@ -8215,6 +8239,7 @@ <translation id="8557180006508471423">Mac의 Location Services(위치 서비스)에서 'Chrome'을 사용 설정하세요</translation> <translation id="8557856025359704738">다음 다운로드 날짜는 <ph name="NEXT_DATE_DOWNLOAD" />입니다.</translation> <translation id="8559858985063901027">패스키</translation> +<translation id="8559961053328923750">Chrome은 사이트에서 광고 실적을 측정하기 위해 브라우저를 통해 공유할 수 있는 데이터의 총량을 제한합니다.</translation> <translation id="8560327176991673955">{COUNT,plural, =0{새 창에서 모두 열기(N)}=1{새 창에서 열기(N)}other{새 창에서 {COUNT}개 모두 열기(N)}}</translation> <translation id="8561206103590473338">코끼리</translation> <translation id="8561565784790166472">주의해서 진행하시기 바랍니다</translation> @@ -8356,6 +8381,7 @@ <translation id="8678933587484842200">이 애플리케이션을 실행할 방법을 선택하세요.</translation> <translation id="8680251145628383637">로그인하면 모든 기기에서 북마크, 방문 기록, 비밀번호, 기타 설정이 동기화되며 Google 서비스에 자동으로 로그인됩니다.</translation> <translation id="8681614230122836773">Chrome이 컴퓨터에서 유해한 소프트웨어를 발견했습니다.</translation> +<translation id="8681886425883659911">방해가 되거나 사용자를 현혹하는 광고를 표시하는 것으로 알려진 사이트에서 광고가 차단됩니다.</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" />이(가) 연결되었으며 사용 가능함</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> 다운로드 취소</translation> <translation id="8688672835843460752">사용 가능</translation> @@ -8726,6 +8752,7 @@ <translation id="9021662811137657072">바이러스가 발견됨</translation> <translation id="902236149563113779">사이트에서는 일반적으로 게임 또는 전방 방향 안내와 같은 AR 기능을 사용하기 위해 카메라 위치를 추적합니다.</translation> <translation id="9022847679183471841">이미 <ph name="AVATAR_NAME" />이(가) 이 컴퓨터에서 이 계정을 사용하고 있습니다.</translation> +<translation id="9022871169049522985">사이트 및 광고주가 광고 실적을 측정할 수 있습니다.</translation> <translation id="9023015617655685412">현재 탭을 북마크에 추가</translation> <translation id="9023909777842748145">이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 데는 영향을 미치지 않습니다.</translation> <translation id="9024127637873500333">새 탭에서 열기(&O)</translation> @@ -8855,6 +8882,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" />의 설정 페이지 열기</translation> <translation id="9128870381267983090">네트워크에 연결</translation> <translation id="9130015405878219958">잘못된 모드를 입력했습니다.</translation> +<translation id="9131209053278896908">차단된 사이트가 여기에 표시됩니다.</translation> <translation id="9131487537093447019">블루투스 기기와 메시지를 주고받습니다.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{북마크 1개}other{북마크 #개}}</translation> <translation id="9134066738478820307">사이트가 보호된 콘텐츠를 재생하기 위해 식별자를 사용할 수 있음</translation> @@ -8908,6 +8936,7 @@ <translation id="9180281769944411366">이 과정은 몇 분 정도 걸릴 수 있습니다. Linux 컨테이너를 시작합니다.</translation> <translation id="9180380851667544951">사이트에서 화면을 공유할 수 있습니다.</translation> <translation id="9182556968660520230">사이트에서 보호된 콘텐츠를 재생하도록 허용하지 않음</translation> +<translation id="9183331776983279456">Chrome은 4주 이상 된 사이트를 자동 삭제합니다. 재방문한 사이트는 목록에 다시 표시될 수 있습니다. 또는 사이트에서 광고를 추천하지 못하도록 차단할 수도 있습니다.</translation> <translation id="918352324374649435">{COUNT,plural, =1{앱}other{앱 #개}}</translation> <translation id="9186963452600581158">자녀의 Google 계정으로 로그인</translation> <translation id="9187967020623675250">키가 일치하지 않습니다. <ph name="RESPONSE" />하려면 아무 키나 누르세요.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index c26aae3..e2c9be37 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -769,6 +769,7 @@ <translation id="168715261339224929">Кыстармаларды бардык түзмөктөрүңүздө колдонуу үчүн шайкештирүүнү күйгүзүңүз.</translation> <translation id="1688867105868176567">Сайттын дайындары тазалансынбы?</translation> <translation id="1688935057616748272">Тамганы териңиз</translation> +<translation id="1689333818294560261">Ылакап ат</translation> <translation id="168991973552362966">Жакын арадагы принтерди кошуу</translation> <translation id="1689945336726856614">&URLди көчүрүү</translation> <translation id="1692115862433274081">Башка аккаунтту колдонуу</translation> @@ -1525,7 +1526,6 @@ <translation id="2329597144923131178">Бардык түзмөктөрүңүздөн кыстармаларды, таржымалды, сырсөздөрдү жана башка жөндөөлөрүңүздү алуу үчүн аккаунтка кириңиз.</translation> <translation id="2332115969598251205">Төмөнкүгө сакталган түзмөктөр жүктөлбөй жатат: <ph name="PRIMARY_EMAIL" />. Интернет байланышыңызды текшерип, кайталап көрүңүз.</translation> <translation id="2332131598580221120">Дүкөндөн карап көрүү</translation> -<translation id="2332192922827071008">Жеке параметрлерди ачуу</translation> <translation id="2332515770639153015">Өркүндөтүлгөн коопсуз серептөө күйүк</translation> <translation id="2332742915001411729">Демейкиге кайтаруу</translation> <translation id="2332948465534020594">"Тынчымды алба" режими иштетилди</translation> @@ -4294,7 +4294,6 @@ <translation id="4893336867552636863">Ушуну менен бул түзмөктөн серептөө дайын-даректериңиз биротоло өчүрүлөт.</translation> <translation id="4893454800196085005">Жакшы – DVD</translation> <translation id="4893522937062257019">Кулпуланган экранда</translation> -<translation id="4897496410259333978">Кененирээк маалымат алуу үчүн администраторуңузга кайрылыңыз.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" тастыктамасы Тастыктоочу борбордон алынган</translation> <translation id="4899052647152077033">Түстөрдү инверттөө</translation> <translation id="4899696330053002588">Жарнамалар бар</translation> @@ -5828,7 +5827,6 @@ <translation id="6347010704471250799">Билдирмени көрсөтүү</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> колдонмосун орнотуу</translation> <translation id="6354918092619878358">SECG эллиптикалык ийри сызыгы secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Экперименталдуу (альфа-сапаттагы) серепчи! Айрым функциялар жок же толук эмес. Көйгөйлөрдү кабарлоо үчүн Жардам > "Көйгөйдү кабарлоо..." бөлүмүнө өтүңүз.</translation> <translation id="635609604405270300">Түзмөктү өчүрбөңүз</translation> <translation id="63566973648609420">Шифрленген дайын-даректериңизди купуя сөз айкашын билген адам гана окуй алат. Бул купуя сөз айкашы Google'га жөнөтүлбөйт же анда сакталбайт. Эгер купуя сөз айкашыңызды унутуп калсаңыз, <ph name="BEGIN_LINK" />шайкештирүүнү баштапкы абалга келтиришиңиз<ph name="END_LINK" /> керек болот.</translation> <translation id="6357305427698525450">Колдоого алынган айрым шилтемелер <ph name="APP_NAME" /> же <ph name="APP_NAME_2" /> колдонмосунда ачыла берет.</translation> @@ -6987,7 +6985,6 @@ <translation id="7434757724413878233">Чычканды ылдамдаткыч</translation> <translation id="7434969625063495310">Басып чыгаруу сервери кошулган жок. Сервердин конфигурациясын текшерип, кайталап көрүңүз.</translation> <translation id="7436921188514130341">Ка-ап! Аталышы өзгөртүлүп жатканда ката кетти.</translation> -<translation id="7438495332316988804">Стандарттык серепчини табуу үчүн Жүргүзгүчкө "Chrome" деп териңиз.</translation> <translation id="7439519621174723623">Улантуу үчүн түзмөктүн аталышын кошуңуз</translation> <translation id="7441736921018636843">Бул жөндөөнү өзгөртүү үчүн <ph name="BEGIN_LINK" />шайкештирүү параметрлерин баштапкы абалга келтирип<ph name="END_LINK" />, купуя сөз айкашын алып салыңыз</translation> <translation id="7441830548568730290">Башка колдонуучулар</translation> @@ -7565,6 +7562,7 @@ <translation id="7952904276017482715"><ph name="EXPECTED_ID" /> идентификатору күтүлгөн, бирок ал "<ph name="NEW_ID" />" болуп калды</translation> <translation id="7953669802889559161">Киргизүүлөр</translation> <translation id="7953955868932471628">Кыска жолдорду башкаруу</translation> +<translation id="7955105108888461311">Жеке сурануу</translation> <translation id="7955177647836564772">Эгер Smart Lock күйгүзүлүп, телефонуңуздун кулпусу ачык болсо, сырсөз же PIN код киргизүү керектелбейт</translation> <translation id="7956373551960864128">Сакталган принтерлериңиз</translation> <translation id="7957074856830851026">Сериялык номери же объекттин идентификатору сыяктуу түзмөктүн маалыматын көрүү</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index d15d6eed..10b5889 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -771,6 +771,7 @@ <translation id="168715261339224929">ເພື່ອມີບຸກມາກຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນກ່ອນ.</translation> <translation id="1688867105868176567">ລຶບລ້າງຂໍ້ມູນເວັບໄຊບໍ?</translation> <translation id="1688935057616748272">ພິມຕົວອັກສອນ</translation> +<translation id="1689333818294560261">ຊື່ຫຼິ້ນ</translation> <translation id="168991973552362966">ເພີ່ມເຄື່ອງພິມທີ່ຢູ່ໃກ້ຄຽງ</translation> <translation id="1689945336726856614">ສຳເນົາ &URL</translation> <translation id="1692115862433274081">ໃຊ້ບັນຊີອື່ນ</translation> @@ -1529,7 +1530,6 @@ <translation id="2329597144923131178">ລົງຊື່ເຂົ້າເພື່ອເອົາບຸກມາກຄ໌, ປະຫວັດ, ລະຫັດຜ່ານ, ແລະ ການຕັ້ງຄ່າອື່ນຂອງທ່ານຢູ່ເທິງທຸກອຸປະກອນຂອງທ່ານ.</translation> <translation id="2332115969598251205">ບໍ່ສາມາດໂຫຼດອຸປະກອນທີ່ບັນທຶກໄວ້ໃນ <ph name="PRIMARY_EMAIL" /> ໄດ້. ກະລຸນາກວດສອບການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານແລ້ວລອງໃໝ່.</translation> <translation id="2332131598580221120">ເບິ່ງຢູ່ໃນຮ້ານ</translation> -<translation id="2332192922827071008">ເປີດການຕັ້ງຄ່າ</translation> <translation id="2332515770639153015">ເປີດໃຊ້ Safe Browsing ທີ່ປັບປຸງດີຂຶ້ນແລ້ວ</translation> <translation id="2332742915001411729">ຕັ້ງຄ່າເປັນມາດຕະຖານຄືນໃໝ່</translation> <translation id="2332948465534020594">ເປີດການນຳໃຊ້ໂໝດຫ້າມລົບກວນແລ້ວ</translation> @@ -4310,7 +4310,6 @@ <translation id="4893336867552636863">ອັນນີ້ຈະລຶບຂໍ້ມູນການທ່ອງເນັດຂອງທ່ານໄປຈາກອຸປະກອນນີ້ຖາວອນ.</translation> <translation id="4893454800196085005">ດີ - DVD</translation> <translation id="4893522937062257019">ໃນໜ້າຈໍລັອກ</translation> -<translation id="4897496410259333978">ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation> <translation id="4898011734382862273">ໃບຮັບຮອງ "<ph name="CERTIFICATE_NAME" />" ເປັນຕົວແທນໃຫ້ໜ່ວຍງານອອກໃບຮັບຮອງ</translation> <translation id="4899052647152077033">ປີ້ນສີ</translation> <translation id="4899696330053002588">ມີໂຄສະນາ</translation> @@ -5845,7 +5844,6 @@ <translation id="6347010704471250799">ສະແດງການແຈ້ງເຕືອນ</translation> <translation id="6349101878882523185">ຕິດຕັ້ງ <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">ໂປຣແກຣມທ່ອງເວັບ (ຄຸນນະພາບ alpha) ແບບທົດລອງ ຄຸນສົມບັດບາງຢ່າງອາດບໍ່ມີ ຫຼື ບໍ່ສົມບູນ. ກະລຸນາລາຍງານບັນຫາຕ່າງໆດ້ວຍ: ຊ່ວຍເຫຼືອ > "ລາຍງານບັນຫາ...".</translation> <translation id="635609604405270300">ຮັກສາໃຫ້ອຸປະກອນເປີດຢູ່</translation> <translation id="63566973648609420">ສະເພາະຜູ້ທີ່ມີວະລີຜ່ານຂອງທ່ານເທົ່ານັ້ນສາມາດອ່ານຂໍ້ມູນທີ່ເຂົ້າລະຫັດໄວ້ຂອງທ່ານໄດ້. ວະລີຜ່ານຈະບໍ່ຖືກສົ່ງຫາ ຫຼື ຮັກສາໄວ້ໂດຍ Google. ຖ້າທ່ານລືມວະລີຜ່ານຂອງທ່ານ ຫຼື ຕ້ອງການປ່ຽນການຕັ້ງຄ່ານີ້, ທ່ານຈະຈຳເປັນຕ້ອງ <ph name="BEGIN_LINK" />ຣີເຊັດການຊິ້ງຂໍ້ມູນ<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">ລິ້ງທີ່ຮອງຮັບບາງຢ່າງຈະຍັງຄົງເປີດໃນ <ph name="APP_NAME" /> ຫຼື <ph name="APP_NAME_2" />.</translation> @@ -7011,7 +7009,6 @@ <translation id="7434757724413878233">ການເລັ່ງຄວາມໄວເມົ້າ</translation> <translation id="7434969625063495310">ບໍ່ສາມາດເພີ່ມເຊີບເວີການພິມໄດ້. ກະລຸນາກວດເບິ່ງການຕັ້ງຄ່າເຊີບເວີ ແລ້ວລອງໃໝ່.</translation> <translation id="7436921188514130341">ໂອ໋ຍ, ໂຊກຮ້າຍແທ້! ເກີດຄວາມຜິດພາດຂຶ້ນໃນເວລາປ່ຽນຊື່.</translation> -<translation id="7438495332316988804">ສາມາດໃຊ້ໂປຣແກຣມທ່ອງເວັບມາດຕະຖານໄດ້ໂດຍການພິມ "Chrome" ໄປໃສ່ຕົວເປີດໃຊ້.</translation> <translation id="7439519621174723623">ເພີ່ມຊື່ອຸປະກອນເພື່ອສືບຕໍ່</translation> <translation id="7441736921018636843">ເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້, ກະລຸນາ <ph name="BEGIN_LINK" />ຣີເຊັດການຊິ້ງຂໍ້ມູນ<ph name="END_LINK" /> ເພື່ອລຶບລະຫັດຜ່ານການຊິ້ງຂໍ້ມູນຂອງທ່ານອອກ</translation> <translation id="7441830548568730290">ຜູ້ໃຊ້ອື່ນ</translation> @@ -7591,6 +7588,7 @@ <translation id="7952904276017482715">ID ທີ່ຄາດໄວ້ "<ph name="EXPECTED_ID" />", ແຕ່ ID ແມ່ນ "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">ການປ້ອນຂໍ້ມູນ</translation> <translation id="7953955868932471628">ຈັດການທາງລັດ</translation> +<translation id="7955105108888461311">ຖາມດ້ວຍຕົນເອງ</translation> <translation id="7955177647836564772">ຫາກເປີດໃຊ້ Smart Lock ໄວ້ ແລະ ໂທລະສັບຂອງທ່ານປົດລັອກຢູ່, ທ່ານບໍ່ຈຳເປັນຕ້ອງໃສ່ລະຫັດຜ່ານ ຫຼື PIN</translation> <translation id="7956373551960864128">ເຄື່ອງພິມທີ່ບັນທຶກໄວ້ຂອງທ່ານ</translation> <translation id="7957074856830851026">ເບິ່ງຂໍ້ມູນອຸປະກອນ ເຊັ່ນ: ໝາຍເລກຊີຣຽວ ຫຼື ລະຫັດເນື້ອຫາຂອງມັນ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 63a6358..d6a4a38 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -60,6 +60,7 @@ <translation id="1054153489933238809">Atidaryti originalų &vaizdą naujame skirtuke</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per savaitę}one{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_WEEKS} savaitę}few{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_WEEKS} savaites}many{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_WEEKS} savaitės}other{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_WEEKS} savaičių}}</translation> <translation id="1056898198331236512">Įspėjimas</translation> +<translation id="1056980582064308040">Pakeitus nustatymus viešosios interneto prieigos taškas bus paleistas iš naujo. Įrenginiai, naudojantys viešosios interneto prieigos tašką, bus atjungti.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Įveskite naują PIN kodą. PIN kodą turi sudaryti bent vienas simbolis ir jame turi būti raidžių, skaitmenų bei kitų simbolių.}one{Įveskite naują PIN kodą. PIN kodą turi sudaryti bent # simbolis ir jame turi būti raidžių, skaitmenų bei kitų simbolių.}few{Įveskite naują PIN kodą. PIN kodą turi sudaryti bent # simboliai ir jame turi būti raidžių, skaitmenų bei kitų simbolių.}many{Įveskite naują PIN kodą. PIN kodą turi sudaryti bent # simbolio ir jame turi būti raidžių, skaitmenų bei kitų simbolių.}other{Įveskite naują PIN kodą. PIN kodą turi sudaryti bent # simbolių ir jame turi būti raidžių, skaitmenų bei kitų simbolių.}}</translation> <translation id="1059484610606223931">Hiperteksto transportavimo protokolas (HTTPS)</translation> @@ -310,6 +311,7 @@ <translation id="1272079795634619415">Sustabdyti</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Palaikomų nuorodų<ph name="END_LINK" /> atidarymas</translation> <translation id="1272978324304772054">Ši naudotojo paskyra nepriklauso domenui, prie kurio priregistruotas įrenginys. Jei norite naudoti su kitu domenu, pirma turite atlikti įrenginio atkūrimo procedūrą.</translation> +<translation id="1273937721055267968">Blokuoti <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Slapukai ir kiti svetainių duomenys</translation> <translation id="1275718070701477396">Pasirinkta</translation> <translation id="1276994519141842946">Nepavyko įdiegti programos „<ph name="APP_NAME" />“</translation> @@ -363,6 +365,7 @@ <translation id="1327495825214193325">Jei norite įgalinti ADB derinimą, turite iš naujo paleisti šį „<ph name="DEVICE_TYPE" />“. Išjungus reikia iš naujo nustatyti gamyklinius nustatymus.</translation> <translation id="1327527584824210101">Naudokite „passkey“</translation> <translation id="1327794256477341646">Funkcijos, kurioms reikalinga jūsų vietovės informacija, neveiks</translation> +<translation id="1329466763986822896">Pagerinti šio viešosios interneto prieigos taško privatumą</translation> <translation id="1331977651797684645">Tai buvau aš.</translation> <translation id="1333489022424033687">Kai kurios svetainės <ph name="ORIGIN" /> funkcijos gali neveikti, iki kol išvalysite duomenis, kuriuos kitos svetainės išsaugojo jūsų įrenginyje</translation> <translation id="1333965224356556482">Neleisti svetainėms peržiūrėti vietovės informacijos</translation> @@ -604,6 +607,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Inkognito langas nebus atidarytas iš naujo.}one{# inkognito langas nebus atidarytas iš naujo.}few{# inkognito langai nebus atidaryti iš naujo.}many{# inkognito lango nebus atidaryta iš naujo.}other{# inkognito langų nebus atidaryta iš naujo.}}</translation> <translation id="1546280085599573572">Šis plėtinys pakeitė puslapį, kuris rodomas spustelėjus pagrindinio puslapio mygtuką.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> nori įdiegti <ph name="EXTENSION_TYPE" />, kuris gali atlikti nurodytus veiksmus.</translation> +<translation id="1547123415014299762">Trečiųjų šalių slapukai leidžiami</translation> <translation id="1547808936554660006">Suprantu, kad įdiegti „eSIM“ kortelės profiliai nebus pašalinti naudojant funkciją „Powerwash“</translation> <translation id="1547936895218027488">Spustelėkite šoninio skydelio piktogramą, kad jį atidarytumėte</translation> <translation id="1549275686094429035">Įgalinta ARC</translation> @@ -778,6 +782,7 @@ <translation id="168715261339224929">Jei norite gauti žymes visuose įrenginiuose, įjunkite sinchronizavimą.</translation> <translation id="1688867105868176567">Išvalyti svetainės duomenis?</translation> <translation id="1688935057616748272">Įveskite raidę</translation> +<translation id="1689333818294560261">Slapyvardis</translation> <translation id="168991973552362966">Pridėti netoliese esantį spausdintuvą</translation> <translation id="1689945336726856614">Kopijuoti &URL</translation> <translation id="1692115862433274081">Naudoti kitą paskyrą</translation> @@ -1419,6 +1424,7 @@ <translation id="2247870315273396641">Balso perklausa</translation> <translation id="2249111429176737533">Atidaryti kaip į skirtukus suskirstytą langą</translation> <translation id="2249605167705922988">pvz., 1–5, 8, 11–13</translation> +<translation id="2249635629516220541">Tinkinkite informaciją, pagal kurią svetainės rodo jums skelbimus</translation> <translation id="2251218783371366160">Atidaryti naudojat sistemos peržiūros priemonę</translation> <translation id="225163402930830576">Atnaujinti tinklus</translation> <translation id="2251809247798634662">Naujas inkognito langas</translation> @@ -1536,7 +1542,6 @@ <translation id="2329597144923131178">Pris. ir pas. žymių, ist., slapt. bei kitų nust. duom. visuose įreng.</translation> <translation id="2332115969598251205">Nepavyko įkelti įrenginių, išsaugotų paskyroje <ph name="PRIMARY_EMAIL" />. Patikrinkite interneto ryšį ir bandykite dar kartą.</translation> <translation id="2332131598580221120">Žiūrėti parduotuvėje</translation> -<translation id="2332192922827071008">Atidarykite nuostatas</translation> <translation id="2332515770639153015">Sustiprintas saugus naršymas įjungtas</translation> <translation id="2332742915001411729">Nustatyti iš naujo numatytąjį</translation> <translation id="2332948465534020594">Netrukdymo režimas įgalintas</translation> @@ -1870,6 +1875,7 @@ <translation id="2640299212685523844">Naudoti GTK</translation> <translation id="264083724974021997">Susiejimas su telefonu – dialogo langas</translation> <translation id="2642111877055905627">Futbolo kamuolys</translation> +<translation id="2643064289437760082">Bet kada galite ištrinti skelbimų vertinimo duomenis ištrindami naršymo duomenis</translation> <translation id="2643698698624765890">„Lango“ meniu spustelėję „Plėtiniai“, tvarkykite plėtinius.</translation> <translation id="2645047101481282803">Įrenginį tvarko <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">„Chrome“ OS</translation> @@ -2330,6 +2336,7 @@ <translation id="3036327949511794916">Terminas, iki kurio buvo galima grąžinti šį „<ph name="DEVICE_TYPE" />“ įrenginį, jau praėjo.</translation> <translation id="3036546437875325427">Įgalinti „Flash“</translation> <translation id="3037754279345160234">Nepavyko išanalizuoti domeno prisijungimo konfigūracijos. Susisiekite su administratoriumi.</translation> +<translation id="3038272154009688107">Žr. visas svetaines</translation> <translation id="3038612606416062604">Pridėti spausdintuvą neautomatiškai</translation> <translation id="3039491566278747710">Nepavyko įrenginyje įdiegti neprisijungus pasiekiamos politikos.</translation> <translation id="3043016484125065343">Žymių peržiūra prisijungus</translation> @@ -2567,6 +2574,7 @@ <translation id="3289856944988573801">Jei norite tikrinti, ar nėra naujinių, naudokite eternetą arba „Wi-Fi“.</translation> <translation id="3289886661311231677">Galite blokuoti temas, kurių nenorite bendrinti su svetainėmis. „Chrome“ taip pat automatiškai ištrina senesnes nei keturių savaičių temas.</translation> <translation id="3290249595466894471">Taip pat siunčia nedaug puslapių, atsisiuntimų, plėtinių veiklos ir sistemos informacijos, kad padėtų aptikti naujas grėsmes</translation> +<translation id="3293181007446299124">Naršymo istorija saugoma privačiai įrenginyje, o ataskaitos siunčiamos su delsa, siekiant apsaugoti jūsų tapatybę</translation> <translation id="3293644607209440645">Siųsti šį puslapį</translation> <translation id="32939749466444286">Nepavyko paleisti „Linux“ sudėtinio rodinio. Bandykite dar kartą.</translation> <translation id="3294437725009624529">Svečias</translation> @@ -3349,6 +3357,7 @@ <translation id="3984431586879874039">Leisti šiai svetainei peržiūrėti jūsų saugos raktą?</translation> <translation id="398477389655464998">Kopijuoti nuorodą į paryškintą tekstą</translation> <translation id="3984862166739904574">Sparčiųjų atsakymų apibrėžimas</translation> +<translation id="3985022125189960801">Galite iš naujo pridėti svetainę, jei norite, kad ji būtų įtraukta į svetainių, kurioms leidžiama daryti prielaidas apie tai, kas jums patinka, sąrašą</translation> <translation id="3987544746655539083">Toliau neleisti šiai svetainei pasiekti jūsų vietovės informacijos</translation> <translation id="3987938432087324095">Deja, suprasti nepavyko.</translation> <translation id="3987993985790029246">Kop. nuor.</translation> @@ -3728,6 +3737,7 @@ <translation id="4366138410738374926">Spausdinimas pradėtas</translation> <translation id="4367513928820380646">Peržiūrėkite pašalintus leidimus</translation> <translation id="4369215744064167350">Svetainės užklausa patvirtinta</translation> +<translation id="4369735607080757018">Skirtingose svetainėse bendrinami tam tikrų tipų duomenys siekiant įvertinti skelbimų našumą, pvz., paros laikas, kada skelbimas buvo jums rodomas</translation> <translation id="4370975561335139969">Įvestas slaptažodis neatitinka el. pašto adreso</translation> <translation id="4374831787438678295">„Linux“ diegimo programa</translation> <translation id="4375035964737468845">Atidaryti atsisiųstus failus</translation> @@ -3748,6 +3758,7 @@ <translation id="4385146930797718821">Ekrano kopija nukopijuota į iškarpinę</translation> <translation id="4385905942116811558">Ieškoma „Bluetooth“ ir USB įrenginių</translation> <translation id="4387890294700445764">Pažeisti slaptažodžiai</translation> +<translation id="4388650384344483842">Naudokite bent aštuonis simbolius</translation> <translation id="4389091756366370506"><ph name="VALUE" /> naudotojas</translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ir dar tiek jungiklių: <ph name="NUMBER_OF_OTHER_SWITCHES" /></translation> <translation id="439266289085815679">„Bluetooth“ konfigūravimą valdo <ph name="USER_EMAIL" />.</translation> @@ -4070,6 +4081,7 @@ <translation id="4666472247053585787">Peržiūrėkite pranešimus iš telefono „<ph name="DEVICE_TYPE" />“ įrenginyje</translation> <translation id="4666911709726371538">Daugiau programų</translation> <translation id="4667027203988048332">Kokie duomenys naudojami</translation> +<translation id="4668279686271488041">Skelbimų vertinimo duomenys reguliariai ištrinami iš jūsų įrenginio</translation> <translation id="4672759829555593783">Dabar atidaryti <ph name="FILE_NAME" /></translation> <translation id="46733273239502219">Neprisijungus pasiekiami duomenys įdiegtose programose taip pat bus išvalyti</translation> <translation id="4673442866648850031">Atidaryti rašiklio įrankius, kai rašiklis pašalintas</translation> @@ -4263,6 +4275,7 @@ <translation id="485480310608090163">Daugiau nustatymų ir leidimų</translation> <translation id="4858913220355269194">Šemberas</translation> <translation id="4862642413395066333">OCSP atsakų pasirašymas</translation> +<translation id="4863702650881330715">Praplėsti suderinamumą</translation> <translation id="4863769717153320198">Atrodo kaip <ph name="WIDTH" /> × <ph name="HEIGHT" /> (numatytasis)</translation> <translation id="4864805589453749318">Pasirinkite vieną iš tėvų, kuris suteikia leidimą pridėti mokyklos paskyrą.</translation> <translation id="486635084936119914">Automatiškai atidaryti tam tikrų tipų failus, kai jie atsisiunčiami</translation> @@ -4311,7 +4324,6 @@ <translation id="4893336867552636863">Atlikus šį veiksmą bus visam laikui ištrinti naršymo duomenys iš šio įrenginio.</translation> <translation id="4893454800196085005">Gera – DVD</translation> <translation id="4893522937062257019">Užrakinimo ekrane</translation> -<translation id="4897496410259333978">Jei reikia daugiau informacijos, susisiekite su administratoriumi.</translation> <translation id="4898011734382862273">Sertifikatas „<ph name="CERTIFICATE_NAME" />“ nurodo sertifikavimo instituciją</translation> <translation id="4899052647152077033">Pakeisti spalvas</translation> <translation id="4899696330053002588">Yra skelbimų</translation> @@ -4510,6 +4522,7 @@ <translation id="5094721898978802975">Sąveikauti su atitinkamomis vietinėmis programomis</translation> <translation id="5097002363526479830">Nepavyko prisijungti prie tinklo „<ph name="NAME" />“: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Sužinokite daugiau apie vietovės informacijos naudojimą</translation> +<translation id="5097349930204431044">Svetainės, kuriose lankotės, gali nustatyti, kas jums patinka, ir siūlyti skelbimus jums toliau naršant</translation> <translation id="5097649414558628673">Įrankis: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatiškai spustelėti žymekliui sustojus</translation> <translation id="5101683448725092498">Atsarginės turinio kopijos kūrimas</translation> @@ -4692,6 +4705,7 @@ <translation id="5275352920323889391">Šuo</translation> <translation id="527605719918376753">Nutildyti skirtuko garsą</translation> <translation id="527605982717517565">Visada leisti „JavaScript“ <ph name="HOST" /></translation> +<translation id="5276357196618041410">Negalima išsaugoti konfigūracijos neprisijungus</translation> <translation id="5277127016695466621">Rodyti šoninį skydelį</translation> <translation id="5278823018825269962">Būsenos ID</translation> <translation id="5279600392753459966">Blokuoti viską</translation> @@ -5848,7 +5862,6 @@ <translation id="6347010704471250799">Pranešimo rodymas</translation> <translation id="6349101878882523185">Įdiegti <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elipsės formos kreivės secp256r1 (taip pat vadinama ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentinė (alfa versijos kokybės) naršyklė! Kai kurių funkcijų nėra arba jos neužbaigtos. Praneškite, jei kils problemų, skiltyje „Pagalba“ > „Pranešti apie problemą...“</translation> <translation id="635609604405270300">Neišjunkite įrenginio</translation> <translation id="63566973648609420">Tik jūsų slaptafrazę žinantis asmuo gali skaityti šifruotus duomenis. Slaptafrazė nesiunčiama į sistemą „Google“ ir joje nesaugoma. Pamiršę slaptafrazę arba norėdami pakeisti šį nustatymą turėsite <ph name="BEGIN_LINK" />iš naujo nustatyti sinchronizavimą<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“ arba „<ph name="APP_NAME_2" />“.</translation> @@ -6195,6 +6208,7 @@ <translation id="6670767097276846646">Naudojant kai kuriuos plėtinius galima pridėti paieškos variklius prie „Chrome“</translation> <translation id="6671320560732140690">{COUNT,plural, =1{adresą}one{# adresą}few{# adresus}many{# adreso}other{# adresų}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" /> valdymo funkcijų nustatymas</translation> +<translation id="6672917148207387131">Pridėti <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Jei norite pradėti sinchronizuoti, įveskite slaptafrazę</translation> <translation id="6675665718701918026">Manipuliatorius prijungtas</translation> @@ -6278,6 +6292,7 @@ <translation id="6751344591405861699">„<ph name="WINDOW_TITLE" />“ (Inkognito)</translation> <translation id="6756157672127672536">Naudodami programą „Failai“ greitai pasieksite „Google“ diske, išorinėje saugykloje ar „Chrome“ OS įrenginyje išsaugotus failus.</translation> <translation id="6756643207511618722">Kalbų varikliai</translation> +<translation id="6757431299485455321">Padėkite kitiems įrenginiams rasti šį viešosios interneto prieigos tašką.</translation> <translation id="6758056191028427665">Pateikite atsiliepimų.</translation> <translation id="6759193508432371551">Gamykliniai nustatymai</translation> <translation id="6761431452438552910">Įsitikinkite, kad „Bluetooth“ įrenginys yra netoliese ir veikia susiejimo režimu. Susiekite tik su patikimais įrenginiais.</translation> @@ -6377,6 +6392,7 @@ <translation id="6833479554815567477">Skirtukas pašalintas iš grupės „<ph name="GROUP_NAME" />“ – <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Perjunkite į išmanią ir saugią naršyklę</translation> <translation id="6833996806551876956">„Privacy Sandbox“ bandomasis laikotarpis</translation> +<translation id="6835712061486505758">Sukurkite „Wi-Fi“ viešosios interneto prieigos tašką, kad galėtumėte teikti interneto ryšį kitiems įrenginiams. <ph name="BEGIN_LINK_LEARN_MORE" />Sužinokite daugiau<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Prisijunkite prie interneto, kad galėtumėte atnaujinti „<ph name="DEVICE_TYPE" />“.</translation> <translation id="6839225236531462745">Sertifikato ištrynimo klaida</translation> <translation id="6839916869147598086">Prisijungimas pakeistas</translation> @@ -6538,6 +6554,7 @@ <translation id="697508444536771064">Stabdyti „Linux“</translation> <translation id="6975361011348772931">Pateikta užklausa skaityti ir keisti</translation> <translation id="6978121630131642226">Paieškos sistemos</translation> +<translation id="6978717888677691380">Svetainės, kurias užblokavote</translation> <translation id="6979041727349121225">Energijos taupymo priemonė</translation> <translation id="6979044105893951891">Pradėti ir užbaigti valdomas svečio sesijas</translation> <translation id="6979440798594660689">Nutildyti (numatytasis)</translation> @@ -6629,6 +6646,7 @@ <translation id="7047059339731138197">Pasirinkite foną</translation> <translation id="7048457618657122233">Bendrinti nuorodą į „<ph name="SHARE_TARGET" />“</translation> <translation id="7049293980323620022">Palikti failą?</translation> +<translation id="7050037487872780845">Netinkama viešosios interneto prieigos taško konfigūracija</translation> <translation id="7052237160939977163">Siųsti našumo stebėjimo duomenis</translation> <translation id="7053983685419859001">Blokuoti</translation> <translation id="7055152154916055070">Peradresavimas užblokuotas:</translation> @@ -6833,6 +6851,7 @@ <translation id="7258192266780953209">Transformacijos</translation> <translation id="7258225044283673131">Programa nereaguoja. Pasirinkite „Priverstinai uždaryti“, kad uždarytumėte programą.</translation> <translation id="7260186537988033909">Viešojo terminalo ir ženklų įrenginio registracija baigta</translation> +<translation id="7260367682327802201">Jūsų „Android“ įrenginyje gali būti panašus nustatymas. Jei naršyklėje „Chrome“ ir „Android“ įrenginyje įjungtas skelbimų vertinimo nustatymas, įmonė gali vertinti skelbimo efektyvumą svetainėse, kuriose lankotės, ir programose, kurias naudojate.</translation> <translation id="7262004276116528033">Ši prisijungimo paslauga priglobiama <ph name="SAML_DOMAIN" />.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Pašalinti 1 svetainės leidimai}one{Pašalinti {NUM_SITES} svetainės leidimai}few{Pašalinti {NUM_SITES} svetainių leidimai}many{Pašalinti {NUM_SITES} svetainės leidimai}other{Pašalinti {NUM_SITES} svetainių leidimai}}</translation> <translation id="7264695323040866038">Visada naudoti programą „<ph name="APP" />“ palaikomoms žiniatinklio nuorodoms atidaryti?</translation> @@ -6976,6 +6995,7 @@ <translation id="7406912950279255498">Spalvų inversijos režimas</translation> <translation id="7407430846095439694">Importuoti ir susaistyti</translation> <translation id="7407504355934009739">Dauguma žmonių blokuoja pranešimus šioje svetainėje</translation> +<translation id="7408080603962564527">Tai matys kiti žmonės</translation> <translation id="740810853557944681">Spausdinimo serverio pridėjimas</translation> <translation id="7409549334477097887">Itin didelis</translation> <translation id="7409599290172516453">Naujausios nuotraukos</translation> @@ -7015,7 +7035,6 @@ <translation id="7434757724413878233">Pelės spartinimas</translation> <translation id="7434969625063495310">Nepavyko pridėti spausdinimo serverio. Patikrinkite serverio konfigūraciją ir bandykite dar kartą.</translation> <translation id="7436921188514130341">Oi, pervardijant įvyko klaida.</translation> -<translation id="7438495332316988804">Įprastą naršyklę galima rasti Paleidimo priemonėje įvedus „Chrome“.</translation> <translation id="7439519621174723623">Jei norite tęsti, pridėkite įrenginio pavadinimą</translation> <translation id="7441736921018636843">Jei norite pakeisti šį nustatymą, <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation> <translation id="7441830548568730290">Kiti naudotojai</translation> @@ -7293,6 +7312,7 @@ <translation id="7684718995427157417">Kad galėtumėte kurti ir testuoti programas, įgalinkite „Android“ derinimo tiltą (ADB). Atminkite, kad atlikus šį veiksmą bus leidžiama įdiegti „Android“ programas, kurios nebuvo patvirtintos „Google“, o norint išjungti ADB, reikės atkurti gamyklinius nustatymus.</translation> <translation id="7685049629764448582">„JavaScript“ atmintis</translation> <translation id="7685087414635069102">Reikia PIN kodo</translation> +<translation id="7686086654630106285">Daugiau apie svetainių siūlomus skelbimus</translation> <translation id="7686581688229391955">Pasirinkti leisti plėtinius šioje svetainėje</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Patvirtinkite naują slaptažodį</translation> @@ -7314,6 +7334,7 @@ <translation id="7704317875155739195">Automatiškai užbaigti paieškas ir URL</translation> <translation id="7704521324619958564">Atidaryti „Google Play“ parduotuvę</translation> <translation id="7705276765467986571">Žymių modelio įkelti nepavyko.</translation> +<translation id="7705334495398865155">Parinkite atsitiktinį aparatinės įrangos ID (PPRID), kad kiti asmenys negalėtų stebėti šio įrenginio.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Ši svetainė užblokuota, kad nebūtų naudojami judesio jutikliai.</translation> <translation id="7707922173985738739">Naudoti mobiliojo ryšio duomenis</translation> @@ -7508,6 +7529,7 @@ <translation id="7881483672146086348">Žiūrėti paskyrą</translation> <translation id="7883792253546618164">Atsisakyti prenumeratos galėsite bet kuriuo metu.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Peržiūrėkite 1 svetainę, kuri išsiuntė daug pranešimų}one{Peržiūrėkite {NUM_SITES} svetainę, kuri išsiuntė daug pranešimų}few{Peržiūrėkite {NUM_SITES} svetaines, kurios išsiuntė daug pranešimų}many{Peržiūrėkite {NUM_SITES} svetainės, kurios išsiuntė daug pranešimų}other{Peržiūrėkite {NUM_SITES} svetainių, kurios išsiuntė daug pranešimų}}</translation> +<translation id="7884446017008693258">Viešosios interneto prieigos taško nustatymai</translation> <translation id="788453346724465748">Įkeliama paskyros informacija...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{elementą}one{# elementą}few{# elementus}many{# elemento}other{# elementų}}</translation> <translation id="7886605625338676841">„eSIM“ kortelė</translation> @@ -7595,6 +7617,7 @@ <translation id="7952904276017482715">ID turėjo būti <ph name="EXPECTED_ID" />, o buvo pateiktas <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Įvestys</translation> <translation id="7953955868932471628">Valdyti sparčiuosius klavišus</translation> +<translation id="7955105108888461311">Paklausti asmeniškai</translation> <translation id="7955177647836564772">Jei „Smart Lock“ įjungta ir telefonas atrakintas, slaptažodžio ar PIN kodo įvesti nereikia</translation> <translation id="7956373551960864128">Išsaugoti spausdintuvai</translation> <translation id="7957074856830851026">Žr. įrenginio informaciją, pvz., jo serijos numerį ar ištekliaus ID</translation> @@ -7733,6 +7756,7 @@ <ph name="BEGIN_PARAGRAPH3" />Šią paslaugą galite išjungti skiltyje „Nustatymai“.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Skirtukai</translation> <translation id="8076835018653442223">Administratorius išjungė prieigą prie vietinių failų įrenginyje</translation> +<translation id="8077120325605624147">Bet kokia svetainė, kurioje lankotės, gali rodyti jums bet kokį skelbimą</translation> <translation id="80798452873915119">Svetainėse gali būti prašoma tvarkyti langus visuose ekranuose</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Jūsų seansą valdo <ph name="MANAGER_NAME" />. Administratoriai gali ištrinti jūsų profilį ir stebėti tinklo srautą.</translation> @@ -8245,6 +8269,7 @@ <translation id="8557180006508471423">Įjunkite „Google Chrome“, nuėję į „Location Services“ „Mac“ kompiuteryje</translation> <translation id="8557856025359704738">Kitas atsisiuntimas: <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Slaptažodžiai</translation> +<translation id="8559961053328923750">„Chrome“ riboja bendrą duomenų, kuriuos svetainės gali bendrinti naršyklėje, kad būtų galima įvertinti skelbimų našumą, kiekį</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Atidaryti viską &naujame lange}=1{Atidaryti &naujame lange}one{Atidaryti viską ({COUNT}) &naujame lange}few{Atidaryti viską ({COUNT}) &naujame lange}many{Atidaryti viską ({COUNT}) &naujame lange}other{Atidaryti viską ({COUNT}) &naujame lange}}</translation> <translation id="8561206103590473338">Dramblys</translation> <translation id="8561565784790166472">Būkite atsargūs</translation> @@ -8387,6 +8412,7 @@ <translation id="8678933587484842200">Kaip norite paleisti šią programą?</translation> <translation id="8680251145628383637">Prisijunkite, kad žymes, istoriją, slaptažodžius ir kitus nustatymus galėtumėte naudoti visuose įrenginiuose. Be to, būsite automatiškai prijungti prie „Google“ paslaugų.</translation> <translation id="8681614230122836773">„Chrome“ kompiuteryje rado žalingos programinės įrangos</translation> +<translation id="8681886425883659911">Skelbimai blokuojami svetainėse, kuriose rodomi nepageidaujami arba klaidinantys skelbimai</translation> <translation id="8682730193597992579">„<ph name="PRINTER_NAME" />“ prijungtas ir parengtas naudoti</translation> <translation id="8687103160920393343">Atšaukti <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Galima</translation> @@ -8760,6 +8786,7 @@ <translation id="9021662811137657072">Aptiktas virusas</translation> <translation id="902236149563113779">Paprastai svetainėse stebima fotoaparato padėtis naudojant AR funkcijas, pvz., žaidžiant žaidimus ar gaunant įspėjimų nuorodas</translation> <translation id="9022847679183471841">Ši paskyra jau naudojama šiame kompiuteryje (<ph name="AVATAR_NAME" />).</translation> +<translation id="9022871169049522985">Svetainės ir reklamuotojai gali vertinti skelbimų našumą</translation> <translation id="9023015617655685412">Žymėti šį skirtuką...</translation> <translation id="9023909777842748145">Išjungus šią funkciją vis tiek galima siųsti įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.</translation> <translation id="9024127637873500333">&Atidaryti naujo skirtuko lape</translation> @@ -8890,6 +8917,7 @@ <translation id="9128335130883257666">Atidaryti nustatymų puslapį, skirtą <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Prisijungti prie tinklo</translation> <translation id="9130015405878219958">Įvestas neteisingas režimas.</translation> +<translation id="9131209053278896908">Čia rodomos užblokuotos svetainės</translation> <translation id="9131487537093447019">Siųsti pranešimus į „Bluetooth“ įrenginius ir gauti pranešimus iš jų.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{Viena žymė}one{# žymė}few{# žymės}many{# žymės}other{# žymių}}</translation> <translation id="9134066738478820307">Svetainėse gali būti naudojami identifikatoriai apsaugotam turiniui leisti</translation> @@ -8943,6 +8971,7 @@ <translation id="9180281769944411366">Šis procesas gali užtrukti kelias minutes. Paleidžiamas „Linux“ sudėtinis rodinys.</translation> <translation id="9180380851667544951">Svetainė gali bendrinti jūsų ekrano vaizdą</translation> <translation id="9182556968660520230">Neleisti svetainėms leisti apsaugoto turinio</translation> +<translation id="9183331776983279456">„Chrome“ automatiškai ištrina senesnes nei keturių savaičių svetaines. Jei dar kartą apsilankysite svetainėje, ji gali vėl atsirasti sąraše. Taip pat galite užblokuoti svetainę, kad ji negalėtų siūlyti skelbimų.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Programa}one{# programa}few{# programos}many{# programos}other{# programų}}</translation> <translation id="9186963452600581158">Prisijungti naudojant vaiko „Google“ paskyrą</translation> <translation id="9187967020623675250">Klavišai neatitinka. Paspauskite bet kurį klavišą, kad atliktumėte veiksmą „<ph name="RESPONSE" />“.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index e868e736..6aecbc75 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Atvērt sākotnējo &attēlu jaunā cilnē</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina vienas nedēļas laikā}zero{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_WEEKS} nedēļu laikā}one{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_WEEKS} nedēļas laikā}other{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_WEEKS} nedēļu laikā}}</translation> <translation id="1056898198331236512">Brīdinājums</translation> +<translation id="1056980582064308040">Ja iestatījumi tiks mainīti, tīklājs tiks restartēts. Tiks pārtraukts savienojums ar ierīcēm, kurās tīklājs tiek izmantots.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Ievadiet jauno PIN kodu. PIN kodā var būt burti, cipari un citas rakstzīmes, un tajā ir jābūt vismaz vienai rakstzīmei.}zero{Ievadiet jauno PIN kodu. PIN kodā ir jābūt ietvertām vismaz # rakstzīmēm. Tajā var būt burti, cipari un citas rakstzīmes.}one{Ievadiet jauno PIN kodu. PIN kodā ir jābūt ietvertai vismaz # rakstzīmei. Tajā var būt burti, cipari un citas rakstzīmes.}other{Ievadiet jauno PIN kodu. PIN kodā ir jābūt ietvertām vismaz # rakstzīmēm. Tajā var būt burti, cipari un citas rakstzīmes.}}</translation> <translation id="1059484610606223931">Hiperteksta transporta protokols (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">Apturēt</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Atbalstīto saišu<ph name="END_LINK" /> atvēršana</translation> <translation id="1272978324304772054">Šis lietotāja konts nepieder domēnam, kurā ierīce ir reģistrēta. Ja vēlaties ierīci reģistrēt citā domēnā, vispirms ir jāveic ierīces atkopšana.</translation> +<translation id="1273937721055267968">Bloķēt vietni <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Sīkfaili un citi vietņu dati</translation> <translation id="1275718070701477396">Atlasīta</translation> <translation id="1276994519141842946">Nevarēja instalēt lietotni <ph name="APP_NAME" />.</translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">Lai iespējotu ADB atkļūdošanu, ir nepieciešama šīs <ph name="DEVICE_TYPE" /> ierīces restartēšana. Lai to atspējotu, jāveic rūpnīcas iestatījumu atiestatīšana.</translation> <translation id="1327527584824210101">Izmantojiet piekļuves atslēgu</translation> <translation id="1327794256477341646">Funkcijas, kurām nepieciešama piekļuve atrašanās vietas datiem, nedarbosies</translation> +<translation id="1329466763986822896">Uzlabojiet šī tīklāja konfidencialitāti</translation> <translation id="1331977651797684645">Tas biju es.</translation> <translation id="1333489022424033687">Noteiktas funkcijas vietnē <ph name="ORIGIN" />, iespējams, nedarbosies, kamēr nenotīrīsiet datus, ko citas vietnes ir saglabājušas jūsu ierīcē.</translation> <translation id="1333965224356556482">Neļaut vietnēm piekļūt jūsu atrašanās vietas informācijai</translation> @@ -595,6 +598,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Jūsu inkognito režīma logs netiks atkārtoti atvērts.}zero{# jūsu inkognito režīma logi netiks atkārtoti atvērti.}one{# jūsu inkognito režīma logs netiks atkārtoti atvērts.}other{# jūsu inkognito režīma logi netiks atkārtoti atvērti.}}</translation> <translation id="1546280085599573572">Šis paplašinājums mainīja iestatījumu, kura lapa tiek parādīta, noklikšķinot uz pogas Sākums.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> vēlas instalēt paplašinājumu <ph name="EXTENSION_TYPE" />, kas varēs veikt tālāk norādītās darbības.</translation> +<translation id="1547123415014299762">Trešo pušu sīkfaili ir atļauti</translation> <translation id="1547808936554660006">Es saprotu, ka, izmantojot funkciju Powerwash, instalētie eSIM profili netiks noņemti</translation> <translation id="1547936895218027488">Noklikšķiniet uz sānu paneļa ikonas, lai paneli atvērtu.</translation> <translation id="1549275686094429035">ARC iespējots</translation> @@ -768,6 +772,7 @@ <translation id="168715261339224929">Lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs, ieslēdziet sinhronizāciju.</translation> <translation id="1688867105868176567">Vai notīrīt vietnes datus?</translation> <translation id="1688935057616748272">Ierakstiet kādu burtu.</translation> +<translation id="1689333818294560261">Apzīmējums</translation> <translation id="168991973552362966">Tuvumā esoša printera pievienošana</translation> <translation id="1689945336726856614">Kopēt &URL</translation> <translation id="1692115862433274081">Izmantot citu kontu</translation> @@ -1398,6 +1403,7 @@ <translation id="2247870315273396641">Balss priekšskatījums</translation> <translation id="2249111429176737533">Atvērt kā logu ar cilnēm</translation> <translation id="2249605167705922988">piem., 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Varat pielāgot informāciju, kas vietnēs tiek izmantota reklāmu rādīšanai</translation> <translation id="2251218783371366160">Atvēršana, izmantojot sistēmas skatītāju</translation> <translation id="225163402930830576">Atsvaidzināt tīklus</translation> <translation id="2251809247798634662">Jauns inkognito režīma logs</translation> @@ -1512,7 +1518,6 @@ <translation id="2329597144923131178">Pierakstieties, lai grāmatzīmes, vēsture, paroles u.c. būtu pieejamas visās jūsu ierīcēs.</translation> <translation id="2332115969598251205">Nevar ielādēt kontā <ph name="PRIMARY_EMAIL" /> saglabātās ierīces. Pārbaudiet interneta savienojumu un mēģiniet vēlreiz.</translation> <translation id="2332131598580221120">Skatīt veikalā</translation> -<translation id="2332192922827071008">Atvērt preferences</translation> <translation id="2332515770639153015">Droša pārlūkošana ar papildu aizsardzību ir ieslēgta</translation> <translation id="2332742915001411729">Atiestatīt noklusējuma iestatījumus</translation> <translation id="2332948465534020594">Režīms “Netraucēt” ir iespējots</translation> @@ -1846,6 +1851,7 @@ <translation id="2640299212685523844">Izmantot GTK</translation> <translation id="264083724974021997">Savienošana ar savu tālruni — dialoglodziņš</translation> <translation id="2642111877055905627">Futbolbumba</translation> +<translation id="2643064289437760082">Reklāmu izvērtēšanas datus jebkurā laikā varat dzēst, dzēšot pārlūkošanas datus</translation> <translation id="2643698698624765890">Pārvaldiet savus paplašinājumus, izvēlnē Logs noklikšķinot uz Paplašinājumi.</translation> <translation id="2645047101481282803">Jūsu ierīci pārvalda <ph name="PROFILE_NAME" />.</translation> <translation id="2645435784669275700">Chrome OS</translation> @@ -2305,6 +2311,7 @@ <translation id="3036327949511794916">Šīs <ph name="DEVICE_TYPE" /> ierīces atdošanas termiņš ir pagājis.</translation> <translation id="3036546437875325427">Iespējot Flash</translation> <translation id="3037754279345160234">Nevar parsēt domēna pievienošanas konfigurāciju. Lūdzu, sazinieties ar administratoru.</translation> +<translation id="3038272154009688107">Skatīt visas vietnes</translation> <translation id="3038612606416062604">Printera manuāla pievienošana</translation> <translation id="3039491566278747710">Neizdevās ierīcē instalēt bezsaistes politiku.</translation> <translation id="3043016484125065343">Lai skatītu savas grāmatzīmes, pierakstieties</translation> @@ -2541,6 +2548,7 @@ <translation id="3289668031376215426">Automātisks lielo burtu lietojums</translation> <translation id="3289856944988573801">Lai pārbaudītu, vai ir pieejami atjauninājumi, lūdzu, izmantojiet tīklu Ethernet vai Wi-Fi.</translation> <translation id="3290249595466894471">Lai palīdzētu atklāt jaunus draudus, tiek nosūtīti arī nelieli datu paraugi, kas ietver lapas, lejupielādes, paplašinājumu aktivitāti un sistēmas informāciju.</translation> +<translation id="3293181007446299124">Pārlūkošanas vēsture tiek privāti glabāta jūsu ierīcē, un pārskati tiek nosūtīti ar kavēšanos, lai aizsargātu jūsu identitāti</translation> <translation id="3293644607209440645">Sūtīt šo lapu</translation> <translation id="32939749466444286">Linux konteiners netika startēts. Lūdzu, mēģiniet vēlreiz.</translation> <translation id="3294437725009624529">Viesis</translation> @@ -3321,6 +3329,7 @@ <translation id="3984431586879874039">Vai atļaut šai vietnei skatīt jūsu drošības atslēgu?</translation> <translation id="398477389655464998">Kopēt saiti uz atzīmēto tekstu</translation> <translation id="3984862166739904574">Definīcija no funkcijas Ātrās atbildes</translation> +<translation id="3985022125189960801">Varat atkārtoti pievienot vietni, ja vēlaties to atkal iekļaut to vietņu grupā, kurām atļaujat prognozēt jūsu intereses</translation> <translation id="3987544746655539083">Arī turpmāk liegt šai vietnei piekļūt jūsu atrašanās vietas datiem</translation> <translation id="3987938432087324095">Diemžēl nav saprotams.</translation> <translation id="3987993985790029246">Saites kopēšana</translation> @@ -3698,6 +3707,7 @@ <translation id="4366138410738374926">Drukāšana ir sākta</translation> <translation id="4367513928820380646">Pārskatiet noņemtās atļaujas</translation> <translation id="4369215744064167350">Tīmekļa vietnes pieprasījums apstiprināts</translation> +<translation id="4369735607080757018">Noteiktu datu veidi (piemēram, diennakts daļa, kad reklāma tika jums rādīta) tiek kopīgoti starp vietnēm, lai izvērtētu tajās rādīto reklāmu veiktspēju</translation> <translation id="4370975561335139969">Ievadītā e-pasta adrese un parole neatbilst.</translation> <translation id="4374831787438678295">Linux instalēšanas programma</translation> <translation id="4375035964737468845">Atvērt lejupielādētos failus</translation> @@ -3718,6 +3728,7 @@ <translation id="4385146930797718821">Ekrānuzņēmums ir kopēts starpliktuvē</translation> <translation id="4385905942116811558">Notiek Bluetooth un USB ierīču meklēšana…</translation> <translation id="4387890294700445764">Uzlauztas paroles</translation> +<translation id="4388650384344483842">Izmantojiet vismaz 8 rakstzīmes.</translation> <translation id="4389091756366370506">Lietotājs <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> un vēl <ph name="NUMBER_OF_OTHER_SWITCHES" /> slēdža taustiņi</translation> <translation id="439266289085815679">Bluetooth konfigurāciju kontrolē <ph name="USER_EMAIL" />.</translation> @@ -4039,6 +4050,7 @@ <translation id="4666472247053585787">Tālruņa paziņojumu skatīšana otrā ierīcē (<ph name="DEVICE_TYPE" />)</translation> <translation id="4666911709726371538">Citas lietotnes</translation> <translation id="4667027203988048332">Izmantotie dati</translation> +<translation id="4668279686271488041">Reklāmu izvērtēšanas dati tiek regulāri dzēsti no jūsu ierīces</translation> <translation id="4672759829555593783">Atvērt failu “<ph name="FILE_NAME" />” tūlīt</translation> <translation id="46733273239502219">Tiks notīrīti arī bezsaistē esošie dati instalētajās lietotnēs</translation> <translation id="4673442866648850031">Skārienekrāna pildspalvas rīki tiek atvērti, kad skārienekrāna pildspalva ir noņemta.</translation> @@ -4232,6 +4244,7 @@ <translation id="485480310608090163">Citi iestatījumi un atļaujas</translation> <translation id="4858913220355269194">Futbolbumba</translation> <translation id="4862642413395066333">OCSP atbilžu parakstīšana</translation> +<translation id="4863702650881330715">Paplašināt saderību</translation> <translation id="4863769717153320198">Noteiktā izšķirtspēja: <ph name="WIDTH" /> x <ph name="HEIGHT" /> (noklusējuma)</translation> <translation id="4864805589453749318">Atlasiet vienu no vecākiem, kurš piešķir atļauju pievienot mācību iestādes kontu.</translation> <translation id="486635084936119914">Automātiski atvērt noteikta veida failus pēc to lejupielādes</translation> @@ -4280,7 +4293,6 @@ <translation id="4893336867552636863">Veicot šo darbību, no šīs ierīces tiks neatgriezeniski izdzēsti jūsu pārlūkošanas dati.</translation> <translation id="4893454800196085005">Laba — DVD</translation> <translation id="4893522937062257019">Bloķēšanas ekrānā</translation> -<translation id="4897496410259333978">Lai iegūtu plašāku informāciju, sazinieties ar administratoru.</translation> <translation id="4898011734382862273">Sertifikāts “<ph name="CERTIFICATE_NAME" />” norāda sertifikāta izdevējiestādi.</translation> <translation id="4899052647152077033">Krāsu invertēšana</translation> <translation id="4899696330053002588">Ietver reklāmas</translation> @@ -4478,6 +4490,7 @@ <translation id="5094721898978802975">Sazināties ar iebūvētām lietojumprogrammām, kas sadarbojas</translation> <translation id="5097002363526479830">Neizdevās izveidot savienojumu ar tīklu <ph name="NAME" />: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Uzzināt vairāk par atrašanās vietas izmantošanu</translation> +<translation id="5097349930204431044">Jūsu apmeklētās vietnes var izsecināt, kas jums patīk, un ieteikt reklāmas, kamēr turpināt pārlūkošanu</translation> <translation id="5097649414558628673">Rīks: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automātiska noklikšķināšana, kad kursors apstājas</translation> <translation id="5101683448725092498">Satura dublēšana</translation> @@ -4660,6 +4673,7 @@ <translation id="5275352920323889391">Suns</translation> <translation id="527605719918376753">Izslēgt cilnes skaņu</translation> <translation id="527605982717517565">Vienmēr atļaut izmantot JavaScript vietnē <ph name="HOST" /></translation> +<translation id="5276357196618041410">Konfigurāciju var saglabāt tikai pēc pieteikšanās</translation> <translation id="5277127016695466621">Rādīt sānu paneli</translation> <translation id="5278823018825269962">Statusa ID</translation> <translation id="5279600392753459966">Bloķēt visu</translation> @@ -5811,7 +5825,6 @@ <translation id="6347010704471250799">Rādīt paziņojumu</translation> <translation id="6349101878882523185">Instalēt <ph name="APP_NAME" /> lietotni</translation> <translation id="6354918092619878358">SECG eliptiskā līkne secp256r1 (jeb ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Šis ir eksperimentāls (alfa kvalitātes) pārlūks! Dažu funkciju nav vai tās nav pabeigtas. Ziņojiet par problēmām šeit: Palīdzība > Ziņot par problēmu…</translation> <translation id="635609604405270300">Neizslēdziet ierīci</translation> <translation id="63566973648609420">Jūsu šifrētos datus var lasīt tikai personas, kurām ir zināma jūsu ieejas frāze. Ieejas frāze netiek sūtīta Google serveriem un netiek tajos glabāta. Ja aizmirsīsiet ieejas frāzi vai vēlēsieties mainīt šo iestatījumu, jums būs <ph name="BEGIN_LINK" />jāatiestata sinhronizācija<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" /> vai <ph name="APP_NAME_2" />.</translation> @@ -6155,6 +6168,7 @@ <translation id="6670767097276846646">Daži paplašinājumi pārlūkprogrammai Chrome var pievienot meklētājprogrammas</translation> <translation id="6671320560732140690">{COUNT,plural, =1{adrese}zero{# adrešu}one{# adrese}other{# adreses}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" /> pārvaldības iespēju iestatīšana</translation> +<translation id="6672917148207387131">Pievienot vietni <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Lai sāktu sinhronizāciju, ievadiet savu ieejas frāzi</translation> <translation id="6675665718701918026">Rādītājierīce ir pievienota.</translation> @@ -6238,6 +6252,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Inkognito režīms)</translation> <translation id="6756157672127672536">Izmantojot lietotni Faili, varat ērti piekļūt failiem, kas saglabāti Google diskā, ārējā atmiņā vai Chrome OS ierīcē.</translation> <translation id="6756643207511618722">Runas programmas</translation> +<translation id="6757431299485455321">Varat palīdzēt citām ierīcēm atrast šo tīklāju.</translation> <translation id="6758056191028427665">Sniedziet atsauksmes par pakalpojuma darbību.</translation> <translation id="6759193508432371551">Rūpnīcas datu atiestatīšana</translation> <translation id="6761431452438552910">Jūsu Bluetooth ierīcē ir jābūt aktivizētam režīmam savienošanai pārī, un tai ir jāatrodas tuvumā. Veiciet savienošanu pārī tikai ar uzticamām ierīcēm.</translation> @@ -6337,6 +6352,7 @@ <translation id="6833479554815567477">Cilne tika noņemta no grupas “<ph name="GROUP_NAME" />” — <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Pāreja uz viedu un drošu pārlūku</translation> <translation id="6833996806551876956">Privacy Sandbox izmēģinājuma periods</translation> +<translation id="6835712061486505758">Izveidojiet Wi-Fi tīklāju, lai nodrošinātu interneta savienojumu citām ierīcēm. <ph name="BEGIN_LINK_LEARN_MORE" />Uzzināt vairāk<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Lai atjauninātu savu <ph name="DEVICE_TYPE" /> ierīci, lūdzu, izveidojiet savienojumu ar internetu.</translation> <translation id="6839225236531462745">Sertifikāta dzēšanas kļūda</translation> <translation id="6839916869147598086">Pierakstīšanās ir mainīta</translation> @@ -6498,6 +6514,7 @@ <translation id="697508444536771064">Izslēgt Linux</translation> <translation id="6975361011348772931">Pieprasīta lasīšana un mainīšana</translation> <translation id="6978121630131642226">Meklētāji</translation> +<translation id="6978717888677691380">Jūsu bloķētās vietnes</translation> <translation id="6979041727349121225">Enerģijas taupīšana</translation> <translation id="6979044105893951891">Palaist un iziet no pārvaldītajām viesu sesijām</translation> <translation id="6979440798594660689">Izslēgt skaņu (noklusējums)</translation> @@ -6589,6 +6606,7 @@ <translation id="7047059339731138197">Izvēlieties fonu</translation> <translation id="7048457618657122233">Kopīgot saiti uz: <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Vai paturēt failu?</translation> +<translation id="7050037487872780845">Nederīga tīklāja konfigurācija</translation> <translation id="7052237160939977163">Sūtīt veiktspējas izsekošanas datus</translation> <translation id="7053983685419859001">Bloķēt</translation> <translation id="7055152154916055070">Novirzīšana ir bloķēta:</translation> @@ -6793,6 +6811,7 @@ <translation id="7258192266780953209">Pārveidošana</translation> <translation id="7258225044283673131">Šī lietojumprogramma nereaģē. Lai aizvērtu lietotni, atlasiet vienumu “Aizvērt piespiedu kārtā”.</translation> <translation id="7260186537988033909">Kioska un digitālā ceļrāža ierīces reģistrācija pabeigta</translation> +<translation id="7260367682327802201">Android ierīcē var būt līdzīgs iestatījums. Ja pārlūkā Chrome un jūsu Android ierīcē ir ieslēgta reklāmu izvērtēšana, uzņēmumi var izvērtēt reklāmas efektivitāti jūsu apmeklētajās vietnēs un izmantotajās lietotnēs.</translation> <translation id="7262004276116528033">Šo pierakstīšanās pakalpojumu nodrošina <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Vienai vietnei ir atsauktas atļaujas}zero{{NUM_SITES} vietnēm ir atsauktas atļaujas}one{{NUM_SITES} vietnei ir atsauktas atļaujas}other{{NUM_SITES} vietnēm ir atsauktas atļaujas}}</translation> <translation id="7264695323040866038">Vai vienmēr izmantot lietotni <ph name="APP" />, lai atvērtu atbalstītās tīmekļa saites?</translation> @@ -6936,6 +6955,7 @@ <translation id="7406912950279255498">Krāsu inversijas režīms</translation> <translation id="7407430846095439694">Importēt un saistīt</translation> <translation id="7407504355934009739">Vairums cilvēku bloķē visus paziņojumus no šīs vietnes</translation> +<translation id="7408080603962564527">Tas būs redzams citiem lietotājiem</translation> <translation id="740810853557944681">Drukas servera pievienošana</translation> <translation id="7409549334477097887">Īpaši augsts</translation> <translation id="7409599290172516453">Jaunākie fotoattēli</translation> @@ -6974,7 +6994,6 @@ <translation id="7434757724413878233">Peles darbības paātrinājums</translation> <translation id="7434969625063495310">Nevarēja pievienot drukas serveri. Lūdzu, pārbaudiet servera konfigurāciju un mēģiniet vēlreiz.</translation> <translation id="7436921188514130341">Diemžēl pārdēvēšanas laikā radās kļūda.</translation> -<translation id="7438495332316988804">Lai atrastu standarta pārlūku, palaidējā ierakstiet “Chrome”.</translation> <translation id="7439519621174723623">Lai turpinātu, pievienojiet ierīces nosaukumu</translation> <translation id="7441736921018636843">Lai mainītu šo iestatījumu, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />, lai noņemtu sinhronizācijas ieejas frāzi.</translation> <translation id="7441830548568730290">Citi lietotāji</translation> @@ -7251,6 +7270,7 @@ <translation id="7684718995427157417">Lai veidotu un testētu lietotnes, iespējojiet Android atkļūdošanas tiltu (ADB). Ņemiet vērā, ka šī darbība ļauj instalēt Android lietotnes, ko uzņēmums Google nav verificējis, un rīka atspējošanai ir nepieciešams atjaunot rūpnīcas iestatījumus.</translation> <translation id="7685049629764448582">JavaScript atmiņa</translation> <translation id="7685087414635069102">Jāievada PIN</translation> +<translation id="7686086654630106285">Vairāk par vietnēs ieteiktajām reklāmām</translation> <translation id="7686581688229391955">Atlasiet, lai atļautu paplašinājumus šajā vietnē</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Apstipriniet jauno paroli</translation> @@ -7272,6 +7292,7 @@ <translation id="7704317875155739195">Automātiski pabeigt meklēšanas vaicājumus un vietrāžus URL</translation> <translation id="7704521324619958564">Atvērt Play veikalu</translation> <translation id="7705276765467986571">Nevarēja ielādēt grāmatzīmju modeli.</translation> +<translation id="7705334495398865155">Iestatiet nejauša aparatūras ID (BSSID) izveidi, lai liegtu citiem lietotājiem izsekot šo ierīci.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Šīs vietnes piekļuve kustību sensoriem ir bloķēta.</translation> <translation id="7707922173985738739">Izmantot mobilos datus</translation> @@ -7464,6 +7485,7 @@ <translation id="7881483672146086348">Skatīt kontu</translation> <translation id="7883792253546618164">Varat jebkurā brīdī anulēt abonementu.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Pārskatiet vienu vietni, no kuras tika nosūtīts daudz paziņojumu}zero{Pārskatiet {NUM_SITES} vietnes, no kurām tika nosūtīts daudz paziņojumu}one{Pārskatiet {NUM_SITES} vietni, no kurām tika nosūtīts daudz paziņojumu}other{Pārskatiet {NUM_SITES} vietnes, no kurām tika nosūtīts daudz paziņojumu}}</translation> +<translation id="7884446017008693258">Tīklāja iestatījumi</translation> <translation id="788453346724465748">Notiek konta informācijas ielāde…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{vienums}zero{# vienumu}one{# vienums}other{# vienumi}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7551,6 +7573,7 @@ <translation id="7952904276017482715">Paredzētais ID bija <ph name="EXPECTED_ID" />, bet faktiskais ID bija <ph name="NEW_ID" />.</translation> <translation id="7953669802889559161">Ievades metodes</translation> <translation id="7953955868932471628">Pārvaldīt saīsnes</translation> +<translation id="7955105108888461311">Jautāt personiski</translation> <translation id="7955177647836564772">Ja ir ieslēgta funkcija Smart Lock un tālrunis ir atbloķēts, nav jāievada parole vai PIN</translation> <translation id="7956373551960864128">Jūsu saglabātie printeri</translation> <translation id="7957074856830851026">Skatīt informāciju par ierīci, piemēram, sērijas numuru vai īpašuma ID</translation> @@ -7689,6 +7712,7 @@ <ph name="BEGIN_PARAGRAPH3" />Šo pakalpojumu varat izslēgt sadaļā Iestatījumi.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Cilnes</translation> <translation id="8076835018653442223">Administrators ir atspējojis piekļuvi lokālajiem failiem jūsu ierīcē.</translation> +<translation id="8077120325605624147">Jebkurā jūsu apmeklētā vietnē var tikt rādītas jebkādas reklāmas</translation> <translation id="80798452873915119">Vietnes var pieprasīt atļauju pārvaldīt logus visos jūsu displejos</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Jūsu sesiju pārvalda <ph name="MANAGER_NAME" />. Administratori var dzēst jūsu profilu un pārraudzīt jūsu tīkla datplūsmu.</translation> @@ -8201,6 +8225,7 @@ <translation id="8557180006508471423">Mac datora sadaļā Location Services (Atrašanās vietu pakalpojumi) ieslēdziet opciju “Google Chrome”</translation> <translation id="8557856025359704738">Nākamās lejupielādes datums: <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Piekļuves atslēgas</translation> +<translation id="8559961053328923750">Pārlūkā Chrome tiek ierobežots kopējais to datu apjoms, ko vietnes pārlūkā var kopīgot reklāmu veiktspējas izvērtēšanai</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Atvērt visas &jaunā logā}=1{Atvērt &jaunā logā}zero{Atvērt visas ({COUNT}) &jaunā logā}one{Atvērt visas ({COUNT}) &jaunā logā}other{Atvērt visas ({COUNT}) &jaunā logā}}</translation> <translation id="8561206103590473338">Zilonis</translation> <translation id="8561565784790166472">Esiet uzmanīgs!</translation> @@ -8342,6 +8367,7 @@ <translation id="8678933587484842200">Kā vēlaties palaist šo lietojumprogrammu?</translation> <translation id="8680251145628383637">Pierakstieties, lai lietotu savas grāmatzīmes, vēsturi, paroles un citus iestatījumus visās savās ierīcēs. Turklāt jūs tiksiet automātiski pierakstīts savos Google pakalpojumos.</translation> <translation id="8681614230122836773">Chrome atrada jūsu datorā kaitīgu programmatūru</translation> +<translation id="8681886425883659911">Reklāmas tiek bloķētas vietnēs, kurās ir konstatēta traucējošu vai maldinošu reklāmu rādīšana</translation> <translation id="8682730193597992579">Printeris <ph name="PRINTER_NAME" /> ir pievienots un gatavs darbam</translation> <translation id="8687103160920393343">Atcelt lejupielādi: <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Pieejams</translation> @@ -8714,6 +8740,7 @@ <translation id="9021662811137657072">Tika konstatēts vīruss.</translation> <translation id="902236149563113779">Parasti vietnēs kameras pozīcija tiek izsekota, lai nodrošinātu PR funkcijas, piemēram, spēles vai brīdinājuma attēlojumus.</translation> <translation id="9022847679183471841">Šis konts šajā datorā jau tiek izmantots profilā <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">Vietnes un reklāmdevēji var izvērtēt savu reklāmu veiktspēju</translation> <translation id="9023015617655685412">Saglabāt cilni kā grāmatzīmi...</translation> <translation id="9023909777842748145">Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.</translation> <translation id="9024127637873500333">&Atvērt jaunā cilnē</translation> @@ -8843,6 +8870,7 @@ <translation id="9128335130883257666">Atvērt ievades metodes “<ph name="INPUT_METHOD_NAME" />” iestatījumu lapu</translation> <translation id="9128870381267983090">Izveidot savienojumu ar tīklu</translation> <translation id="9130015405878219958">Ievadīts nederīgs režīms.</translation> +<translation id="9131209053278896908">Šeit ir redzamas bloķētās vietnes</translation> <translation id="9131487537093447019">Sūtīt ziņojumus uz Bluetooth ierīcēm un saņemt ziņojumus no tām.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{Viena grāmatzīme}zero{# grāmatzīmes}one{# grāmatzīme}other{# grāmatzīmes}}</translation> <translation id="9134066738478820307">Atļaut vietnēm izmantot identifikatorus, lai atskaņotu aizsargātu saturu</translation> @@ -8896,6 +8924,7 @@ <translation id="9180281769944411366">Šis process var ilgt dažas minūtes. Notiek Linux konteinera startēšana.</translation> <translation id="9180380851667544951">Vietne var kopīgot jūsu ekrānu.</translation> <translation id="9182556968660520230">Neļaut vietnēs atskaņot aizsargātu saturu</translation> +<translation id="9183331776983279456">Pārlūkā Chrome tiek automātiski dzēstas vietnes, kas tajā ir glabātas ilgāk par četrām nedēļām. Ja kādu vietni apmeklējat atkārtoti, tā var atkal tikt iekļauta sarakstā. Varat arī liegt vietnei ieteikt jums reklāmas.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Lietotne}zero{# lietotņu}one{# lietotne}other{# lietotnes}}</translation> <translation id="9186963452600581158">Pierakstīties bērna Google kontā</translation> <translation id="9187967020623675250">Taustiņi neatbilst. Nospiediet jebkuru taustiņu, lai veiktu darbību <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index ee3d3e51..c0b2f58e 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Страницава не реагира</translation> <translation id="1041263367839475438">Достапни уреди</translation> <translation id="1042174272890264476">Вашиот компјутер е со вградена <ph name="SHORT_PRODUCT_NAME" /> RLZ библиотека. RLZ доделува неуникатна, не-лична идентификувачка картичка за мерење на пребарувањата и користење на <ph name="SHORT_PRODUCT_NAME" /> поттикнато од одредена промотивна кампања. Овие ознаки понекогаш се појавуваат во прашалници за пребарување на Google во <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">Поврзете се на мобилен интернет за да користите точка на пристап. <ph name="BEGIN_LINK_LEARN_MORE" />Дознајте повеќе<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Нешто тргна наопаку. Linux можеби е само делумно надграден. Прегледајте ги дневниците со евиденција за повеќе информации. Дневниците со евиденција се зачувани во „Датотеки > Мои датотеки > <ph name="LOG_FILE" />“</translation> <translation id="104419033123549300">Стил на распоред на копчиња</translation> <translation id="104710386808485638">Да се рестартира Linux?</translation> @@ -159,6 +160,7 @@ <translation id="1139923033416533844">Употреба на меморијата</translation> <translation id="1140351953533677694">Пристапете до сериските уреди и уредите со Bluetooth</translation> <translation id="114036956334641753">Аудио и титлови</translation> +<translation id="1141949282671776404">Додека картичкава беше неактивна, „Штедачот на батерија“ ослободи <ph name="MEMORY_VALUE" /> меморија за други задачи.</translation> <translation id="1142002900084379065">Неодамнешни фотографии</translation> <translation id="1143142264369994168">Потписник на сертификат</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome не најде штетен софтвер на вашиот компјутер • Проверено пред 1 минута}one{Chrome не најде штетен софтвер на вашиот компјутер • Проверено пред {NUM_MINS} минута}other{Chrome не најде штетен софтвер на вашиот компјутер • Проверено пред {NUM_MINS} минути}}</translation> @@ -320,6 +322,7 @@ <translation id="1285320974508926690">Никогаш не преведувај ја оваа локација</translation> <translation id="1285484354230578868">Складирајте податоци на вашата сметка на Google Диск</translation> <translation id="1285625592773741684">Моменталната поставка за користење интернет е „Мобилен интернет“</translation> +<translation id="1285815028662278915">Вашиот мобилен интернет можеби не поддржува точка на пристап. <ph name="BEGIN_LINK_LEARN_MORE" />Дознајте повеќе<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Ноќното светло ќе се вклучи автоматски на зајдисонце</translation> <translation id="1288300545283011870">Својства на говорот</translation> <translation id="1289619947962767206">Опцијава веќе не се поддржува. Користете <ph name="GOOGLE_MEET" /> за презентација на картичка.</translation> @@ -660,6 +663,7 @@ <translation id="1596286373007273895">Достапно</translation> <translation id="1596709061955594992">Bluetooth е исклучено. За да видите достапни уреди, вклучете Bluetooth.</translation> <translation id="1596780725094407793">- вклучува поддомени</translation> +<translation id="1598163867407640634">Користете <ph name="SITE_ETLD_PLUS_ONE" /> со <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Ажурирањата се оневозможени од администраторот.</translation> <translation id="1600857548979126453">Пристапете кон задниот дел на отстранувачот на грешки на страница</translation> <translation id="1601560923496285236">Примени</translation> @@ -775,6 +779,7 @@ <translation id="168715261339224929">За да ги добиете обележувачите на сите уреди, вклучете ја синхронизацијата.</translation> <translation id="1688867105868176567">Дали да се исчистат сите податоци?</translation> <translation id="1688935057616748272">Напишете буква</translation> +<translation id="1689333818294560261">Прекар</translation> <translation id="168991973552362966">Додај печатач во близина</translation> <translation id="1689945336726856614">Копирај &URL</translation> <translation id="1692115862433274081">Користете друга сметка</translation> @@ -1247,6 +1252,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Напомена:<ph name="END_BOLD" /> системот ќе се рестартира во текот на процесот.</translation> <translation id="2095774564753225041">Поддржани типови датотеки</translation> +<translation id="2097616539631531348">Додека картичкава беше неактивна, „Штедачот на батерија“ ослободи меморија за други задачи.</translation> <translation id="2098805196501063469">Проверете ги преостанатите лозинки</translation> <translation id="2099686503067610784">Да се избрише сертификатот на серверот „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="2100273922101894616">Автоматско најавување</translation> @@ -1533,7 +1539,6 @@ <translation id="2329597144923131178">Најавете се за да ги добиете обележувачите, историјата, лозинките и другите поставки на сите ваши уреди.</translation> <translation id="2332115969598251205">Не може да се вчитаат уредите зачувани на <ph name="PRIMARY_EMAIL" />. Проверете ја интернет-врската и обидете се повторно.</translation> <translation id="2332131598580221120">Прикажи во продавница</translation> -<translation id="2332192922827071008">Отвори ги „Поставките“</translation> <translation id="2332515770639153015">„Подобреното безбедно прелистување“ е вклучено</translation> <translation id="2332742915001411729">Ресетирај на стандардна вредност</translation> <translation id="2332948465534020594">„Не вознемирувај“ е овозможено</translation> @@ -1809,6 +1814,7 @@ <translation id="2579596474754516455">Скенирајте PDF-слики за да конвертирате текст за читачот на екран кога е потребно</translation> <translation id="2580889980133367162">Секогаш дозволи <ph name="HOST" /> да презема повеќе датотеки</translation> <translation id="258095186877893873">Долго</translation> +<translation id="2581455244799175627">Повеќе за дозволување колачиња од трети страни</translation> <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Платформа <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation> <translation id="2584109212074498965">Не може да се преземе билетот на Kerberos. Обидете се повторно или контактирајте со администраторот на уредот во вашата организација. (Код за грешка <ph name="ERROR_CODE" />).</translation> <translation id="2585724835339714757">Картичкава го споделува вашиот екран.</translation> @@ -2375,6 +2381,7 @@ <translation id="3082780749197361769">Картичкава го користи фотоапаратот или микрофонот.</translation> <translation id="3083193146044397360">Привремено блокирано за да се заштити вашата безбедност</translation> <translation id="3083899879156272923">Движи го екранот, а глувчето нека остане во центарот на екранот</translation> +<translation id="3083998949001524405">Дозволено да користи колачиња од трети страни</translation> <translation id="3084548735795614657">Испушти за да се инсталира</translation> <translation id="3084771660770137092">Chrome остана без меморија или процесот за веб-страницата беше прекинат поради друга причина. За да продолжите, повторно вчитајте ја оваа или одете на друга страница.</translation> <translation id="3085412380278336437">Сајтот може да ја користи камерата</translation> @@ -3081,6 +3088,7 @@ <translation id="3764753550716962406">Да се дозволи Google да ја користи вашата кошничка за да наоѓа достапни попусти?</translation> <translation id="3764974059056958214">{COUNT,plural, =1{Се испраќа <ph name="ATTACHMENTS" /> до <ph name="DEVICE_NAME" />…}one{Се испраќа <ph name="ATTACHMENTS" /> до <ph name="DEVICE_NAME" />…}other{Се испраќаат <ph name="ATTACHMENTS" /> до <ph name="DEVICE_NAME" />…}}</translation> <translation id="3765246971671567135">Не може да се вчита правилото за офлајн демо-режим.</translation> +<translation id="3765696567014520261">Сајтовите не може да користат колачиња за да ја гледаат вашата активност од прелистувањето на различни сајтови, на пример, за персонализирање реклами. Функциите на некои сајтови може да не функционираат</translation> <translation id="3766687283066842296">Дознајте повеќе за Phone Hub</translation> <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation> <translation id="377050016711188788">Сладолед</translation> @@ -3133,6 +3141,7 @@ <translation id="3807747707162121253">&Откажи</translation> <translation id="3808202562160426447">Затемнете ги заднинските содржини</translation> <translation id="3808443763115411087">Развој на апликации на Android за Crostini</translation> +<translation id="3808617121485025547">Повеќе за блокирање колачиња од трети страни</translation> <translation id="38089336910894858">Прикажувај предупредување пред напуштање со ⌘Q</translation> <translation id="3809272675881623365">Зајак</translation> <translation id="3809280248639369696">Вонземјанин</translation> @@ -3402,6 +3411,7 @@ <translation id="4040041015953651705">Јазик од кој треба да се преведе</translation> <translation id="4040105702484676956">Да се избришат податоците и дозволите од сајтот за <ph name="SITE_NAME" /> и неговите инсталирани апликации?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Излези од страницата}one{Излези од страниците}other{Излези од страниците}}</translation> +<translation id="4042941173059740150">Продолжете на <ph name="SITE_ETLD_PLUS_ONE" /> со <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Големина на курсорот</translation> <translation id="4044612648082411741">Внесете ја лозинката за сертификатот</translation> <translation id="4044708573046946214">Лозинка за заклучување екран</translation> @@ -4318,7 +4328,6 @@ <translation id="4893336867552636863">Ова трајно ќе ги избрише податоците од прелистувањето на овој уред.</translation> <translation id="4893454800196085005">Добро - DVD</translation> <translation id="4893522937062257019">На заклучен екран</translation> -<translation id="4897496410259333978">За повеќе информации, контактирајте со администраторот.</translation> <translation id="4898011734382862273">Сертификатот „<ph name="CERTIFICATE_NAME" />“ претставува Орган за сертификати</translation> <translation id="4899052647152077033">Инверзија на бои</translation> <translation id="4899696330053002588">Содржи реклами</translation> @@ -5859,7 +5868,6 @@ <translation id="6347010704471250799">Прикажувај известувања</translation> <translation id="6349101878882523185">Инсталирај <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG елиптична крива secp256r1 (наречена ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Експериментален прелистувач (со алфа квалитет)! Некои функции недостасуваат или се нецелосни. Пријавете ги проблемите преку: „Помош > Пријавете проблем…“.</translation> <translation id="635609604405270300">Чувајте го уредот вклучен</translation> <translation id="63566973648609420">Само лицата што ја знаат вашата лозинка може да ги прочитаат шифрираните податоци. Лозинката не се испраќа до Google ниту пак се складира. Ако ја заборавите, ќе треба да ја <ph name="BEGIN_LINK" />ресетирате синхронизацијата<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Некои поддржани линкови сѐ уште ќе се отвораат во <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation> @@ -7029,7 +7037,6 @@ <translation id="7434757724413878233">Забрзување на глувчето</translation> <translation id="7434969625063495310">Не може да се додаде серверот за печатење. Проверете ја конфигурацијата на серверот и обидете се повторно.</translation> <translation id="7436921188514130341">Да му се сневиди! Настана грешка за време на форматирањето.</translation> -<translation id="7438495332316988804">За да го најдете стандардниот прелистувач, напишете „Chrome“ во „Стартерот“.</translation> <translation id="7439519621174723623">Додајте име на уредот за да продолжите</translation> <translation id="7441736921018636843">За да ја измените поставкава, <ph name="BEGIN_LINK" />ресетирајте ја синхронизацијата<ph name="END_LINK" /> и отстранете ја лозинката за синхронизација</translation> <translation id="7441830548568730290">Други корисници</translation> @@ -7611,6 +7618,7 @@ <translation id="7952904276017482715">Очекуван ID „<ph name="EXPECTED_ID" />“, но ID е „<ph name="NEW_ID" />“</translation> <translation id="7953669802889559161">Методи за внесување</translation> <translation id="7953955868932471628">Управувај со кратенките</translation> +<translation id="7955105108888461311">Побарај лично</translation> <translation id="7955177647836564772">Ако е вклучена Smart Lock, а вашиот телефон е отклучен, тогаш нема потреба да внесувате лозинка или PIN</translation> <translation id="7956373551960864128">Вашите зачувани печатачи</translation> <translation id="7957074856830851026">Прегледување податоци за уредот, како што е неговиот сериски број и ID на средство</translation> @@ -8114,6 +8122,7 @@ <translation id="8405046151008197676">Дознајте ги најдобрите карактеристики од најновото ажурирање</translation> <translation id="8407199357649073301">Ниво на евиденција:</translation> <translation id="8408270600235826886">Може да контролирате кои податоци да се споделуваат со Google. Ова може да го промените во секое време во „Поставки“. Податоците ќе се користат во согласност со <ph name="BEGIN_LINK" />Политиката за приватност<ph name="END_LINK" /> на Google.</translation> +<translation id="84098433273647700">Темата што ви е инсталирана.</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8412136526970428322">Дозволени: <ph name="PERMISSION" /> и уште <ph name="COUNT" /></translation> <translation id="8413385045638830869">Прашај прво (препорачано)</translation> @@ -8276,6 +8285,7 @@ <translation id="8571687764447439720">Додајте билет на Kerberos</translation> <translation id="8574990355410201600">Секогаш дозволувај звук на <ph name="HOST" /></translation> <translation id="8575286410928791436">Задржете <ph name="KEY_EQUIVALENT" /> за напуштање</translation> +<translation id="8576359558126669548">Повеќе за блокирање колачиња од трети страни во режим „Инкогнито“</translation> <translation id="8576885347118332789">{NUM_TABS,plural, =1{Додај ја картичката во списокот за читање}one{Додај ги картичките во списокот за читање}other{Додај ги картичките во списокот за читање}}</translation> <translation id="8577052309681449949">Автоматски кликнувања, големина на курсор, боја на курсор и друго</translation> <translation id="8578639784464423491">Не може да се надминат 99 букви</translation> @@ -8396,6 +8406,7 @@ <translation id="8674903726754070732">За жал, вашиот компјутер е конфигуриран со неправилно формиран ID на хардвер. Ова го спречува Chrome OS да се ажурира со најновите безбедносни поправки и вашиот компјутер <ph name="BEGIN_BOLD" />може да е подложен на напади од злонамерен софтвер<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Инсталаторот не може да најде важечка дестинација за инсталирање на <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Видео}one{# видео}other{# видеа}}</translation> +<translation id="8676276370198826499">Регистрирајте се на <ph name="SITE_ETLD_PLUS_ONE" /> со <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Благодариме за испратените повратни информации.</translation> <translation id="8676374126336081632">Јасно внесување</translation> <translation id="8676770494376880701">Поврзан е полнач со ниско напојување</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 0b12f01..8f5035d 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">ഒറിജിനൽ ചിത്രം പുതിയ ടാബിൽ തുറക്കുക</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{ഒരാഴ്ചയ്ക്കുള്ളിൽ <ph name="DEVICE_TYPE" /> അപ്ഡേറ്റ് ചെയ്യുക}other{{NUM_WEEKS} ആഴ്ചയ്ക്കുള്ളിൽ <ph name="DEVICE_TYPE" /> അപ്ഡേറ്റ് ചെയ്യുക}}</translation> <translation id="1056898198331236512">മുന്നറിയിപ്പ്</translation> +<translation id="1056980582064308040">ക്രമീകരണം മാറ്റിയാൽ ഹോട്ട്സ്പോട്ട് റീസ്റ്റാർട്ട് ആകും. ഹോട്ട്സ്പോട്ട് ഉപയോഗിക്കുന്ന ഉപകരണങ്ങളിലെ കണക്ഷൻ വിച്ഛേദിക്കും.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{നിങ്ങളുടെ പുതിയ പിൻ നൽകുക. കുറഞ്ഞത് ഒരു പ്രതീകമെങ്കിലും ദൈർഘ്യമുള്ളതായിരിക്കണം പിൻ, ഇതിൽ അക്ഷരങ്ങളും അക്കങ്ങളും മറ്റ് പ്രതീകങ്ങളും ഉൾപ്പെടാം.}other{നിങ്ങളുടെ പുതിയ പിൻ നൽകുക. കുറഞ്ഞത് # പ്രതീകങ്ങളെങ്കിലും ദൈർഘ്യമുള്ളതായിരിക്കണം പിൻ, ഇതിൽ അക്ഷരങ്ങളും അക്കങ്ങളും മറ്റ് പ്രതീകങ്ങളും ഉൾപ്പെടാം.}}</translation> <translation id="1059484610606223931">ഹൈപ്പർടെക്സ്റ്റ് ട്രാൻസ്പോർട്ട് പ്രോട്ടോക്കോൾ (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">നിര്ത്തുക</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />പിന്തുണാ ലിങ്കുകൾ<ph name="END_LINK" /> തുറക്കുന്നു</translation> <translation id="1272978324304772054">ഈ ഉപയോക്തൃ അക്കൗണ്ട്, ഉപകരണം ചേർത്തിരിക്കുന്ന ഡൊമെയ്നിന്റെ ഭാഗമല്ല. നിങ്ങൾക്ക് മറ്റൊരു ഡൊമെയ്ൻ ചേർക്കണമെങ്കിൽ, ആദ്യം ഉപകരണം വീണ്ടെടുക്കുന്നതിലേക്ക് പോകേണ്ടതുണ്ട്.</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="1274997165432133392">കുക്കികളും മറ്റ് സൈറ്റ് ഡാറ്റയും</translation> <translation id="1275718070701477396">തിരഞ്ഞെടുത്തു</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> അൺഇൻസ്റ്റാൾ ചെയ്യാനായില്ല.</translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">ADB ഡീബഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കാൻ, ഈ <ph name="DEVICE_TYPE" /> റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്. അത് പ്രവർത്തനരഹിതമാക്കാൻ, ഫാക്ടറി ക്രമീകരണത്തിലേക്ക് റീസെറ്റ് ചെയ്യേണ്ടതുണ്ട്.</translation> <translation id="1327527584824210101">നിങ്ങളുടെ പാസ്കീ ഉപയോഗിക്കുക</translation> <translation id="1327794256477341646">നിങ്ങളുടെ ലൊക്കേഷൻ ആവശ്യമുള്ള ഫീച്ചറുകൾ പ്രവർത്തിക്കില്ല</translation> +<translation id="1329466763986822896">ഈ ഹോട്ട്സ്പോട്ടിന്റെ സ്വകാര്യത മെച്ചപ്പെടുത്തുക</translation> <translation id="1331977651797684645">ഇത് എന്റെ പ്രൊഫൈലായിരുന്നു.</translation> <translation id="1333489022424033687">മറ്റ് സൈറ്റുകൾ നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റ മായ്ക്കുന്നത് വരെ <ph name="ORIGIN" /> എന്നതിലെ ചില ഫീച്ചറുകൾ പ്രവർത്തിച്ചേക്കില്ല.</translation> <translation id="1333965224356556482">നിങ്ങളുടെ ലൊക്കേഷൻ കാണാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> @@ -592,6 +595,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{നിങ്ങളുടെ അദൃശ്യ വിൻഡോ വീണ്ടും തുറക്കില്ല.}other{നിങ്ങളുടെ # അദൃശ്യ വിൻഡോകൾ വീണ്ടും തുറക്കില്ല.}}</translation> <translation id="1546280085599573572">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation> <translation id="1546452108651444655">ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യാനാവുന്ന <ph name="EXTENSION_TYPE" /> ഇൻസ്റ്റാൾ ചെയ്യാൻ <ph name="CHILD_NAME" /> താൽപ്പര്യപ്പെടുന്നു:</translation> +<translation id="1547123415014299762">മൂന്നാം-കക്ഷി കുക്കികൾ അനുവദനീയമാണ്</translation> <translation id="1547808936554660006">Powerwash ചെയ്യുന്നത് ഇൻസ്റ്റാൾ ചെയ്ത ഇ-സിം പ്രൊഫൈലുകൾ നീക്കം ചെയ്യില്ലെന്ന് ഞാൻ മനസ്സിലാക്കുന്നു</translation> <translation id="1547936895218027488">സൈഡ് പാനൽ തുറക്കാൻ അതിന്റെ ഐക്കണിൽ ക്ലിക്ക് ചെയ്യുക</translation> <translation id="1549275686094429035">ARC പ്രവർത്തനക്ഷമമാക്കി</translation> @@ -765,6 +769,7 @@ <translation id="168715261339224929">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ ലഭിക്കാൻ, 'സമന്വയം' ഓണാക്കുക.</translation> <translation id="1688867105868176567">സൈറ്റ് ഡാറ്റ മായ്ക്കണോ?</translation> <translation id="1688935057616748272">ഒരു അക്ഷരം ടൈപ്പ് ചെയ്യുക</translation> +<translation id="1689333818294560261">വിളിപ്പേര്</translation> <translation id="168991973552362966">സമീപത്തുള്ള ഒരു പ്രിന്റർ ചേർക്കുക</translation> <translation id="1689945336726856614">&URL പകർത്തുക</translation> <translation id="1692115862433274081">മറ്റൊരു അക്കൗണ്ട് ഉപയോഗിക്കുക</translation> @@ -1395,6 +1400,7 @@ <translation id="2247870315273396641">ശബ്ദ പ്രിവ്യു</translation> <translation id="2249111429176737533">ടാബ് ചെയ്ത വിന്ഡോ ആയി തുറക്കുക</translation> <translation id="2249605167705922988">ഉദാ. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">നിങ്ങളെ പരസ്യം കാണിക്കുന്നതിനായി സൈറ്റുകൾ ഉപയോഗിക്കുന്ന വിവരങ്ങൾ ഇഷ്ടാനുസൃതമാക്കുക</translation> <translation id="2251218783371366160">സിസ്റ്റം വ്യൂവർ ഉപയോഗിച്ച് തുറക്കുക</translation> <translation id="225163402930830576">നെറ്റ്വർക്കുകൾ റീഫ്രഷ് ചെയ്യുക</translation> <translation id="2251809247798634662">പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ</translation> @@ -1509,7 +1515,6 @@ <translation id="2329597144923131178">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്മാർക്കുകളും ചരിത്രവും മറ്റ് ക്രമീകരണവും ലഭിക്കാൻ സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> -ൽ സംരക്ഷിച്ച ഉപകരണങ്ങൾ ലോഡ് ചെയ്യാനാകുന്നില്ല. നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിച്ച ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="2332131598580221120">സ്റ്റോറിൽ കാണുക</translation> -<translation id="2332192922827071008">മുൻഗണനകൾ തുറക്കുക</translation> <translation id="2332515770639153015">മെച്ചപ്പെടുത്തിയ സുരക്ഷിത ബ്രൗസിംഗ് ഓണാണ്</translation> <translation id="2332742915001411729">ഡിഫോൾട്ടിലേക്ക് റീസെറ്റ് ചെയ്യുക</translation> <translation id="2332948465534020594">'ശല്യപ്പെടുത്തരുത്' പ്രവർത്തനക്ഷമമാക്കി</translation> @@ -1843,6 +1848,7 @@ <translation id="2640299212685523844">GTK ഉപയോഗിക്കുക</translation> <translation id="264083724974021997">നിങ്ങളുടെ ഫോണിലേക്ക് കണക്റ്റ് ചെയ്യുക - ഡയലോഗ്</translation> <translation id="2642111877055905627">സോക്കർ ബോൾ</translation> +<translation id="2643064289437760082">ബ്രൗസിംഗ് ഡാറ്റ ഇല്ലാതാക്കുന്നതിലൂടെ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും ആഡ് മെഷർമെന്റ് ഡാറ്റ ഇല്ലാതാക്കാം</translation> <translation id="2643698698624765890">വിൻഡോ മെനുവിലെ വിപുലീകരണങ്ങളിൽ ക്ലിക്ക് ചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ വിപുലീകരണങ്ങൾ നിയന്ത്രിക്കുക.</translation> <translation id="2645047101481282803">നിങ്ങളുടെ ഉപകരണം മാനേജ് ചെയ്യുന്നത് <ph name="PROFILE_NAME" /> ആണ്</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2302,6 +2308,7 @@ <translation id="3036327949511794916">ഈ <ph name="DEVICE_TYPE" /> തിരികെ നൽകാനുള്ള സമയപരിധി കഴിഞ്ഞു.</translation> <translation id="3036546437875325427">ഫ്ലാഷ് പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="3037754279345160234">ഡൊമെയ്നിൽ ചേരാനുള്ള കോൺഫിഗറേഷൻ വിശകലനം ചെയ്യാനാവില്ല. നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation> +<translation id="3038272154009688107">എല്ലാ സൈറ്റുകളും കാണുക</translation> <translation id="3038612606416062604">നേരിട്ട് ഒരു പ്രിന്റർ ചേർക്കുക</translation> <translation id="3039491566278747710">ഉപകരണത്തിൽ ഓഫ്ലൈൻ നയം ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല.</translation> <translation id="3043016484125065343">നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ കാണാൻ സൈൻ ഇൻ ചെയ്യുക</translation> @@ -2538,6 +2545,7 @@ <translation id="3289668031376215426">സ്വയമേവ വലിയക്ഷരമാക്കൽ</translation> <translation id="3289856944988573801">അപ്ഡേറ്റുകൾക്കായി പരിശോധിക്കാൻ, ഇതർനെറ്റ് അല്ലെങ്കിൽ Wi-Fi ഉപയോഗിക്കുക.</translation> <translation id="3290249595466894471">പുതിയ ഭീഷണികൾ കണ്ടെത്താൻ സഹായിക്കുന്നതിന് പേജുകൾ, ഡൗൺലോഡുകൾ, വിപുലീകരണ ആക്റ്റിവിറ്റി, സിസ്റ്റം വിവരങ്ങൾ എന്നിവയുടെ ഒരു ചെറിയ സാമ്പിളും അയയ്ക്കുന്നു</translation> +<translation id="3293181007446299124">നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം നിങ്ങളുടെ ഉപകരണത്തിൽ സ്വകാര്യമായി സൂക്ഷിക്കുകയും നിങ്ങളുടെ ഐഡന്റിറ്റി സംരക്ഷിക്കാനായി റിപ്പോർട്ടുകൾ വൈകി അയയ്ക്കുകയും ചെയ്യുന്നു.</translation> <translation id="3293644607209440645">ഈ പേജ് അയയ്ക്കുക</translation> <translation id="32939749466444286">Linux കണ്ടെയ്നർ ആരംഭിച്ചില്ല. വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3294437725009624529">അതിഥി</translation> @@ -3317,6 +3325,7 @@ <translation id="3984431586879874039">നിങ്ങളുടെ സുരക്ഷാ കീ കാണാൻ ഈ സൈറ്റിനെ അനുവദിക്കണോ?</translation> <translation id="398477389655464998">ഹൈലൈറ്റിലേക്കുള്ള ലിങ്ക് പകർത്തുക</translation> <translation id="3984862166739904574">വേഗത്തിലുള്ള ഉത്തരങ്ങളുടെ നിർവചനം</translation> +<translation id="3985022125189960801">നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തെന്ന് ഊഹിക്കാനാകുന്ന സൈറ്റുകളുടെ പൂളിൽ ഒരു സൈറ്റ് വേണമെന്ന് തോന്നുകയാണെങ്കിൽ ആ സൈറ്റ് വീണ്ടും ചേർക്കുക</translation> <translation id="3987544746655539083">നിങ്ങളുടെ ലൊക്കേഷൻ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്യുന്നത് തുടരുക</translation> <translation id="3987938432087324095">ക്ഷമിക്കണം, അത് മനസ്സിലായില്ല.</translation> <translation id="3987993985790029246">ലിങ്ക് പകർത്തുക</translation> @@ -3694,6 +3703,7 @@ <translation id="4366138410738374926">പ്രിന്റ് ചെയ്യൽ ആരംഭിച്ചു</translation> <translation id="4367513928820380646">നീക്കം ചെയ്ത അനുമതികൾ അവലോകനം ചെയ്യുക</translation> <translation id="4369215744064167350">വെബ്സൈറ്റ് അഭ്യർത്ഥന അംഗീകരിച്ചു</translation> +<translation id="4369735607080757018">സൈറ്റുകളുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കുന്നതിന്, നിങ്ങളെ ഒരു പരസ്യം കാണിച്ച സമയം പോലുള്ള പരിമിതമായ ഡാറ്റാ തരങ്ങൾ സൈറ്റുകൾ തമ്മിൽ പങ്കിടുന്നു</translation> <translation id="4370975561335139969">നിങ്ങൾ നൽകിയ ഇമെയിലും പാസ്വേഡും പൊരുത്തപ്പെടുന്നില്ല</translation> <translation id="4374831787438678295">Linux ഇൻസ്റ്റാളർ</translation> <translation id="4375035964737468845">ഡൗൺലോഡുചെയ്ത ഫയലുകൾ തുറക്കുക</translation> @@ -3714,6 +3724,7 @@ <translation id="4385146930797718821">സ്ക്രീൻഷോട്ട് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി</translation> <translation id="4385905942116811558">Bluetooth, USB ഉപകരണങ്ങൾ തിരയുന്നു</translation> <translation id="4387890294700445764">അപഹരിക്കപ്പെട്ട പാസ്വേഡുകൾ</translation> +<translation id="4388650384344483842">8 പ്രതീകങ്ങളെങ്കിലും ഉപയോഗിക്കുക</translation> <translation id="4389091756366370506">ഉപയോക്താവ്<ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> എന്നീ സ്വിച്ചുകളും മറ്റ് <ph name="NUMBER_OF_OTHER_SWITCHES" /> എണ്ണവും</translation> <translation id="439266289085815679">Bluetooth കോൺഫിഗറേഷൻ നിയന്ത്രിക്കുന്നത് <ph name="USER_EMAIL" /> ആണ്.</translation> @@ -4035,6 +4046,7 @@ <translation id="4666472247053585787">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിൽ നിങ്ങളുടെ ഫോണിൽ നിന്നുള്ള അറിയിപ്പുകൾ കാണുക</translation> <translation id="4666911709726371538">കൂടുതൽ ആപ്പുകൾ</translation> <translation id="4667027203988048332">എന്തൊക്കെ ഡാറ്റ ഉപയോഗിക്കുന്നു:</translation> +<translation id="4668279686271488041">നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് ആഡ് മെഷർമെന്റ് ഡാറ്റ പതിവായി ഇല്ലാതാക്കുന്നു</translation> <translation id="4672759829555593783"><ph name="FILE_NAME" /> ഇപ്പോൾ തുറക്കുക</translation> <translation id="46733273239502219">ഇൻസ്റ്റാൾ ചെയ്ത ആപ്പുകളിലുള്ള ഓഫ്ലൈൻ ഡാറ്റയും മായ്ക്കും</translation> <translation id="4673442866648850031">സ്റ്റൈലസ് നീക്കംചെയ്യുമ്പോൾ സ്റ്റൈലസ് ടൂളുകൾ തുറക്കുക</translation> @@ -4228,6 +4240,7 @@ <translation id="485480310608090163">കൂടുതൽ ക്രമീകരണവും അനുമതികളും</translation> <translation id="4858913220355269194">ഫ്രിറ്റ്സ്</translation> <translation id="4862642413395066333">OCSP പ്രതികരണങ്ങള് സൈന് ചെയ്യുന്നു</translation> +<translation id="4863702650881330715">അനുയോജ്യത വിപുലീകരിക്കുക</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ഡിഫോൾട്ട്) പോലെ തോന്നുന്നു</translation> <translation id="4864805589453749318">സ്കൂൾ അക്കൗണ്ട് ചേർക്കാനുള്ള അനുമതി നൽകുന്ന രക്ഷിതാവിനെ തിരഞ്ഞെടുക്കുക.</translation> <translation id="486635084936119914">ചില ഫയൽ തരങ്ങളെ ഡൗൺലോഡ് ചെയ്ത ശേഷം സ്വയം തുറക്കുക</translation> @@ -4276,7 +4289,6 @@ <translation id="4893336867552636863">ഇത് ഈ ഉപകരണത്തിൽ നിന്നും നിങ്ങളുടെ ബ്രൗസിംഗ് ഡാറ്റയെ ശാശ്വതമായി ഇല്ലാതാക്കും.</translation> <translation id="4893454800196085005">നല്ലത് - DVD</translation> <translation id="4893522937062257019">ലോക്ക് സ്ക്രീനിൽ</translation> -<translation id="4897496410259333978">കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്മിനെ ബന്ധപ്പെടുക.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" സർട്ടിഫിക്കറ്റ് ഒരു സർട്ടിഫിക്കേഷൻ അതോറിറ്റിയെ പ്രതിനിധീകരിക്കുന്നു</translation> <translation id="4899052647152077033">നെഗറ്റീവ് ലുക്ക്</translation> <translation id="4899696330053002588">പരസ്യങ്ങൾ ഉണ്ട്</translation> @@ -4474,6 +4486,7 @@ <translation id="5094721898978802975">സഹകരിക്കുന്ന നേറ്റീവ് അപ്ലിക്കേഷനുകളുമായി ആശയവിനിമയം നടത്തുക</translation> <translation id="5097002363526479830">'<ph name="NAME" />' നെറ്റ്വര്ക്കിലേക്ക് ബന്ധിപ്പിക്കുന്നതിൽ പരാജയപ്പെട്ടു: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">ലൊക്കേഷൻ ഉപയോഗത്തെ കുറിച്ച് കൂടുതലറിയുക</translation> +<translation id="5097349930204431044">നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾക്ക് നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തെന്ന് നിർണ്ണയിക്കാനും ബ്രൗസ് ചെയ്യുന്നത് തുടരുന്നതിനിടെ പരസ്യങ്ങൾ നിർദ്ദേശിക്കാനുമാകും</translation> <translation id="5097649414558628673">ടൂൾ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">കഴ്സർ നിർത്തുമ്പോൾ സ്വയമേവ ക്ലിക്ക് ചെയ്യുക</translation> <translation id="5101683448725092498">നിങ്ങളുടെ ഫയലുകൾ ബാക്കപ്പ് ചെയ്യുക</translation> @@ -4656,6 +4669,7 @@ <translation id="5275352920323889391">നായ</translation> <translation id="527605719918376753">ടാബ് മ്യൂട്ട് ചെയ്യുക</translation> <translation id="527605982717517565"><ph name="HOST" /> ല് എപ്പോഴുംJavaScript അനുവദിക്കുക</translation> +<translation id="5276357196618041410">ആദ്യം ലോഗിൻ ചെയ്യാതെ കോൺഫിഗറേഷൻ സംരക്ഷിക്കാനാകില്ല</translation> <translation id="5277127016695466621">സൈഡ് പാനൽ കാണിക്കുക</translation> <translation id="5278823018825269962">സ്റ്റാറ്റസ് ഐഡി</translation> <translation id="5279600392753459966">എല്ലാം തടയുക</translation> @@ -5812,7 +5826,6 @@ <translation id="6347010704471250799">അറിയിപ്പ് കാണിക്കുക</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ഇൻസ്റ്റാൾ ചെയ്യുക</translation> <translation id="6354918092619878358">SECG എലിപ്റ്റിക് കർവ് secp256r1 (ANSI X9.62 prime256v1, NIST P-256 എന്നും അറിയപ്പെടുന്നു)</translation> -<translation id="6355789186038748882">പരീക്ഷണാടിസ്ഥാനത്തിലുള്ള (ആൽഫ-നിലവാരം) ബ്രൗസർ! ചില ഫീച്ചറുകൾ വിട്ടുപോയിരിക്കുന്നു അല്ലെങ്കിൽ അപൂർണ്ണമാണ്. ഇനിപ്പറയുന്ന രീതിയിൽ പ്രശ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യുക: സഹായം > "പ്രശ്നം റിപ്പോർട്ട് ചെയ്യുക...".</translation> <translation id="635609604405270300">ഉപകരണം ഓഫാക്കരുത്</translation> <translation id="63566973648609420">നിങ്ങളുടെ പാസ്ഫ്രെയ്സുള്ള ഒരാൾക്ക് മാത്രമേ എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ വായിക്കാനാവൂ. Google-ലേക്ക് പാസ്ഫ്രെയ്സ് അയയ്ക്കുകയോ Google അത് സൂക്ഷിക്കുകയോ ചെയ്യില്ല. പാസ്ഫ്രെയ്സ് മറന്നുപോയെങ്കിലോ ഈ ക്രമീകരണം മാറ്റണമെങ്കിലോ നിങ്ങൾ <ph name="BEGIN_LINK" />സമന്വയിപ്പിക്കൽ റീസെറ്റ് ചെയ്യേണ്ടതുണ്ട്<ph name="END_LINK" />.</translation> <translation id="6357305427698525450"><ph name="APP_NAME" />, <ph name="APP_NAME_2" /> എന്നിവയിൽ ചില പിന്തുണാ ലിങ്കുകൾ തുടർന്നും തുറക്കാനാകും.</translation> @@ -6152,6 +6165,7 @@ <translation id="6670767097276846646">ചില വിപുലീകരണങ്ങൾക്ക് Chrome-ലേക്ക് തിരയൽ യന്ത്രങ്ങൾ ചേർക്കാനാകും</translation> <translation id="6671320560732140690">{COUNT,plural, =1{ഒരു വിലാസം}other{# വിലാസങ്ങൾ}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" />-ന്റെ മാനേജ്മെന്റിന് സജ്ജീകരിക്കുന്നു</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ചേർക്കുക</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, നിങ്ങളുടെ പാസ്ഫ്രെയ്സ് നൽകുക</translation> <translation id="6675665718701918026">പോയിന്റ് ചെയ്യുന്ന ഉപകരണം കണക്റ്റ് ചെയ്തു</translation> @@ -6235,6 +6249,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (ആള്മാറാട്ടം)</translation> <translation id="6756157672127672536">Files ആപ്പ്, നിങ്ങൾ Google Drive-ലോ എക്സ്റ്റേണൽ സ്റ്റോറേജിലോ ChromeOS ഉപകരണത്തിലോ സംരക്ഷിച്ചിരിക്കുന്ന ഫയലുകളിലേക്ക് അതിവേഗ ആക്സസ് നൽകുന്നു.</translation> <translation id="6756643207511618722">സ്പീച്ച് എഞ്ചിനുകൾ</translation> +<translation id="6757431299485455321">ഈ ഹോട്ട്സ്പോട്ട് കണ്ടെത്താൻ മറ്റ് ഉപകരണങ്ങളെ സഹായിക്കുക.</translation> <translation id="6758056191028427665">ഞങ്ങളുടെ പ്രവർത്തനത്തെക്കുറിച്ചുള്ള അഭിപ്രായം അറിയിക്കൂ.</translation> <translation id="6759193508432371551">ഫാക്ടറി റീസെറ്റ് ചെയ്യൽ</translation> <translation id="6761431452438552910">നിങ്ങളുടെ Bluetooth ഉപകരണം ജോടിയാക്കൽ മോഡിലാണെന്നും സമീപത്തുണ്ടെന്നും ഉറപ്പാക്കുക. നിങ്ങൾക്ക് വിശ്വാസമുള്ള ഉപകരണങ്ങളുമായി മാത്രം ജോടിയാക്കുക.</translation> @@ -6334,6 +6349,7 @@ <translation id="6833479554815567477"><ph name="GROUP_NAME" /> ഗ്രൂപ്പിൽ നിന്ന് ടാബ് നീക്കം ചെയ്തു - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">സ്മാർട്ടും സുരക്ഷിതവുമായൊരു ബ്രൗസറിലേക്ക് മാറുക</translation> <translation id="6833996806551876956">സ്വകാര്യതാ സാൻഡ്ബോക്സ് ട്രയൽ</translation> +<translation id="6835712061486505758">മറ്റ് ഉപകരണങ്ങൾക്ക് ഇന്റർനെറ്റ് നൽകാൻ ഒരു വൈഫൈ ഹോട്ട്സ്പോട്ട് സൃഷ്ടിക്കുക. <ph name="BEGIN_LINK_LEARN_MORE" />കൂടുതലറിയുക<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> അപ്ഡേറ്റ് ചെയ്യാൻ ഇന്റർനെറ്റിൽ കണക്റ്റ് ചെയ്യുക.</translation> <translation id="6839225236531462745">സര്ട്ടിഫിക്കറ്റ് ഇല്ലാതാക്കല് പിശക്</translation> <translation id="6839916869147598086">സൈൻ ഇൻ മാറ്റി</translation> @@ -6495,6 +6511,7 @@ <translation id="697508444536771064">Linux ഷട്ട് ഡൗൺ ചെയ്യുക</translation> <translation id="6975361011348772931">വായിക്കാനും മാറ്റാനും അഭ്യർത്ഥിച്ചു</translation> <translation id="6978121630131642226">തിരയൽ യന്ത്രങ്ങൾ</translation> +<translation id="6978717888677691380">നിങ്ങൾ ബ്ലോക്ക് ചെയ്ത സൈറ്റുകൾ</translation> <translation id="6979041727349121225">എനർജി സേവർ</translation> <translation id="6979044105893951891">ആരംഭിക്കലും പുറത്തുകടക്കലും മാനേജ് ചെയ്ത അതിഥി സെഷനുകൾ</translation> <translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation> @@ -6586,6 +6603,7 @@ <translation id="7047059339731138197">ഒരു പശ്ചാത്തലം തിരഞ്ഞെടുക്കുക</translation> <translation id="7048457618657122233"><ph name="SHARE_TARGET" /> എന്നതിലേക്ക് ലിങ്ക് പങ്കിടുക</translation> <translation id="7049293980323620022">ഫയൽ സൂക്ഷിക്കണോ?</translation> +<translation id="7050037487872780845">ഹോട്ട്സ്പോട്ട് കോൺഫിഗറേഷൻ അസാധുവാണ്</translation> <translation id="7052237160939977163">പ്രകടന ട്രെയിസ് ഡാറ്റ അയയ്ക്കുക</translation> <translation id="7053983685419859001">തടയുക</translation> <translation id="7055152154916055070">റീഡയറക്റ്റ് ചെയ്യുന്നത് ബ്ലോക്ക് ചെയ്തു</translation> @@ -6790,6 +6808,7 @@ <translation id="7258192266780953209">പരിവർത്തനങ്ങൾ</translation> <translation id="7258225044283673131">ആപ്പ് പ്രതികരിക്കുന്നില്ല. ആപ്പ് അടയ്ക്കാൻ, "നിർബന്ധിതമായി അടയ്ക്കുക" തിരഞ്ഞെടുക്കുക.</translation> <translation id="7260186537988033909">കിയോസ്ക്, സൈനേജ് ഉപകരണ എൻറോൾമെന്റ് പൂർത്തിയായി</translation> +<translation id="7260367682327802201">നിങ്ങളുടെ Android ഉപകരണത്തിൽ സമാനമായ ക്രമീകരണം ഉണ്ടായിരിക്കാം. Chrome-ലും നിങ്ങളുടെ Android ഉപകരണത്തിലും ആഡ് മെഷർമെന്റ് ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകളിലും ഉപയോഗിക്കുന്ന ആപ്പുകളിലും ഉടനീളമുള്ള പരസ്യങ്ങൾ ഫലപ്രദമാണോ എന്ന് അളക്കാൻ ഒരു കമ്പനിക്ക് സാധിച്ചേക്കാം.</translation> <translation id="7262004276116528033">ഈ സൈൻ ഇൻ സേവനം ഹോസ്റ്റ് ചെയ്തിരിക്കുന്നത് <ph name="SAML_DOMAIN" /> ആണ്.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{ഒരു സൈറ്റിനുള്ള അനുമതികൾ നീക്കം ചെയ്തു}other{{NUM_SITES} സൈറ്റുകൾക്കുള്ള അനുമതികൾ നീക്കം ചെയ്തു}}</translation> <translation id="7264695323040866038">പിന്തുണയ്ക്കുന്ന വെബ് ലിങ്കുകൾ തുറക്കാൻ എല്ലായ്പ്പോഴും <ph name="APP" /> ആപ്പ് ഉപയോഗിക്കണോ?</translation> @@ -6933,6 +6952,7 @@ <translation id="7406912950279255498">നിറം വിപരീതമാക്കൽ മോഡ്</translation> <translation id="7407430846095439694">ഇമ്പോർട്ടുചെയ്ത് യോജിപ്പിക്കുക</translation> <translation id="7407504355934009739">മിക്കവരും ഈ സൈറ്റിൽ നിന്നുള്ള അറിയിപ്പുകൾ ബ്ലോക്ക് ചെയ്യുന്നു</translation> +<translation id="7408080603962564527">ഇത് മറ്റുള്ളവർക്ക് ദൃശ്യമാകും</translation> <translation id="740810853557944681">ഒരു പ്രിന്റ് സെർവർ ചേർക്കുക</translation> <translation id="7409549334477097887">വളരെ വലുത്</translation> <translation id="7409599290172516453">അടുത്തിടെയുള്ള ഫോട്ടോകൾ</translation> @@ -6971,7 +6991,6 @@ <translation id="7434757724413878233">മൗസ് ആക്സിലറേഷൻ</translation> <translation id="7434969625063495310">പ്രിന്റ് സെർവർ ചേർക്കാനായില്ല. സെർവറിന്റെ കോൺഫിഗറേഷൻ പരിശോധിച്ച ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7436921188514130341">ക്ഷമിക്കണം! പേരുമാറ്റുന്നതിനിടെ ഒരു പിശകുണ്ടായി.</translation> -<translation id="7438495332316988804">ലോഞ്ചറിൽ "Chrome" എന്ന് ടൈപ്പ് ചെയ്ത് സ്റ്റാൻഡേർഡ് ബ്രൗസർ കണ്ടെത്താനാകും.</translation> <translation id="7439519621174723623">തുടരുന്നതിന് ഒരു ഉപകരണ നാമം ചേർക്കുക</translation> <translation id="7441736921018636843">ഈ ക്രമീകരണം മാറ്റാന്, നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് നീക്കം ചെയ്യുന്നതിന് <ph name="BEGIN_LINK" />സമന്വയം പുനഃസജ്ജീകരിക്കുക<ph name="END_LINK" /></translation> <translation id="7441830548568730290">മറ്റ് ഉപയോക്താക്കൾ</translation> @@ -7248,6 +7267,7 @@ <translation id="7684718995427157417">ആപ്പുകൾ സൃഷ്ടിക്കാനും പരിശോധിക്കാനും, Android ഡീബഗ് ബ്രിഡ്ജ് (ADB) പ്രവർത്തനക്ഷമമാക്കുക. Google പരിശോധിച്ചുറപ്പിച്ചിട്ടില്ലാത്ത Android ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ ഈ പ്രവൃത്തി അനുവദിക്കുമെന്നതും ഇത് പ്രവർത്തനരഹിതമാക്കാൻ ഫാക്ടറി റീസെറ്റ് ചെയ്യേണ്ടി വരുമെന്നതും ശ്രദ്ധിക്കുക.</translation> <translation id="7685049629764448582">JavaScript മെമ്മറി</translation> <translation id="7685087414635069102">പിൻ ആവശ്യമാണ്</translation> +<translation id="7686086654630106285">സൈറ്റുകൾ നിർദ്ദേശിക്കുന്ന പരസ്യങ്ങളെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ</translation> <translation id="7686581688229391955">ഈ സൈറ്റിൽ വിപുലീകരണങ്ങൾ അനുവദിക്കാൻ തിരഞ്ഞെടുക്കുക</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">പുതിയ പാസ്വേഡ് സ്ഥിരീകരിക്കുക</translation> @@ -7269,6 +7289,7 @@ <translation id="7704317875155739195">സ്വമേധയാ പൂർത്തിയാക്കുന്ന തിരയലുകളും URL-കളും</translation> <translation id="7704521324619958564">Play Store തുറക്കുക</translation> <translation id="7705276765467986571">ബുക്ക്മാര്ക്ക് മോഡല് ലോഡ് ചെയ്യാന് കഴിഞ്ഞില്ല.</translation> +<translation id="7705334495398865155">ഈ ഉപകരണം മറ്റുള്ളവർ ട്രാക്ക് ചെയ്യുന്നത് തടയാൻ നിങ്ങളുടെ ഹാർഡ്വെയറിന്റെ ഐഡി (BSSID) ക്രമരഹിതമാക്കുക.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">ചലന സെൻസറുകൾ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു.</translation> <translation id="7707922173985738739">മൊബൈൽ ഡാറ്റ ഉപയോഗിക്കുക</translation> @@ -7462,6 +7483,7 @@ <translation id="7881483672146086348">അക്കൗണ്ട് കാണുക</translation> <translation id="7883792253546618164">ഏത് സമയത്തും വരിക്കാരല്ലാതാവുക.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{നിരവധി അറിയിപ്പുകൾ അയച്ച 1 സെെറ്റ് അവലോകനം ചെയ്യുക}other{നിരവധി അറിയിപ്പുകൾ അയച്ച {NUM_SITES} സെെറ്റുകൾ അവലോകനം ചെയ്യുക}}</translation> +<translation id="7884446017008693258">ഹോട്ട്സ്പോട്ട് ക്രമീകരണം</translation> <translation id="788453346724465748">അക്കൗണ്ട് വിവരങ്ങൾ ലോഡ് ചെയ്യുന്നു...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{ഒരു ഇനം}other{# ഇനങ്ങൾ}}</translation> <translation id="7886605625338676841">ഇ-സിം</translation> @@ -7549,6 +7571,7 @@ <translation id="7952904276017482715">പ്രതീക്ഷിച്ച ID "<ph name="EXPECTED_ID" />" ആണ്, എന്നാൽ ലഭിച്ച ID "<ph name="NEW_ID" />" ആയിരുന്നു</translation> <translation id="7953669802889559161">ഇൻപുട്ടുകൾ</translation> <translation id="7953955868932471628">കുറുക്കുവഴികൾ നിയന്ത്രിക്കുക</translation> +<translation id="7955105108888461311">നേരിട്ട് അഭ്യർത്ഥിക്കുക</translation> <translation id="7955177647836564772">Smart Lock ഓണാക്കിയിരിക്കുമ്പോൾ നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുകയാണെങ്കിൽ, പാസ്വേഡ് അല്ലെങ്കിൽ പിൻ നൽകേണ്ടതില്ല</translation> <translation id="7956373551960864128">നിങ്ങളുടെ സംരക്ഷിച്ച പ്രിന്ററുകൾ</translation> <translation id="7957074856830851026">സീരിയൽ നമ്പറോ അസറ്റ് ഐഡിയോ പോലുള്ള ഉപകരണ വിവരങ്ങൾ കാണുക</translation> @@ -7687,6 +7710,7 @@ <ph name="BEGIN_PARAGRAPH3" />നിങ്ങൾക്ക് ഈ സേവനം ക്രമീകരണത്തിൽ ഓഫാക്കാം.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">ടാബുകള്</translation> <translation id="8076835018653442223">അഡ്മിൻ, നിങ്ങളുടെ ഉപകരണത്തിലെ ലോക്കൽ ഫയലുകളിലേക്കുള്ള ആക്സസ് പ്രവർത്തനരഹിതമാക്കി</translation> +<translation id="8077120325605624147">നിങ്ങൾ സന്ദർശിക്കുന്ന ഏത് സൈറ്റിനും ഏത് പരസ്യവും നിങ്ങളെ കാണിക്കാനാകും</translation> <translation id="80798452873915119">സൈറ്റുകൾക്ക് നിങ്ങളുടെ എല്ലാ ഡിസ്പ്ലേകളിലും വിൻഡോകൾ മാനേജ് ചെയ്യാൻ ആവശ്യപ്പെടാം</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">നിങ്ങളുടെ സെഷൻ മാനേജ് ചെയ്യുന്നത് <ph name="MANAGER_NAME" /> ആണ്. നിങ്ങളുടെ പ്രൊഫൈൽ ഇല്ലാതാക്കാനും നെറ്റ്വർക്ക് ട്രാഫിക് നിരീക്ഷിക്കാനും അഡ്മിൻമാർക്ക് കഴിയും.</translation> @@ -8199,6 +8223,7 @@ <translation id="8557180006508471423">നിങ്ങളുടെ Mac-ലെ ലൊക്കേഷൻ സേവനങ്ങളിൽ "Google Chrome" ഓണാക്കുക</translation> <translation id="8557856025359704738"><ph name="NEXT_DATE_DOWNLOAD" />-നാണ് അടുത്ത ഡൗൺലോഡ്.</translation> <translation id="8559858985063901027">പാസ്കീകൾ</translation> +<translation id="8559961053328923750">പരസ്യത്തിന്റെ പ്രകടനം അളക്കുന്നതിനായി ബ്രൗസർ മുഖേന സൈറ്റുകൾക്ക് പങ്കിടാവുന്ന ഡാറ്റയുടെ അളവ് Chrome പരിമിതപ്പെടുത്തുന്നു</translation> <translation id="8560327176991673955">{COUNT,plural, =0{എല്ലാം &പുതിയ വിൻഡോയിൽ തുറക്കുക}=1{&പുതിയ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം ({COUNT}) &പുതിയ വിൻഡോയിൽ തുറക്കുക}}</translation> <translation id="8561206103590473338">ആന</translation> <translation id="8561565784790166472">ജാഗ്രതയോടെ തുടരുക</translation> @@ -8340,6 +8365,7 @@ <translation id="8678933587484842200">ഈ ആപ്പ് എങ്ങനെ ലോഞ്ച് ചെയ്യാനാണ് നിങ്ങൾ ആഗ്രഹിക്കുന്നത്?</translation> <translation id="8680251145628383637">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവ ലഭിക്കാൻ സൈൻ ഇൻ ചെയ്യുക. നിങ്ങളുടെ Google സേവനങ്ങളിലേക്ക് സ്വയമേവ നിങ്ങൾ സൈൻ ഇൻ ആകുന്നതുമാണ്.</translation> <translation id="8681614230122836773">Chrome നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ദോഷകരമായ സോഫ്റ്റ്വെയർ കണ്ടെത്തി</translation> +<translation id="8681886425883659911">തടസ്സമുണ്ടാക്കുന്നതോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങൾ കാണിക്കുന്ന സൈറ്റുകളിൽ പരസ്യങ്ങൾ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> കണക്റ്റ് ചെയ്ത് തയ്യാറാണ്</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> റദ്ദാക്കുക</translation> <translation id="8688672835843460752">ലഭ്യമാണ്</translation> @@ -8709,6 +8735,7 @@ <translation id="9021662811137657072">വൈറസ് കണ്ടെത്തി</translation> <translation id="902236149563113779">ഗെയിമുകളോ മുന്നറിയിപ്പ് നിർദ്ദേശങ്ങളോ പോലുള്ള AR ഫീച്ചറുകൾക്ക്, സൈറ്റുകൾ സാധാരണയായി നിങ്ങളുടെ ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യാറുണ്ട്</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" />, നിലവിൽ ഈ അക്കൗണ്ട് ഈ കമ്പ്യൂട്ടറിൽ ഉപയോഗിക്കുകയാണ്.</translation> +<translation id="9022871169049522985">സൈറ്റുകൾക്കും പരസ്യദാതാക്കൾക്കും അവരുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കാനാകും</translation> <translation id="9023015617655685412">ഈ ടാബ് ബുക്ക്മാർക്ക് ചെയ്യുക...</translation> <translation id="9023909777842748145">ഈ ഫീച്ചർ ഓഫാക്കുന്നത്, സിസ്റ്റം അപ്ഡേറ്റുകളും സുരക്ഷയും പോലുള്ള അത്യാവശ്യ സേവനങ്ങൾക്ക് വേണ്ട വിവരങ്ങൾ അയയ്ക്കുന്നതിനുള്ള ഉപകരണത്തിന്റെ കഴിവിനെ ബാധിക്കില്ല.</translation> <translation id="9024127637873500333">പുതിയ ടാബില് &തുറക്കുക</translation> @@ -8838,6 +8865,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" /> എന്നതിനുള്ള ക്രമീകരണ പേജ് തുറക്കുക</translation> <translation id="9128870381267983090">നെറ്റ്വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യുക</translation> <translation id="9130015405878219958">അസാധുവായ മോഡ് നല്കി.</translation> +<translation id="9131209053278896908">ബ്ലോക്ക് ചെയ്ത സൈറ്റുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="9131487537093447019">Bluetooth ഉപകരണങ്ങളിലേക്ക് സന്ദേശങ്ങൾ അയയ്ക്കുകയും സ്വീകരിക്കുകയും ചെയ്യുക.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 ബുക്ക്മാർക്ക്}other{# ബുക്ക്മാർക്കുകൾ}}</translation> <translation id="9134066738478820307">പരിരക്ഷിത ഉള്ളടക്കം പ്ലേ ചെയ്യുന്നതിന് സൈറ്റുകൾക്ക് ഐഡന്റിഫയറുകൾ ഉപയോഗിക്കാം</translation> @@ -8891,6 +8919,7 @@ <translation id="9180281769944411366">ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. Linux കണ്ടെയ്നർ പ്രവർത്തനം ആരംഭിക്കുന്നു.</translation> <translation id="9180380851667544951">സൈറ്റിന് നിങ്ങളുടെ സ്ക്രീൻ പങ്കിടാനാകും</translation> <translation id="9182556968660520230">പരിരക്ഷിത ഉള്ളടക്കം പ്ലേ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> +<translation id="9183331776983279456">4 ആഴ്ചയിലധികം പഴക്കമുള്ള സൈറ്റുകൾ Chrome സ്വയമേവ ഇല്ലാതാക്കുന്നു. നിങ്ങൾ വീണ്ടും സന്ദർശിക്കുന്ന ഒരു സൈറ്റ്, ലിസ്റ്റിൽ വീണ്ടും ദൃശ്യമായേക്കാം. അല്ലെങ്കിൽ പരസ്യങ്ങൾ നിർദ്ദേശിക്കുന്നതിൽ നിന്ന് ഒരു സൈറ്റിനെ ബ്ലോക്ക് ചെയ്യാം.</translation> <translation id="918352324374649435">{COUNT,plural, =1{ആപ്പ്}other{# ആപ്പുകൾ}}</translation> <translation id="9186963452600581158">കുട്ടിയുടെ Google അക്കൗണ്ട് ഉപയോഗിച്ച് സെെൻ ഇൻ ചെയ്യുക</translation> <translation id="9187967020623675250">കീകൾ പൊരുത്തപ്പെടുന്നില്ല. <ph name="RESPONSE" /> ചെയ്യാൻ ഏതെങ്കിലും കീ അമർത്തുക.</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 781d4b8..ac89c74 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -60,6 +60,7 @@ <translation id="1054153489933238809">Эх зургийг шинэ цонхонд нээх</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{<ph name="DEVICE_TYPE" />-г 1 долоо хоногийн дотор шинэчлэх}other{<ph name="DEVICE_TYPE" />-г {NUM_WEEKS} долоо хоногийн дотор шинэчлэх}}</translation> <translation id="1056898198331236512">Анхааруулга</translation> +<translation id="1056980582064308040">Тохиргоог өөрчлөх нь сүлжээний цэгийг дахин эхлүүлэх болно. Сүлжээний цэгийг ашиглаж байгаа төхөөрөмжүүдийг салгана.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Шинэ ПИН-ээ оруулна уу. ПИН хамгийн багадаа нэг тэмдэгттэй байх ёстой бөгөөд үсэг, тоо болон бусад тэмдэгтийг агуулж болно.}other{Шинэ ПИН-ээ оруулна уу. ПИН хамгийн багадаа # тэмдэгттэй байх ёстой бөгөөд үсэг, тоо болон бусад тэмдэгтийг агуулж болно.}}</translation> <translation id="1059484610606223931">Гипертекстийн Дамжуулалтын Протокол (HTTPS)</translation> @@ -307,6 +308,7 @@ <translation id="1272079795634619415">Зогс</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Дэмжсэн холбооснууд<ph name="END_LINK" />-ыг нээж байна</translation> <translation id="1272978324304772054">Энэ хэрэглэгчийн бүртгэл нь төхөөрөмжийн нэгдэн орсон домэйнд харьяалагдахгүй байна. Хэрэв та өөр домэйнд нэгдэн орох хүсэлтэй байгаа бол эхлээд төхөөрөмжөө сэргээх хэрэгтэй.</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" />-г блоклох</translation> <translation id="1274997165432133392">Cookies болон бусад цахим хуудсын мэдээлэл</translation> <translation id="1275718070701477396">Сонгогдсон</translation> <translation id="1276994519141842946"><ph name="APP_NAME" />-г суулгаж чадсангүй</translation> @@ -359,6 +361,7 @@ <translation id="1327495825214193325">ADB алдаа засахыг идэвхжүүлэхийн тулд энэ <ph name="DEVICE_TYPE" />-г дахин эхлүүлэх шаардлагатай. Үүнийг идэвхгүй болгоход үйлдвэрийн тохиргоонд шинэчлэх шаардлагатай.</translation> <translation id="1327527584824210101">Passkey-ээ ашиглана уу</translation> <translation id="1327794256477341646">Таны байршил шаардлагатай онцлогууд ажиллахгүй</translation> +<translation id="1329466763986822896">Энэ сүлжээний цэгийн нууцлалыг сайжруулна уу</translation> <translation id="1331977651797684645">Би байсан.</translation> <translation id="1333489022424033687">Таны төхөөрөмж дээр бусад сайтын хадгалсан өгөгдлийг та устгах хүртэл <ph name="ORIGIN" /> дээрх зарим онцлог ажиллахгүй байж болзошгүй</translation> <translation id="1333965224356556482">Сайтуудад таны байршлыг харахыг бүү зөвшөөр</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Таны нууцлалтай цонхыг дахин нээхгүй.}other{Таны # нууцлалтай цонхыг дахин нээхгүй.}}</translation> <translation id="1546280085599573572">Таныг Нүүрний товчлуурыг дарахад энэ өргөтгөл нь хуудасны үзүүлж буй зүйлийг өөрчилсөн.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> нь <ph name="EXTENSION_TYPE" /> өргөтгөлийг суулгахыг хүсэж байгаа бөгөөд энэ нь дараахыг хийх боломжтой:</translation> +<translation id="1547123415014299762">Гуравдагч талын күүкиг зөвшөөрдөг</translation> <translation id="1547808936554660006">Би суулгасан eSIM профайлуудыг Powerwash-р хасахгүйг ойлгож байна</translation> <translation id="1547936895218027488">Хажуугийн самбарыг нээхийн тулд дүрс тэмдгийг нь товшино уу</translation> <translation id="1549275686094429035">ARC-г идэвхжүүлсэн</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">Хавчуургаа бүх төхөөрөмждөө авах бол синкийг асаана уу.</translation> <translation id="1688867105868176567">Сайтын өгөгдлийг устгах уу?</translation> <translation id="1688935057616748272">Үсэг бичих</translation> +<translation id="1689333818294560261">Хоч</translation> <translation id="168991973552362966">Ойролцоох хэвлэгчийг нэмэх</translation> <translation id="1689945336726856614">Хуулах &URL</translation> <translation id="1692115862433274081">Өөр бүртгэл ашиглах</translation> @@ -1409,6 +1414,7 @@ <translation id="2247870315273396641">Дуу хоолойг урьдчилан үзэх</translation> <translation id="2249111429176737533">Табтай цонх хэлбэрээр нээх</translation> <translation id="2249605167705922988">жишээ нь, 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Танд зар харуулахын тулд сайтуудын ашигладаг мэдээллийг өөрчилнө үү</translation> <translation id="2251218783371366160">Системийн харагчаар нээх</translation> <translation id="225163402930830576">Сүлжээг дахин сэргээж ачаалах</translation> <translation id="2251809247798634662">Шинэ Нууцлалтай цонх</translation> @@ -1526,7 +1532,6 @@ <translation id="2329597144923131178">Өөрийн төхөөрөмж дээрх хавчуурга, түүх, бусад тохиргоог авахын тулд нэвтэрнэ үү.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />-д хадгалсан төхөөрөмжүүдийг ачаалах боломжгүй. Интернэт холболтоо шалгаад, дахин оролдоно уу.</translation> <translation id="2332131598580221120">Дэлгүүрт харах</translation> -<translation id="2332192922827071008">Тохиргоог нээх</translation> <translation id="2332515770639153015">Сайжруулсан аюулгүй хөтөч асаалттай байна</translation> <translation id="2332742915001411729">Өгөгдмөл горимыг дахин тохируулах</translation> <translation id="2332948465534020594">Бүү саад бол горимыг идэвхжүүлсэн</translation> @@ -1860,6 +1865,7 @@ <translation id="2640299212685523844">GTK ашиглах</translation> <translation id="264083724974021997">Утсандаа холбогдох - харилцах цонх</translation> <translation id="2642111877055905627">Хөлбөмбөгийн бөмбөг</translation> +<translation id="2643064289437760082">Та интернэтээр үзсэн өгөгдлөө устгаснаар зарын хэмжилтийн өгөгдлийг мөн хэзээд устгах боломжтой</translation> <translation id="2643698698624765890">Window цэсэн дэх Өргөтгөлүүд хэсэг дээр дарж өөрийн өргөтгөлүүдээ удирд.</translation> <translation id="2645047101481282803">Таны төхөөрөмжийг <ph name="PROFILE_NAME" />-с удирддаг</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2319,6 +2325,7 @@ <translation id="3036327949511794916">Энэ <ph name="DEVICE_TYPE" />-г буцаах эцсийн хугацаа өнгөрсөн байна.</translation> <translation id="3036546437875325427">Flash-г идэвхжүүлэх</translation> <translation id="3037754279345160234">Домайнд нэгдэхийн тулд тохиргоог задалж чадахгүй байна. Админтайгаа холбогдоно уу.</translation> +<translation id="3038272154009688107">Бүх сайтыг харах</translation> <translation id="3038612606416062604">Хэвлэгчийг гараар нэмэх</translation> <translation id="3039491566278747710">Офлайн удирдамжийг төхөөрөмж дээр суулгаж чадсангүй.</translation> <translation id="3043016484125065343">Хавчуургаа харахын тулд нэвтрэх</translation> @@ -2555,6 +2562,7 @@ <translation id="3289668031376215426">Автоматаар томруулах</translation> <translation id="3289856944988573801">Шинэчлэлтийг шалгахын тулд Ethernet эсвэл Wi-Fi-аа ашиглана уу.</translation> <translation id="3290249595466894471">Шинэ аюул заналыг олж илрүүлэхэд туслахын тулд хуудас, татаж авсан файл, өргөтгөлийн үйл ажиллагаа болон системийн мэдээллийн багахан хэсгийг мөн илгээнэ.</translation> +<translation id="3293181007446299124">Таны хөтчийн түүхийг төхөөрөмж дээр тань нууцалж, таныг таних мэдээллийг хамгаалах үүднээс тайлангуудыг саатуулан илгээдэг</translation> <translation id="3293644607209440645">Энэ хуудсыг илгээх</translation> <translation id="32939749466444286">Linux контейнер эхэлсэнгүй. Дахин оролдоно уу.</translation> <translation id="3294437725009624529">Зочин</translation> @@ -3334,6 +3342,7 @@ <translation id="3984431586879874039">Энэ сайтад аюулгүй байдлын түлхүүрээ харуулахыг зөвшөөрөх үү?</translation> <translation id="398477389655464998">Тодруулсан текстийн холбоосыг хуулах</translation> <translation id="3984862166739904574">Шуурхай хариултын тодорхойлолт</translation> +<translation id="3985022125189960801">Хэрэв та сайтыг таны дуртай зүйлийг таамаглах боломжтой сайтуудын санд оруулахыг хүсвэл буцааж нэмнэ үү</translation> <translation id="3987544746655539083">Байршилд тань хандахыг энэ сайтад үргэлжлүүлэн хориглох</translation> <translation id="3987938432087324095">Уучлаарай, сонсож чадсангүй.</translation> <translation id="3987993985790029246">Холбоосыг хуулах</translation> @@ -3712,6 +3721,7 @@ <translation id="4366138410738374926">Хэвлэж эхэлсэн</translation> <translation id="4367513928820380646">Хассан зөвшөөрлүүдийг шалгах</translation> <translation id="4369215744064167350">Вебсайтын хүсэлтийг зөвшөөрсөн</translation> +<translation id="4369735607080757018">Танд зар харуулсан өдрийн цаг зэрэг зарынхаа гүйцэтгэлийг хэмжихийн тулд сайтуудын хооронд хязгаарлагдмал төрлийн өгөгдлийг хуваалцдаг.</translation> <translation id="4370975561335139969">Таны оруулсан имэйл болон нууц үг таарахгүй байна</translation> <translation id="4374831787438678295">Linux суулгагч</translation> <translation id="4375035964737468845">Татаж авсан файлуудыг нээх</translation> @@ -3732,6 +3742,7 @@ <translation id="4385146930797718821">Дэлгэцийн агшныг түр санах ойд хуулсан</translation> <translation id="4385905942116811558">Bluetooth болон USB төхөөрөмжүүдийг хайж байна</translation> <translation id="4387890294700445764">Алдагдсан нууц үгс</translation> +<translation id="4388650384344483842">Дор хаяж 8 тэмдэгт ашиглана уу</translation> <translation id="4389091756366370506">Хэрэглэгчийн <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> болон өөр <ph name="NUMBER_OF_OTHER_SWITCHES" /> сэлгүүр</translation> <translation id="439266289085815679">Bluetooth тохиргоог <ph name="USER_EMAIL" /> хянадаг.</translation> @@ -4054,6 +4065,7 @@ <translation id="4666472247053585787">Утасныхаа мэдэгдлийг <ph name="DEVICE_TYPE" /> дээрээ хараарай</translation> <translation id="4666911709726371538">Бусад апп</translation> <translation id="4667027203988048332">Ямар өгөгдлийг ашигладаг вэ?:</translation> +<translation id="4668279686271488041">Зарын хэмжилтийн өгөгдлийг таны төхөөрөмжөөс тогтмол устгадаг</translation> <translation id="4672759829555593783"><ph name="FILE_NAME" />-г одоо нээх</translation> <translation id="46733273239502219">Суулгасан аппуудын офлайн өгөгдлийг мөн устгах болно</translation> <translation id="4673442866648850031">Мэдрэгч үзгийг устгасны дараа мэдрэгч үзэгний хэрэгслийг нээнэ үү</translation> @@ -4247,6 +4259,7 @@ <translation id="485480310608090163">Бусад тохиргоо болон зөвшөөрөл</translation> <translation id="4858913220355269194">Fritz</translation> <translation id="4862642413395066333">OCSP хариултууд руу нэвтэрч байна</translation> +<translation id="4863702650881330715">Тохиромжтой байдлыг нэмэгдүүлэх</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> юм шиг харагдаж байна (Өгөгдмөл)</translation> <translation id="4864805589453749318">Сургуулийн бүртгэл нэмэх зөвшөөрөл олгож буй эцэг эхээ сонгоно уу.</translation> <translation id="486635084936119914">Татаж авсны дараа тодорхой файлын хэлбэрийг автоматаар нээх</translation> @@ -4295,7 +4308,6 @@ <translation id="4893336867552636863">Энэ нь таны хайлтын өгөгдлийг энэ төхөөрөмжөөс бүрмөсөн устгах болно.</translation> <translation id="4893454800196085005">Сайн - DVD</translation> <translation id="4893522937062257019">Түгжигдсэн дэлгэцэд</translation> -<translation id="4897496410259333978">Нэмэлт мэдээлэл авахын тулд администратортайгаа холбогдоно уу.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" гэрчилгээ нь Гэрчилгээний бүрэн эрхийг төлөөлж байна</translation> <translation id="4899052647152077033">Урвуу өнгө</translation> <translation id="4899696330053002588">Зар агуулсан</translation> @@ -4493,6 +4505,7 @@ <translation id="5094721898978802975">Хамтарч буй суурин апп-уудтай харилцах</translation> <translation id="5097002363526479830">Сүлжээний холболт амжилтгүй боллоо '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Байршил ашиглах талаар нэмэлт мэдээлэл авна уу</translation> +<translation id="5097349930204431044">Таны зочилсон сайтууд таны юунд дуртайг тодорхойлж, цааш тасралтгүй үзэх үед зар санал болгох боломжтой</translation> <translation id="5097649414558628673">Хэрэгсэл: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Курсорыг зогссон үед автоматаар товших</translation> <translation id="5101683448725092498">Зүйлсээ хуулбарлах</translation> @@ -4675,6 +4688,7 @@ <translation id="5275352920323889391">Нохой</translation> <translation id="527605719918376753">Дууг хаах таб</translation> <translation id="527605982717517565"><ph name="HOST" />-д байгаа JavaScript-ийг үргэлж зөвшөөрөх</translation> +<translation id="5276357196618041410">Эхлээд нэвтрэхгүйгээр тохируулгыг хадгалах боломжгүй</translation> <translation id="5277127016695466621">Хажуугийн самбарыг харуулах</translation> <translation id="5278823018825269962">Төлөвийн Id</translation> <translation id="5279600392753459966">Бүгдийг хориглох</translation> @@ -5829,7 +5843,6 @@ <translation id="6347010704471250799">Мэдэгдлийг харуулах</translation> <translation id="6349101878882523185"><ph name="APP_NAME" />-г суулгах</translation> <translation id="6354918092619878358">SECG зууван муруй secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Туршилтын (альфа-чанар) хөтөч! Зарим онцлог дутуу эсвэл дуусаагүй байна. Асуудлыг дараахаар мэдээлнэ үү: Тусламж > "Асуудал мэдээлэх...".</translation> <translation id="635609604405270300">Төхөөрөмжийг асаалттай хэвээр байлгаарай</translation> <translation id="63566973648609420">Зөвхөн таны нэвтрэх үгийг мэддэг хүн л таны шифрлэсэн өгөгдлийг унших боломжтой. Нэвтрэх үгийг Google-д илгээх болон хадгалахгүй. Хэрэв та нэвтрэх үгээ мартсан, эсвэл тохиргоог өөрчлөх бол <ph name="BEGIN_LINK" />синкийг дахин тохируулах<ph name="END_LINK" /> шаардлагатай.</translation> <translation id="6357305427698525450">Зарим дэмжигдсэн холбоосыг <ph name="APP_NAME" /> эсвэл <ph name="APP_NAME_2" />-д нээх боломжтой хэвээр байна.</translation> @@ -6169,6 +6182,7 @@ <translation id="6670767097276846646">Зарим өргөтгөл Chrome-д хайлтын систем нэмэх боломжтой</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 хаяг}other{# хаяг}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" />-р менежмент тохируулж байна</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> нэмэх</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Синк хийж эхлэхийн тулд нэвтрэх үгээ оруулна уу</translation> <translation id="6675665718701918026">Сонгосон төхөөрөмжийг холбосон</translation> @@ -6252,6 +6266,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Нууцлал)</translation> <translation id="6756157672127672536">Файлс апп нь таны Google Драйв, гадаад хадгалах сан эсвэл ChromeOS төхөөрөмж дээр хадгалсан файлуудад шуурхай хандалт олгоно.</translation> <translation id="6756643207511618722">Ярианы хөдөлгүүр</translation> +<translation id="6757431299485455321">Бусад төхөөрөмжүүдэд энэ сүлжээний цэгийг олоход тусална уу.</translation> <translation id="6758056191028427665">Биднийг хэр ажиллаж байгааг мэдэгдэнэ үү.</translation> <translation id="6759193508432371551">Үйлдвэрийн тохиргоонд нь буцааж оруулах</translation> <translation id="6761431452438552910">Bluetooth төхөөрөмжөө хослуулах горимд болон ойролцоо байгаа эсэхийг шалгаарай. Зөвхөн итгэдэг төхөөрөмжүүдтэйгээ хослуулна уу.</translation> @@ -6351,6 +6366,7 @@ <translation id="6833479554815567477">Табыг <ph name="GROUP_NAME" /> бүлгээс хассан - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Ухаалаг, аюулгүй хөтөч рүү сэлгэх</translation> <translation id="6833996806551876956">Нууцлалын sandbox-н туршилт</translation> +<translation id="6835712061486505758">Бусад төхөөрөмжийг интернэтээр хангахын тулд Wi-Fi сүлжээний цэг үүсгэнэ үү. <ph name="BEGIN_LINK_LEARN_MORE" />Нэмэлт мэдээлэл авах<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563"><ph name="DEVICE_TYPE" />-ээ шинэчлэхийн тулд интернэтэд холбогдоно уу.</translation> <translation id="6839225236531462745">Гэрчилгээг арчих алдаа</translation> <translation id="6839916869147598086">Нэвтрэх өөрчлөгдлөө</translation> @@ -6512,6 +6528,7 @@ <translation id="697508444536771064">Linux-г унтраах</translation> <translation id="6975361011348772931">Унших, өөрчлөх хүсэлт тавьсан</translation> <translation id="6978121630131642226">Хайлтын систем</translation> +<translation id="6978717888677691380">Таны блоклосон сайтууд</translation> <translation id="6979041727349121225">Эрчим хүч хэмнэгч</translation> <translation id="6979044105893951891">Эхлүүлээд, удирдлагатай зочны сургалтаас гарах</translation> <translation id="6979440798594660689">Дууг хаах (өгөгдмөл)</translation> @@ -6603,6 +6620,7 @@ <translation id="7047059339731138197">Арын дэвсгэр сонгох</translation> <translation id="7048457618657122233"><ph name="SHARE_TARGET" />-д холбоос хуваалцах</translation> <translation id="7049293980323620022">Файлыг хадгалах уу?</translation> +<translation id="7050037487872780845">Буруу сүлжээний цэгийн тохируулга</translation> <translation id="7052237160939977163">Үйлдлийн явцын өгөгдлийг илгээх</translation> <translation id="7053983685419859001">Блоклох</translation> <translation id="7055152154916055070">Дахин чиглүүлэлтийг блоклосон:</translation> @@ -6807,6 +6825,7 @@ <translation id="7258192266780953209">Хувиргалт</translation> <translation id="7258225044283673131">Хэрэглээний программ хариу өгөхгүй байна. Аппыг хаахын тулд "Хүчээр хаах"-г сонгоно уу.</translation> <translation id="7260186537988033909">Киоск болон пайзны төхөөрөмжийг бүртгүүлж дууслаа</translation> +<translation id="7260367682327802201">Таны Android төхөөрөмж ижил төстэй тохиргоог агуулж болно. Хэрэв Chrome болон таны Android төхөөрөмж дээр зарын хэмжилтийг асаасан бол компани таны зочилдог веб сайтууд болон ашигладаг аппууд дээрх зарын үр нөлөөг хэмжих боломжтой.</translation> <translation id="7262004276116528033">Энэ нэвтрэх үйлчилгээг <ph name="SAML_DOMAIN" />-с хост хийсэн</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{1 сайтаас зөвшөөрөл хассан}other{{NUM_SITES} сайтаас зөвшөөрөл хассан}}</translation> <translation id="7264695323040866038">Дэмжигдсэн веб холбооснуудыг нээхийн тулд <ph name="APP" />-г үргэлж ашиглах уу?</translation> @@ -6950,6 +6969,7 @@ <translation id="7406912950279255498">Өнгө урвуулах горим</translation> <translation id="7407430846095439694">Импортлох, батлах</translation> <translation id="7407504355934009739">Ихэнх хүн энэ сайтын мэдэгдлийг хориглодог</translation> +<translation id="7408080603962564527">Энэ нь бусдад харагдах болно</translation> <translation id="740810853557944681">Хэвлэх сервер нэмэх</translation> <translation id="7409549334477097887">Маш том</translation> <translation id="7409599290172516453">Саяхны зургууд</translation> @@ -6988,7 +7008,6 @@ <translation id="7434757724413878233">Хулганын хурдасгуур</translation> <translation id="7434969625063495310">Хэвлэх серверийг нэмж чадсангүй. Серверийн тохируулгыг шалгаад дахин оролдоно уу.</translation> <translation id="7436921188514130341">Уучлаарай! Нэр өөрчлөхөд алдаа гарлаа.</translation> -<translation id="7438495332316988804">Эхлүүлэгчид "Chrome" гэж бичсэнээр стандарт хөтчийг олох боломжтой.</translation> <translation id="7439519621174723623">Үргэлжлүүлэхийн тулд төхөөрөмжийн нэр нэмнэ үү</translation> <translation id="7441736921018636843">Энэ тохиргоог өөрчлөхийн тулд <ph name="BEGIN_LINK" />синкийг шинэчилж<ph name="END_LINK" />, синкийн нэвтрэх үгийг устгана уу</translation> <translation id="7441830548568730290">Бусад хэрэглэгч</translation> @@ -7265,6 +7284,7 @@ <translation id="7684718995427157417">Апликейшн үүсгэж, шалгахын тулд Android Debug Bridge (ADB)-г идэвхжүүлнэ үү. Энэ үйлдэл нь Google-н баталгаажуулаагүй Андройд аппыг суулгахыг зөвшөөрөх бөгөөд идэвхгүй болгоход үйлдвэрийн тохиргоонд шинэчлэх шаардлагатай.</translation> <translation id="7685049629764448582">JavaScript санах ой</translation> <translation id="7685087414635069102">ПИН шаардлагатай</translation> +<translation id="7686086654630106285">Сайтаас санал болгож буй зарын талаарх илүү дэлгэрэнгүй</translation> <translation id="7686581688229391955">Энэ сайтад өргөтгөлүүдийг зөвшөөрөхийн тулд сонгоно уу</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Шинэ нууц үг баталгаажуулна уу</translation> @@ -7286,6 +7306,7 @@ <translation id="7704317875155739195">Хайлт болон URL-г автоматаар гүйцээх</translation> <translation id="7704521324619958564">Play Store-г нээх</translation> <translation id="7705276765467986571">Хайлтын жагсаалтын загварыг ачаалж чадсангүй.</translation> +<translation id="7705334495398865155">Бусад хүмүүс энэ төхөөрөмжийг хянахаас сэргийлэхийн тулд өөрийн техник хангамжийн ID-г (BSSID) санамсаргүй байдлаар эмхэлнэ үү.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Энэ сайтад хөдөлгөөн мэдрэгч ашиглахыг хориглосон.</translation> <translation id="7707922173985738739">Мобайл дата ашиглах</translation> @@ -7478,6 +7499,7 @@ <translation id="7881483672146086348">Бүртгэл харах</translation> <translation id="7883792253546618164">Хүссэн үедээ захиалгаа цуцална уу.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Маш олон мэдэгдэл илгээсэн 1 сайтыг шалгах}other{Маш олон мэдэгдэл илгээсэн {NUM_SITES} сайтыг шалгах}}</translation> +<translation id="7884446017008693258">Сүлжээний цэгийн тохиргоо</translation> <translation id="788453346724465748">Бүртгэлийн мэдээллийг ачаалж байна...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 зүйл}other{# зүйл}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7565,6 +7587,7 @@ <translation id="7952904276017482715">Хүлээгдэж байсан ID нь "<ph name="EXPECTED_ID" />" хэдий ч ID "<ph name="NEW_ID" />" байсан</translation> <translation id="7953669802889559161">Оролт</translation> <translation id="7953955868932471628">Богино холбоосыг зохицуулах</translation> +<translation id="7955105108888461311">Өөрийн биеэр асуух</translation> <translation id="7955177647836564772">Хэрэв Ухаалаг түгжээг асаасан бөгөөд таны утасны түгжээг тайлсан бол та нууц үг эсвэл ПИН оруулах шаардлагагүй</translation> <translation id="7956373551960864128">Таны хадгалсан хэвлэгч</translation> <translation id="7957074856830851026">Серийн дугаар эсвэл өмчийн ID зэрэг төхөөрөмжийн мэдээллийг харах</translation> @@ -7701,6 +7724,7 @@ <ph name="BEGIN_PARAGRAPH3" />Та энэ үйлчилгээг Тохиргоонд унтрааж болно.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Таб</translation> <translation id="8076835018653442223">Таны админ төхөөрөмжийн дотоод файлд хандах тохиргоог идэвхгүй болгосон</translation> +<translation id="8077120325605624147">Таны зочилсон ямар ч сайт танд ямар ч зар харуулах боломжтой</translation> <translation id="80798452873915119">Сайтууд таны бүх дэлгэц дээр цонх удирдахыг хүсэх боломжтой</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Таны харилцан үйлдлийг <ph name="MANAGER_NAME" /> удирддаг. Администраторууд таны профайлыг устгаж, мөн сүлжээний ачааллыг тань хянах боломжтой.</translation> @@ -8213,6 +8237,7 @@ <translation id="8557180006508471423">Mac дээрх Байршлын үйлчилгээндээ "Google Chrome"-г асаана уу</translation> <translation id="8557856025359704738">Дараагийн татан авалтыг <ph name="NEXT_DATE_DOWNLOAD" />-д хийнэ.</translation> <translation id="8559858985063901027">Нууц үгнүүд</translation> +<translation id="8559961053328923750">Chrome нь зарын гүйцэтгэлийг хэмжихийн тулд хөтчөөр дамжуулан сайтуудын хуваалцаж болох нийт өгөгдлийн хэмжээг хязгаарладаг</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Бүгдийг &Шинэ цонхонд нээх}=1{&Шинэ цонхонд нээх}other{Бүгдийг ({COUNT}) &Шинэ цонхонд нээх}}</translation> <translation id="8561206103590473338">Заан</translation> <translation id="8561565784790166472">Болгоомжтой үргэлжлүүлнэ үү</translation> @@ -8355,6 +8380,7 @@ <translation id="8678933587484842200">Та энэ аппыг хэрхэн ажиллуулах хүсэлтэй байна вэ?</translation> <translation id="8680251145628383637">Та бүх төхөөрөмжийнхөө хавчуурга, түүх, бусад тохиргоог авахын тулд нэвтрээрэй. Та Google үйлчилгээнд мөн автоматаар нэвтрэх болно.</translation> <translation id="8681614230122836773">Chrome таны компьютер дээрээс аюултай программ хангамж оллоо</translation> +<translation id="8681886425883659911">Төвөгтэй эсвэл төөрөгдүүлсэн зар үзүүлдэг сайтууд дээр зарыг блоклосон</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> хэдийн холбогдсон, бэлэн байна</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" />-г цуцлах</translation> <translation id="8688672835843460752">Боломжтой</translation> @@ -8723,6 +8749,7 @@ <translation id="9021662811137657072">Вирус илэрлээ</translation> <translation id="902236149563113779">Сайтууд ихэвчлэн тоглоом эсвэл чиглэлийн анхааруулга зэрэг AR онцлогуудад зориулж таны камерын байрлалыг хянадаг</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> энэ бүртгэлийг энэ компьютерт ашигласан байна.</translation> +<translation id="9022871169049522985">Сайтууд болон сурталчлагчид зарынхаа гүйцэтгэлийг хэмжих боломжтой</translation> <translation id="9023015617655685412">Энэ табыг тэмдэглэх...</translation> <translation id="9023909777842748145">Энэ онцлогийг унтраах нь систем шинэчлэлт, аюулгүй байдал зэрэг чухал үйлчилгээнд шаардлагатай мэдээллийг илгээх таны төхөөрөмжийн чадварт нөлөөлөхгүй.</translation> <translation id="9024127637873500333">Шинэ цонхонд нээх</translation> @@ -8852,6 +8879,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" />-н тохиргооны хуудсыг нээнэ үү</translation> <translation id="9128870381267983090">Сүлжээнд холбогдох</translation> <translation id="9130015405878219958">Хүчин төгөлдөр бус горим оруулсан байна.</translation> +<translation id="9131209053278896908">Блоклосон сайтууд энд гарч ирнэ</translation> <translation id="9131487537093447019">Bluethooth төмхөөрөмжид мэдээ илгээх болон мэдээ хүлээн авах.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 хавчуурга}other{# хавчуурга}}</translation> <translation id="9134066738478820307">Сайтууд хамгаалагдсан контент тоглуулахын тулд таниулбар ашиглах боломжтой</translation> @@ -8905,6 +8933,7 @@ <translation id="9180281769944411366">Энэ үйл явцад хэдэн минут шаардлагатай. Linux контейнерыг эхлүүлж байна.</translation> <translation id="9180380851667544951">Сайт таны дэлгэцийг хуваалцах боломжтой</translation> <translation id="9182556968660520230">Сайтуудад хамгаалагдсан контент тоглуулахыг бүү зөвшөөр</translation> +<translation id="9183331776983279456">Chrome нь 4 долоо хоногоос дээш удсан сайтуудыг автоматаар устгадаг. Таны дахин зочилсон сайт жагсаалтад дахин гарч ирж магадгүй. Эсвэл та сайтыг танд зар санал болгохыг блоклож болно.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Апп}other{# апп}}</translation> <translation id="9186963452600581158">Хүүхдийн Google Бүртгэлээр нэвтрэх</translation> <translation id="9187967020623675250">Товчнууд таарахгүй байна. <ph name="RESPONSE" />-н тулд дурын товчийг дарна уу.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 3ad07e7..edc836dddd3 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -768,6 +768,7 @@ <translation id="168715261339224929">तुमच्या सर्व डिव्हाइसवर तुमचे बुकमार्क मिळवण्यासाठी, सिंक सुरू करा.</translation> <translation id="1688867105868176567">साइट डेटा साफ करायचा?</translation> <translation id="1688935057616748272">एखादे अक्षर टाइप करा</translation> +<translation id="1689333818294560261">टोपणनाव</translation> <translation id="168991973552362966">एक जवळपासचे प्रिंटर जोडा</translation> <translation id="1689945336726856614">URL कॉपी करा</translation> <translation id="1692115862433274081">दुसरे खाते वापरा</translation> @@ -1524,7 +1525,6 @@ <translation id="2329597144923131178">आपल्या सर्व डिव्हाइसेस वरील तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर सेटिंग्ज मिळविण्यासाठी साइन इन करा.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> वर सेव्ह केलेली डिव्हाइस लोड करू शकत नाही. तुमचे इंटरनेट कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="2332131598580221120">स्टोअर मध्ये पहा</translation> -<translation id="2332192922827071008">प्राधान्ये उघडा</translation> <translation id="2332515770639153015">वर्धित सुरक्षित ब्राउझिंग सुरू केलेले आहे</translation> <translation id="2332742915001411729">डीफॉल्टवर रीसेट करा</translation> <translation id="2332948465534020594">व्यत्यय आणू नका सुरू केले</translation> @@ -4291,7 +4291,6 @@ <translation id="4893336867552636863">हे या डिव्हाइस वरून तुमचा ब्राउझिंग डेटा कायमचा हटवेल.</translation> <translation id="4893454800196085005">चांगली आहे - डीव्हीडी</translation> <translation id="4893522937062257019">लॉक स्क्रीनवर</translation> -<translation id="4897496410259333978">अधिक माहितीसाठी, तुमच्या अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> <translation id="4898011734382862273">सर्टिफिकेट "<ph name="CERTIFICATE_NAME" />" प्रमाणन अधिकृतता प्रस्तुत करते</translation> <translation id="4899052647152077033">रंग इन्व्हर्ट करा</translation> <translation id="4899696330053002588">यामध्ये जाहिराती आहेत</translation> @@ -5826,7 +5825,6 @@ <translation id="6347010704471250799">सूचना दाखवा</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> इंस्टॉल करा</translation> <translation id="6354918092619878358">SECG एल्लिपटिक कर्व्ह secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">(अल्फा गुणवत्तेचा) प्रायोगिक ब्राउझर! काही वैशिष्ट्ये उपलब्ध नाहीत किंवा अपूर्ण आहेत. अशा प्रकारे समस्यांची तक्रार करा: मदत > "समस्येची तक्रार करा...".</translation> <translation id="635609604405270300">डिव्हाइस सुरू ठेवा</translation> <translation id="63566973648609420">फक्त तुमचा सांकेतिक पासफ्रेझ असलेली एखादी व्यक्ती तुमचा एंक्रिप्ट केलेला डेटा वाचू शकते. सांकेतिक पासफ्रेझ Google कडे पाठविला किंवा त्याद्वारे स्टोअर केला जात नाही. तुमचा सांकेतिक पासफ्रेझ विसरल्यास किंवा हे सेटिंग बदलू इच्छित असल्यास, तुम्हाला <ph name="BEGIN_LINK" />सिंक रीसेट करण्याची आवश्यकता असेल<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">सपोर्ट असलेल्या काही लिंक तरीही <ph name="APP_NAME" /> किंवा <ph name="APP_NAME_2" /> मध्ये उघडतील.</translation> @@ -6985,7 +6983,6 @@ <translation id="7434757724413878233">माउस अॅक्सिलरेशन</translation> <translation id="7434969625063495310">प्रिंट सर्व्हर जोडता आला नाही. कृपया सर्व्हरचे कॉंफिगरेशन तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="7436921188514130341">ओहो! नाव बदलताना एक एरर आली होती.</translation> -<translation id="7438495332316988804">लाँचर मध्ये "Chrome" असे टाइप करून साधारण ब्राउझर मिळवला जाऊ शकतो.</translation> <translation id="7439519621174723623">पुढे सुरू ठेवण्यासाठी डिव्हाइसचे नाव जोडा</translation> <translation id="7441736921018636843">हे सेटिंग बदलण्यासाठी, तुमची सिंक पासफ्रेझ काढून टाकण्यासाठी <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation> <translation id="7441830548568730290">इतर वापरकर्ते</translation> @@ -7561,6 +7558,7 @@ <translation id="7952904276017482715">अपेक्षित आयडी "<ph name="EXPECTED_ID" />", परंतु आयडी "<ph name="NEW_ID" />" होता</translation> <translation id="7953669802889559161">इनपुट</translation> <translation id="7953955868932471628">शॉर्टकट व्यवस्थापित करा</translation> +<translation id="7955105108888461311">प्रत्यक्ष मंजुरी घ्या</translation> <translation id="7955177647836564772">Smart Lock सुरू असल्यास आणि तुमचा फोन अनलॉक केलेला असल्यास, तुम्ही पासवर्ड किंवा पिन एंटर करणे आवश्यक नाही</translation> <translation id="7956373551960864128">तुमचे सेव्ह केलेले प्रिंटर</translation> <translation id="7957074856830851026">सिरीअल नंबर किंवा मालमत्ता आयडी यांसारखी डिव्हाइसची माहिती पहा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index cccc6f2..1708f8f 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Buka &Imej Asal dalam Tab Baharu</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Kemas kini <ph name="DEVICE_TYPE" /> dalam masa 1 minggu}other{Kemas kini <ph name="DEVICE_TYPE" /> dalam masa {NUM_WEEKS} minggu}}</translation> <translation id="1056898198331236512">Amaran</translation> +<translation id="1056980582064308040">Menukar tetapan akan memulakan semula tempat liputan. Peranti yang menggunakan tempat liputan akan terputus sambungan.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Masukkan PIN baharu anda. Panjang PIN mesti sekurang-kurangnya satu aksara dan boleh mengandungi huruf, nombor dan aksara lain.}other{Masukkan PIN baharu anda. Panjang PIN mesti sekurang-kurangnya # aksara dan boleh mengandungi huruf, nombor dan aksara lain.}}</translation> <translation id="1059484610606223931">Protokol Pengangkutan Hiperteks (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">Berhenti</translation> <translation id="1272508081857842302">Membuka <ph name="BEGIN_LINK" />pautan yang disokong<ph name="END_LINK" /></translation> <translation id="1272978324304772054">Akaun pengguna ini tidak tergolong dalam domain tempat peranti anda didaftarkan. Jika anda ingin mendaftar untuk domain yang berbeza, anda perlu melalui pemulihan peranti terlebih dahulu.</translation> +<translation id="1273937721055267968">Sekat <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Kuki dan data tapak yang lain</translation> <translation id="1275718070701477396">Dipilih</translation> <translation id="1276994519141842946">Tidak dapat menyahpasang <ph name="APP_NAME" /></translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">Untuk mendayakan penyahpepijatan ADB, <ph name="DEVICE_TYPE" /> perlu dimulakan semula. Tindakan melumpuhkan ADB memerlukan tetapan semula kepada tetapan kilang.</translation> <translation id="1327527584824210101">Gunakan kunci laluan anda</translation> <translation id="1327794256477341646">Ciri yang memerlukan lokasi anda tidak akan berfungsi</translation> +<translation id="1329466763986822896">Tingkatkan privasi untuk tempat liputan ini</translation> <translation id="1331977651797684645">Ini saya.</translation> <translation id="1333489022424033687">Sesetengah ciri di <ph name="ORIGIN" /> mungkin tidak berfungsi sehingga anda mengosongkan data yang telah disimpan pada peranti anda oleh tapak lain itu</translation> <translation id="1333965224356556482">Jangan benarkan laman melihat lokasi anda</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Tetingkap Inkognito anda tidak dapat dibuka semula.}other{# tetingkap Inkognito anda tidak dapat dibuka semula.}}</translation> <translation id="1546280085599573572">Sambungan ini telah menukar halaman yang ditunjukkan apabila anda mengklik butang Laman Utama.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> mahu memasang <ph name="EXTENSION_TYPE" /> yang boleh:</translation> +<translation id="1547123415014299762">Kuki pihak ketiga dibenarkan</translation> <translation id="1547808936554660006">Saya faham bahawa profil eSIM yang dipasang tidak akan dialih keluar oleh Powerwash</translation> <translation id="1547936895218027488">Klik ikon panel sisi untuk membukanya</translation> <translation id="1549275686094429035">ARC Didayakan</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">Hidupkan penyegerakan untuk mendapatkan penanda halaman pada semua peranti anda.</translation> <translation id="1688867105868176567">Kosongkan data tapak?</translation> <translation id="1688935057616748272">Taip huruf</translation> +<translation id="1689333818294560261">Nama panggilan</translation> <translation id="168991973552362966">Tambahkan pencetak berdekatan</translation> <translation id="1689945336726856614">Salin &URL</translation> <translation id="1692115862433274081">Gunakan akaun lain</translation> @@ -1408,6 +1413,7 @@ <translation id="2247870315273396641">Pratonton suara</translation> <translation id="2249111429176737533">Buka sebagai tetingkap bertab</translation> <translation id="2249605167705922988">cth. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Sesuaikan maklumat yang digunakan oleh laman untuk memaparkan iklan kepada anda</translation> <translation id="2251218783371366160">Buka dengan pemapar sistem</translation> <translation id="225163402930830576">Muat Semula Rangkaian</translation> <translation id="2251809247798634662">Tetingkap Inkognito baharu</translation> @@ -1525,7 +1531,6 @@ <translation id="2329597144923131178">Log masuk untuk mendapatkan penanda halaman, sejarah, kata laluan dan tetapan lain pada semua peranti anda.</translation> <translation id="2332115969598251205">Tidak dapat memuatkan peranti yang disimpan pada <ph name="PRIMARY_EMAIL" />. Periksa sambungan Internet anda dan cuba lagi.</translation> <translation id="2332131598580221120">Lihat di gedung</translation> -<translation id="2332192922827071008">Buka Pilihan</translation> <translation id="2332515770639153015">Penyemakan Imbas Selamat Dipertingkat dihidupkan</translation> <translation id="2332742915001411729">Tetapkan semula kepada lalai</translation> <translation id="2332948465534020594">Jangan Ganggu didayakan</translation> @@ -1859,6 +1864,7 @@ <translation id="2640299212685523844">Gunakan GTK</translation> <translation id="264083724974021997">Sambungkan kepada telefon anda - Dialog</translation> <translation id="2642111877055905627">Bola sepak</translation> +<translation id="2643064289437760082">Anda sentiasa boleh memadamkan data pengukuran iklan dengan memadamkan data semakan imbas anda</translation> <translation id="2643698698624765890">Uruskan sambungan anda dengan mengklik Extensions dalam menu Window.</translation> <translation id="2645047101481282803">Peranti anda diurus oleh <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">Chrome OS</translation> @@ -2318,6 +2324,7 @@ <translation id="3036327949511794916">Tarikh akhir untuk memulangkan <ph name="DEVICE_TYPE" /> ini telah berlalu.</translation> <translation id="3036546437875325427">Dayakan Flash</translation> <translation id="3037754279345160234">Tidak dapat menghurai konfigurasi penyertaan domain. Sila hubungi pentadbir anda.</translation> +<translation id="3038272154009688107">Lihat semua laman</translation> <translation id="3038612606416062604">Tambahkan pencetak secara manual</translation> <translation id="3039491566278747710">Gagal memasang dasar luar talian pada peranti.</translation> <translation id="3043016484125065343">Log masuk untuk melihat penanda halaman anda</translation> @@ -2554,6 +2561,7 @@ <translation id="3289668031376215426">Autohuruf besar</translation> <translation id="3289856944988573801">Untuk menyemak kemas kini, sila gunakan Ethernet atau Wi-Fi.</translation> <translation id="3290249595466894471">Turut menghantar sedikit sampel halaman, muat turun, aktiviti sambungan dan maklumat sistem untuk membantu penemuan ancaman baharu</translation> +<translation id="3293181007446299124">Sejarah penyemakan imbas anda dipastikan tertutup pada peranti anda dan penghantaran laporan dilengahkan untuk melindungi identiti anda</translation> <translation id="3293644607209440645">Hantar halaman ini</translation> <translation id="32939749466444286">Bekas Linux tidak dimulakan. Sila cuba lagi.</translation> <translation id="3294437725009624529">Tetamu</translation> @@ -3334,6 +3342,7 @@ <translation id="3984431586879874039">Benarkan tapak ini melihat kunci keselamatan anda?</translation> <translation id="398477389655464998">Salin Pautan kepada Serlahan</translation> <translation id="3984862166739904574">Jawapan Segera takrif</translation> +<translation id="3985022125189960801">Tambahkan kembali laman jika anda mahukan laman itu di dalam kumpulan laman yang boleh meneka perkara yang disukai</translation> <translation id="3987544746655539083">Teruskan menyekat tapak ini daripada mengakses lokasi anda</translation> <translation id="3987938432087324095">Maaf, kurang jelas.</translation> <translation id="3987993985790029246">Salin pautan</translation> @@ -3711,6 +3720,7 @@ <translation id="4366138410738374926">Pencetakan dimulakan</translation> <translation id="4367513928820380646">Semak kebenaran yang dialih keluar</translation> <translation id="4369215744064167350">Permintaan laman web diluluskan</translation> +<translation id="4369735607080757018">Jenis data terhad dikongsi antara laman untuk mengukur prestasi iklan mereka, seperti masa hari iklan dipaparkan kepada anda</translation> <translation id="4370975561335139969">E-mel dan kata laluan yang anda masukkan tidak padan</translation> <translation id="4374831787438678295">Pemasang Linux</translation> <translation id="4375035964737468845">Buka fail yang dimuat turun</translation> @@ -3731,6 +3741,7 @@ <translation id="4385146930797718821">Tangkapan skrin disalin ke papan keratan</translation> <translation id="4385905942116811558">Mencari peranti Bluetooth dan USB</translation> <translation id="4387890294700445764">Kata laluan yang terjejas</translation> +<translation id="4388650384344483842">Gunakan sekurang-kurangnya 8 aksara</translation> <translation id="4389091756366370506">Pengguna <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> dan <ph name="NUMBER_OF_OTHER_SWITCHES" /> lagi suis</translation> <translation id="439266289085815679">Konfigurasi Blueooth dikawal oleh <ph name="USER_EMAIL" />.</translation> @@ -4053,6 +4064,7 @@ <translation id="4666472247053585787">Lihat pemberitahuan daripada telefon pada <ph name="DEVICE_TYPE" /> anda</translation> <translation id="4666911709726371538">Lagi apl</translation> <translation id="4667027203988048332">Jenis data yang digunakan:</translation> +<translation id="4668279686271488041">Data ukuran iklan dipadamkan dengan kerap daripada peranti anda</translation> <translation id="4672759829555593783">Buka <ph name="FILE_NAME" /> sekarang</translation> <translation id="46733273239502219">Data luar talian dalam apl yang dipasang juga akan dipadamkan</translation> <translation id="4673442866648850031">Buka alatan stilus apabila stilus dialih keluar</translation> @@ -4246,6 +4258,7 @@ <translation id="485480310608090163">Lagi tetapan dan kebenaran</translation> <translation id="4858913220355269194">Fritz</translation> <translation id="4862642413395066333">Menandatangan Respons OCSP</translation> +<translation id="4863702650881330715">Lanjutkan keserasian</translation> <translation id="4863769717153320198">Kelihatan seperti <ph name="WIDTH" /> x <ph name="HEIGHT" /> (Lalai)</translation> <translation id="4864805589453749318">Pilih ibu/bapa yang memberikan kebenaran untuk menambah akaun sekolah.</translation> <translation id="486635084936119914">Buka jenis fail tertentu secara automatik selepas memuat turun</translation> @@ -4294,7 +4307,6 @@ <translation id="4893336867552636863">Tindakan ini akan memadamkan data penyemakan imbas anda daripada peranti ini selama-lamanya.</translation> <translation id="4893454800196085005">Baik - DVD</translation> <translation id="4893522937062257019">Pada skrin kunci</translation> -<translation id="4897496410259333978">Untuk mendapatkan maklumat lanjut, hubungi pentadbir anda.</translation> <translation id="4898011734382862273">Sijil "<ph name="CERTIFICATE_NAME" />" mewakili Pihak Berkuasa Pensijilan</translation> <translation id="4899052647152077033">Songsangkan warna</translation> <translation id="4899696330053002588">Mengandungi iklan</translation> @@ -4492,6 +4504,7 @@ <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang bekerjasama</translation> <translation id="5097002363526479830">Gagal untuk bersambung ke rangkaian '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Ketahui lebih lanjut tentang menggunakan lokasi</translation> +<translation id="5097349930204431044">Laman yang anda lawati boleh menentukan perkara yang anda sukai dan mencadangkan iklan sambil anda meneruskan penyemakan imbas</translation> <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klik secara automatik apabila kursor berhenti</translation> <translation id="5101683448725092498">Sandarkan bahan anda</translation> @@ -4674,6 +4687,7 @@ <translation id="5275352920323889391">Anjing</translation> <translation id="527605719918376753">Redam tab</translation> <translation id="527605982717517565">Sentiasa benarkan JavaScript di <ph name="HOST" /></translation> +<translation id="5276357196618041410">Tidak boleh menyimpan konfigurasi tanpa log masuk terlebih dahulu</translation> <translation id="5277127016695466621">Tunjukkan panel sisi</translation> <translation id="5278823018825269962">ID Status</translation> <translation id="5279600392753459966">Sekat semua</translation> @@ -5828,7 +5842,6 @@ <translation id="6347010704471250799">Tunjukkan pemberitahuan</translation> <translation id="6349101878882523185">Pasang <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Lengkung eliptik SECG secp256r1 (alias ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Penyemak imbas percubaan (kualiti alfa)! Sesetengah ciri tiada atau tidak lengkap. Laporkan isu pada: Bantuan > "Laporkan isu...".</translation> <translation id="635609604405270300">Sentiasa hidupkan peranti</translation> <translation id="63566973648609420">Hanya orang yang tahu ungkapan laluan anda boleh membaca data anda yang disulitkan. Ungkapan laluan tidak dihantar atau disimpan oleh Google. Jika anda terlupa ungkapan laluan atau ingin menukar tetapan ini, anda perlu <ph name="BEGIN_LINK" />menetapkan semula penyegerakan<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" /> atau <ph name="APP_NAME_2" />.</translation> @@ -6168,6 +6181,7 @@ <translation id="6670767097276846646">Sesetengah sambungan boleh menambahkan enjin carian pada Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{satu alamat}other{# alamat}}</translation> <translation id="6671497123040790595">Menyediakan pengurusan oleh <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Tambah <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Untuk memulakan penyegerakan, masukkan ungkapan laluan anda</translation> <translation id="6675665718701918026">Peranti penuding disambung</translation> @@ -6251,6 +6265,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Inkognito)</translation> <translation id="6756157672127672536">Apl Fail memberikan akses pantas kepada fail yang telah anda simpan di Google Drive, storan luaran atau peranti Chrome OS anda.</translation> <translation id="6756643207511618722">Enjin pertuturan</translation> +<translation id="6757431299485455321">Membantu peranti lain menemukan tempat liputan ini.</translation> <translation id="6758056191028427665">Beritahu kami tentang prestasi kami.</translation> <translation id="6759193508432371551">Tetapan semula kilang</translation> <translation id="6761431452438552910">Pastikan peranti Bluetooth anda dalam mod penggandingan dan berdekatan. Hanya gandingkan dengan peranti yang anda percayai.</translation> @@ -6350,6 +6365,7 @@ <translation id="6833479554815567477">Tab dialih keluar daripada kumpulan <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Tukar kepada penyemak imbas yang pintar dan selamat</translation> <translation id="6833996806551876956">Percubaan Kotak Pasir Privasi</translation> +<translation id="6835712061486505758">Buat tempat liputan Wi-Fi untuk menyediakan Internet kepada peranti lain. <ph name="BEGIN_LINK_LEARN_MORE" />Ketahui lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Sila sambung ke Internet untuk mengemaskinikan <ph name="DEVICE_TYPE" /> anda.</translation> <translation id="6839225236531462745">Ralat Pemadaman Sijil</translation> <translation id="6839916869147598086">Log masuk telah berubah</translation> @@ -6511,6 +6527,7 @@ <translation id="697508444536771064">Matikan Linux</translation> <translation id="6975361011348772931">Diminta untuk membaca & menukar</translation> <translation id="6978121630131642226">Enjin Carian</translation> +<translation id="6978717888677691380">Laman yang anda sekat</translation> <translation id="6979041727349121225">Penjimat Tenaga</translation> <translation id="6979044105893951891">Lancarkan dan keluar daripada sesi tetamu yang diurus</translation> <translation id="6979440798594660689">Redam (lalai)</translation> @@ -6602,6 +6619,7 @@ <translation id="7047059339731138197">Pilih latar belakang</translation> <translation id="7048457618657122233">Kongsi pautan ke <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Simpan fail?</translation> +<translation id="7050037487872780845">Konfigurasi tempat liputan tidak sah</translation> <translation id="7052237160939977163">Hantar data surih prestasi</translation> <translation id="7053983685419859001">Sekat</translation> <translation id="7055152154916055070">Ubah hala disekat:</translation> @@ -6806,6 +6824,7 @@ <translation id="7258192266780953209">Perubahan</translation> <translation id="7258225044283673131">Aplikasi tidak memberikan respons. Pilih "Paksa tutup" untuk menutup apl.</translation> <translation id="7260186537988033909">Pendaftaran peranti Kios dan papan tanda selesai</translation> +<translation id="7260367682327802201">Peranti Android anda mungkin menyertakan tetapan yang serupa. Jika pengukuran Iklan dihidupkan dalam Chrome dan pada peranti Android anda, syarikat mungkin dapat mengukur keberkesanan iklan pada semua laman web yang anda lawati dan apl yang anda gunakan.</translation> <translation id="7262004276116528033">Perkhidmatan log masuk ini dihoskan oleh <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Kebenaran dialih keluar untuk 1 laman}other{Kebenaran dialih keluar untuk {NUM_SITES} laman}}</translation> <translation id="7264695323040866038">Gunakan apl <ph name="APP" /> pada bila-bila masa untuk membuka pautan web yang disokong?</translation> @@ -6949,6 +6968,7 @@ <translation id="7406912950279255498">Mod penyongsangan warna</translation> <translation id="7407430846095439694">Import dan Ikat</translation> <translation id="7407504355934009739">Kebanyakan orang menyekat pemberitahuan daripada tapak ini</translation> +<translation id="7408080603962564527">Alamat ini akan kelihatan kepada orang lain</translation> <translation id="740810853557944681">Tambahkan pelayan cetak</translation> <translation id="7409549334477097887">Sangat besar</translation> <translation id="7409599290172516453">Foto Baru-baru Ini</translation> @@ -6987,7 +7007,6 @@ <translation id="7434757724413878233">Pemecutan tetikus</translation> <translation id="7434969625063495310">Tidak dapat menambahkan pelayan cetak. Sila semak konfigurasi pelayan dan cuba lagi.</translation> <translation id="7436921188514130341">Oh, Tidak! Ralat berlaku semasa penamaan semula.</translation> -<translation id="7438495332316988804">Penyemak imbas standard boleh ditemukan dengan menaip "Chrome" dalam Pelancar.</translation> <translation id="7439519621174723623">Tambah nama peranti untuk meneruskan proses ini</translation> <translation id="7441736921018636843">Untuk menukar tetapan ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /> untuk mengalih keluar ungkapan laluan penyegerakan anda</translation> <translation id="7441830548568730290">Pengguna lain</translation> @@ -7264,6 +7283,7 @@ <translation id="7684718995427157417">Untuk membuat dan menguji apl anda, dayakan Titi Nyahpepijat Android (ADB). Harap maklum bahawa tindakan ini membolehkan pemasangan apl Android yang belum disahkan oleh Google dan memerlukan tetapan semula kilang untuk melumpuhkannya.</translation> <translation id="7685049629764448582">Memori JavaScript</translation> <translation id="7685087414635069102">PIN diperlukan</translation> +<translation id="7686086654630106285">Lagi tentang iklan laman yang dicadangkan</translation> <translation id="7686581688229391955">Pilih untuk membenarkan sambungan pada laman ini</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Sahkan kata laluan baharu</translation> @@ -7285,6 +7305,7 @@ <translation id="7704317875155739195">Autolengkap carian dan URL</translation> <translation id="7704521324619958564">Buka Gedung Play</translation> <translation id="7705276765467986571">Tidak dapat memuatkan model penanda halaman.</translation> +<translation id="7705334495398865155">Merawakkan ID perkakasan anda (BSSID) untuk menghalang orang lain daripada menjejaki peranti ini.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Tapak ini telah disekat daripada menggunakan penderia gerakan.</translation> <translation id="7707922173985738739">Gunakan data mudah alih</translation> @@ -7478,6 +7499,7 @@ <translation id="7881483672146086348">Paparkan Akaun</translation> <translation id="7883792253546618164">Hentikan langganan pada bila-bila masa.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Semak 1 laman yang menghantar banyak pemberitahuan}other{Semak {NUM_SITES} laman yang menghantar banyak pemberitahuan}}</translation> +<translation id="7884446017008693258">Tetapan Tempat Liputan</translation> <translation id="788453346724465748">Memuatkan maklumat akaun...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{satu item}other{# item}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7565,6 +7587,7 @@ <translation id="7952904276017482715">ID dijangkakan "<ph name="EXPECTED_ID" />", tetapi ID sebenar ialah "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Masukan</translation> <translation id="7953955868932471628">Urus pintasan</translation> +<translation id="7955105108888461311">Tanya sendiri</translation> <translation id="7955177647836564772">Jika Smart Lock dihidupkan dan telefon anda tidak berkunci, anda tidak perlu memasukkan kata laluan atau PIN</translation> <translation id="7956373551960864128">Pencetak yang disimpan</translation> <translation id="7957074856830851026">Lihat maklumat peranti, seperti nombor siri atau ID aset peranti</translation> @@ -7703,6 +7726,7 @@ <ph name="BEGIN_PARAGRAPH3" />Anda boleh mematikan perkhidmatan ini dalam Tetapan.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Tab</translation> <translation id="8076835018653442223">Akses kepada fail setempat pada peranti anda dilumpuhkan oleh pentadbir anda</translation> +<translation id="8077120325605624147">Mana-mana laman yang anda lawati boleh memaparkan sebarang iklan kepada anda</translation> <translation id="80798452873915119">Laman boleh meminta untuk mengurus tetingkap pada semua paparan anda</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Sesi anda diurus oleh <ph name="MANAGER_NAME" />. Pentadbir boleh memadamkan profil serta memantau trafik rangkaian anda.</translation> @@ -8216,6 +8240,7 @@ <translation id="8557180006508471423">Hidupkan "Google Chrome" dalam Perkhidmatan Lokasi pada Mac anda</translation> <translation id="8557856025359704738">Muat turun yang seterusnya adalah pada <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Kunci laluan</translation> +<translation id="8559961053328923750">Chrome mengehadkan jumlah data yang boleh dikongsi laman itu melalui penyemak imbas untuk mengukur prestasi iklan</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Buka Semua dalam Tetingkap &Baharu}=1{Buka dalam &Tetingkap Baharu}other{Buka Semua ({COUNT}) dalam Tetingkap &Baharu}}</translation> <translation id="8561206103590473338">Gajah</translation> <translation id="8561565784790166472">Teruskan dengan berhati-hati</translation> @@ -8357,6 +8382,7 @@ <translation id="8678933587484842200">Bagaimanakah anda mahu apl ini dilancarkan?</translation> <translation id="8680251145628383637">Log masuk untuk mendapatkan penanda halaman, sejarah, kata laluan dan tetapan anda yang lain pada semua peranti anda. Anda turut akan dilog masuk secara automatik ke perkhidmatan Google anda.</translation> <translation id="8681614230122836773">Chrome menemukan perisian berbahaya pada komputer anda</translation> +<translation id="8681886425883659911">Iklan disekat di laman yang diketahui memaparkan iklan yang mengganggu atau mengelirukan</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> disambungkan dan sedia</translation> <translation id="8687103160920393343">Batalkan <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Tersedia</translation> @@ -8727,6 +8753,7 @@ <translation id="9021662811137657072">Virus dikesan</translation> <translation id="902236149563113779">Tapak biasanya menjejak kedudukan kamera anda untuk ciri AR, seperti permainan atau arah pandu</translation> <translation id="9022847679183471841">Akaun ini telah digunakan pada komputer ini oleh <ph name="AVATAR_NAME" /></translation> +<translation id="9022871169049522985">Laman dan pengiklan boleh mengukur prestasi iklan mereka</translation> <translation id="9023015617655685412">Tanda tab ini...</translation> <translation id="9023909777842748145">Tindakan mematikan ciri ini tidak menjejaskan keupayaan peranti anda menghantar maklumat yang diperlukan untuk perkhidmatan penting seperti kemas kini sistem dan keselamatan.</translation> <translation id="9024127637873500333">&Buka dalam Tab Baharu</translation> @@ -8856,6 +8883,7 @@ <translation id="9128335130883257666">Buka halaman tetapan untuk <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Sambung ke rangkaian</translation> <translation id="9130015405878219958">Mod tidak sah dimasukkan.</translation> +<translation id="9131209053278896908">Sekat laman yang dipaparkan di sini</translation> <translation id="9131487537093447019">Hantar mesej kepada dan terima mesej daripada peranti Bluetooth.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 penanda halaman}other{# penanda halaman}}</translation> <translation id="9134066738478820307">Laman boleh menggunakan pengecam untuk memainkan kandungan yang dilindungi</translation> @@ -8909,6 +8937,7 @@ <translation id="9180281769944411366">Proses ini mungkin mengambil masa beberapa minit. Memulakan bekas Linux.</translation> <translation id="9180380851667544951">Tapak boleh berkongsi skrin anda</translation> <translation id="9182556968660520230">Jangan benarkan laman memainkan kandungan yang dilindungi</translation> +<translation id="9183331776983279456">Chrome memadamkan laman yang melebihi 4 minggu secara automatik. Laman yang anda lawati sekali lagi mungkin muncul semula dalam senarai. Atau anda boleh menyekat laman daripada mencadangkan iklan untuk anda.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Apl}other{# apl}}</translation> <translation id="9186963452600581158">Log masuk menggunakan Akaun Google anak</translation> <translation id="9187967020623675250">Kekunci tidak sepadan. Tekan mana-mana kekunci untuk <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 3b6a5dc..525809c 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">မူရင်းနှင့် ရုပ်ပုံကို တဲဘ်အသစ်တွင် ဖွင့်ရန်</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{<ph name="DEVICE_TYPE" /> ကို 1 ပတ်အတွင်း အပ်ဒိတ်လုပ်ပါ}other{<ph name="DEVICE_TYPE" /> ကို {NUM_WEEKS} ပတ်အတွင်း အပ်ဒိတ်လုပ်ပါ}}</translation> <translation id="1056898198331236512">သတိပေးချက်</translation> +<translation id="1056980582064308040">ဆက်တင်များပြောင်းလဲခြင်းဖြင့် ဟော့စပေါ့ ပြန်စပါမည်။ ဟော့စပေါ့သုံးနေသည့်စက်များ ချိတ်ဆက်မှု ပြုတ်သွားမည်။</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{သင့်ပင်နံပါတ်အသစ်ကို ထည့်ပါ။ ပင်နံပါတ်တစ်ခုသည် အနည်းဆုံး အက္ခရာတစ်လုံး ရှိရမည်ဖြစ်ပြီး စာလုံးများ၊ ဂဏန်းများနှင့် အခြားအက္ခရာများ ပါဝင်နိုင်သည်။}other{သင့်ပင်နံပါတ်အသစ်ကို ထည့်ပါ။ ပင်နံပါတ်တစ်ခုသည် အနည်းဆုံး အက္ခရာ # လုံး ရှိရမည်ဖြစ်ပြီး စာလုံးများ၊ ဂဏန်းများနှင့် အခြားအက္ခရာများ ပါဝင်နိုင်သည်။}}</translation> <translation id="1059484610606223931">ဟိုက်ပါတက်စ် ပို့ဆောင်ရေး ပရိုတိုကော (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">ရပ်ရန်</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />ပံ့ပိုးထားသော လင့်ခ်များ<ph name="END_LINK" /> ဖွင့်နေသည်</translation> <translation id="1272978324304772054">စက်ပစ္စည်းမှ စာရင်းသွင်းထားသည့် ဒိုမိန်းသို့ ဤအသုံးပြုသူ အကောင့်သည် သက်ဆိုင်မှု မရှိပါ။ အကယ်၍ သင်အခြားဒိုမိန်းသို့ စာရင်းပေးသွင်းလိုလျှင် စက်ပစ္စည်းရှာဖွေမှုသို့ ဦးစွာ ဖြတ်သွားရမည်။</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ကို ပိတ်ထားရန်</translation> <translation id="1274997165432133392">ကူကီးနှင့် အခြား ဆိုက်ဒ် အချက်အလက်များ</translation> <translation id="1275718070701477396">ရွေးထား</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> ကို ဖယ်ရှား၍မရပါ</translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">ADB အမှားရှာပြင်ခြင်းကို ဖွင့်ရန် ဤ <ph name="DEVICE_TYPE" /> ကို ပြန်လည်စတင်ရပါမည်။ ၎င်းကို ပိတ်ခြင်းက စက်ရုံထုတ်ဆက်တင်များသို့ ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်သည်။</translation> <translation id="1327527584824210101">သင့်လျှို့ဝှက်ကီးသုံးခြင်း</translation> <translation id="1327794256477341646">သင့်တည်နေရာ လိုအပ်သည့် ဝန်ဆောင်မှုများ အလုပ်လုပ်မည်မဟုတ်ပါ</translation> +<translation id="1329466763986822896">ဤဟော့စပေါ့အတွက် ကိုယ်ရေးအချက်အလက်လုံခြုံမှု တိုးမြှင့်ရန်</translation> <translation id="1331977651797684645">၎င်းသည် ကျွန်ုပ်ဖြစ်ပါသည်။</translation> <translation id="1333489022424033687">သင့်စက်ပေါ်တွင် အခြားဝဘ်ဆိုက်များက သိမ်းဆည်းထားသည့် ဒေတာများကို မဖျက်မချင်း <ph name="ORIGIN" /> ရှိ ဝန်ဆောင်မှုအချို့ကို အသုံးပြုနိုင်မည် မဟုတ်ပါ</translation> <translation id="1333965224356556482">သင့်တည်နေရာကိုကြည့်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation> @@ -595,6 +598,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{သင်၏ရုပ်ဖျက် ဝင်ဒိုးကို ပြန်ဖွင့်မည် မဟုတ်ပါ။}other{သင်၏ရုပ်ဖျက် ဝင်ဒိုး # ခုကို ပြန်ဖွင့်မည် မဟုတ်ပါ။}}</translation> <translation id="1546280085599573572">သင်မူလစာမျက်နှာခလုတ်ကို နှိပ်လျှင် ပြမည့် စာမျက်နှာပြမည်အား ဤအိတ်စတန်းရှင်းမှ ပြောင်းလဲပြီး ဖြစ်၏။</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> သည် အောက်ပါတို့ပြုလုပ်နိုင်သည့် <ph name="EXTENSION_TYPE" /> ကို ထည့်သွင်းလိုသည်-</translation> +<translation id="1547123415014299762">ပြင်ပကုမ္ပဏီ၏ကွတ်ကီးများကို ခွင့်ပြုထားသည်</translation> <translation id="1547808936554660006">Powerwash သည် ထည့်သွင်းထားသော eSIM ပရိုဖိုင်များကို ဖယ်ရှားမည်မဟုတ်ကြောင်း ကျွန်ုပ်နားလည်ပါသည်</translation> <translation id="1547936895218027488">ဘေးအကန့်သင်္ကေတကို နှိပ်ပြီး ၎င်းကိုဖွင့်ပါ</translation> <translation id="1549275686094429035">ARC ဖွင့်ထားသည်</translation> @@ -768,6 +772,7 @@ <translation id="168715261339224929">သင်၏ဝဘ်လိပ်စာများကို သင့်စက်များအားလုံးတွင် ရယူနိုင်ရန် စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ။</translation> <translation id="1688867105868176567">ဝဘ်ဆိုက်ဒေတာများကို ရှင်းလင်းလိုပါသလား။</translation> <translation id="1688935057616748272">စာလုံးတစ်လုံး ရိုက်ရန်</translation> +<translation id="1689333818294560261">နာမည်ပြောင်</translation> <translation id="168991973552362966">အနီးတဝိုက်ရှိ ပရင်တာကို ထည့်ရန်</translation> <translation id="1689945336726856614">&URL ကို မိတ္တူကူးခြင်း</translation> <translation id="1692115862433274081">အခြားအကောင့်ကို သုံးရန်</translation> @@ -1406,6 +1411,7 @@ <translation id="2247870315273396641">အသံ အစမ်းနားထောင်ခြင်း</translation> <translation id="2249111429176737533">တဘ်ဝင်းဒိုးအဖြစ် ဖွင့်ရန်</translation> <translation id="2249605167705922988">ဥပမာ၊ ၁-၅၊ ၈၊ ၁၁-၁၃</translation> +<translation id="2249635629516220541">သင့်ကိုကြော်ငြာပြရန် ဝဘ်ဆိုက်များ အသုံးပြုသည့် အချက်အလက်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်သည်</translation> <translation id="2251218783371366160">စနစ် ကြည့်ရှုမှုဖြင့် ဖွင့်ရန်</translation> <translation id="225163402930830576">ကွန်ယက်များကို ပြန်လည်ဆန်းသစ်ပါ</translation> <translation id="2251809247798634662">ရုပ်ဖျက် ဝင်ဒိုးအသစ်</translation> @@ -1523,7 +1529,6 @@ <translation id="2329597144923131178">သင့်စာညှပ်များ၊ မှတ်တမ်း၊ စကားဝှက်များနှင့် အခြား ဆက်တင်များအား သင်၏ ကိရိယာများ အားလုံးတွင် ရရှိရန် လက်မှတ်ထိုး ဝင်ပါ</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> တွင် သိမ်းထားသောစက်များကို ဖွင့်၍မရပါ။ သင်၏ အင်တာနက်ချိတ်ဆက်မှုကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="2332131598580221120">စတိုးမှာ ကြည့်ရန်</translation> -<translation id="2332192922827071008">စနစ်သတ်မှတ်ချက်များ ဖွင့်ရန်</translation> <translation id="2332515770639153015">‘အရည်အသွေးမြှင့် ဘေးကင်းလုံခြုံသည့် အသုံးပြုမှု’ ဖွင့်ထားသည်</translation> <translation id="2332742915001411729">ပုံသေသို့ ပြန်လည်သတ်မှတ်</translation> <translation id="2332948465534020594">မနှောင့်ယှက်ရ ကို ဖွင့်ထားသည်</translation> @@ -1857,6 +1862,7 @@ <translation id="2640299212685523844">GTK သုံးရန်</translation> <translation id="264083724974021997">သင့်ဖုန်းသို့ ချိတ်ဆက်ရန် - ဒိုင်ယာလော့ဂ်</translation> <translation id="2642111877055905627">ဘောလုံး</translation> +<translation id="2643064289437760082">သင်၏ ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာအား ဖျက်ခြင်းဖြင့် ကြော်ငြာဆိုင်ရာ တိုင်းတာမှုဒေတာကို အချိန်မရွေးဖျက်နိုင်သည်</translation> <translation id="2643698698624765890">Window မီနူးထဲမှာ တိုးချဲ့မှုများကို ကလစ်ခြင်းဖြင့် သင်၏ တိုးချဲ့မှုများကို စီမံကွပ်ကဲပါ။</translation> <translation id="2645047101481282803">သင့်စက်ပစ္စည်းကို <ph name="PROFILE_NAME" /> က စီမံခန့်ခွဲသည်</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2316,6 +2322,7 @@ <translation id="3036327949511794916">ဤ <ph name="DEVICE_TYPE" /> ကိုပြန်ပို့ရန် နောက်ဆုံးသတ်မှတ်ရက် ကျော်သွားပါပြီ။</translation> <translation id="3036546437875325427">ဖလက်ရှ်မီးကို ဖွင့်ရန်</translation> <translation id="3037754279345160234">ဒိုမိန်းသို့ ချိတ်ဆက်ခြင်း စီစဉ်သတ်မှတ်မှုကို ခွဲခြမ်းစိတ်ဖြာ၍ မရပါ။ သင်၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> +<translation id="3038272154009688107">ဝဘ်ဆိုက်အားလုံး ကြည့်ရန်</translation> <translation id="3038612606416062604">ပရင်တာကို မိမိကိုယ်တိုင် ထည့်ရန်</translation> <translation id="3039491566278747710">စက်ပစ္စည်းပေါ်တွင် အော့ဖ်လိုင်းမူဝါဒကို ထည့်သွင်း၍မရပါ။</translation> <translation id="3043016484125065343">သင့်လိပ်စာများကြည့်ရန် လက်မှတ်ထိုးဝင်ပါ</translation> @@ -2552,6 +2559,7 @@ <translation id="3289668031376215426">အလိုအလျောက် စာလုံးကြီးပြောင်းရန်</translation> <translation id="3289856944988573801">မွမ်းမံမှုများကို စစ်ကြည့်ရန်၊ ကျေးဇူးပြုပြီး အီသာနက် သို့မဟုတ် ကြိုးမဲ့ကို အသုံးပြုပါ။</translation> <translation id="3290249595466894471">အန္တရာယ်အသစ်များကို ရှာဖွေရာ၌ အထောက်အကူဖြစ်စေရန် စာမျက်နှာ၊ ဒေါင်းလုဒ်၊ နောက်ဆက်တွဲလုပ်ဆောင်ချက်နှင့် စနစ်အချက်အလက်များ၏ နမူနာအချို့ကိုလည်း ပို့သည်</translation> +<translation id="3293181007446299124">ကြည့်ရှုမှုမှတ်တမ်းကို သင့်စက်တွင် သီးသန့်ထားရှိပြီး သင့်အထောက်အထားကို ကာကွယ်ရန် အစီရင်ခံစာများအား စောင့်ဆိုင်း၍ ပို့သည်</translation> <translation id="3293644607209440645">ဤစာမျက်နှာကို ပို့ရန်</translation> <translation id="32939749466444286">Linux ထည့်သွင်းမှုစနစ် မစတင်ပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ။</translation> <translation id="3294437725009624529">ဧည့်သည်</translation> @@ -3331,6 +3339,7 @@ <translation id="3984431586879874039">ဤဝဘ်ဆိုက်ကို သင့်လုံခြုံရေးကီး ကြည့်ခွင့်ပြုလိုသလား။</translation> <translation id="398477389655464998">‘မြင်သာအောင်လုပ်ထားသော စာသား’ သို့ လင့်ခ်ကို မိတ္တူကူးခြင်း</translation> <translation id="3984862166739904574">‘အမြန်အဖြေများ’ အဓိပ္ပာယ်ဖွင့်ဆိုခြင်း</translation> +<translation id="3985022125189960801">ဝဘ်ဆိုက်တစ်ခုကို သင်နှစ်သက်သည့်အရာအား ခန့်မှန်းနိုင်သော ဝဘ်ဆိုက်များစာရင်းသို့ ပြန်ထည့်လိုက ထည့်နိုင်သည်</translation> <translation id="3987544746655539083">ဤဝဘ်ဆိုက်ကို သင့်တည်နေရာသုံးခွင့် ဆက်ပိတ်ထားရန်</translation> <translation id="3987938432087324095">မကြားလိုက်ပါ။</translation> <translation id="3987993985790029246">လင့်ခ်ကူးယူမည်</translation> @@ -3708,6 +3717,7 @@ <translation id="4366138410738374926">ပုံနှိပ်ခြင်း စတင်ပါပြီ</translation> <translation id="4367513928820380646">ဖယ်ရှားထားသော ခွင့်ပြုချက်များ ပြန်ကြည့်ရန်</translation> <translation id="4369215744064167350">ဝဘ်ဆိုက်တောင်းဆိုချက် အတည်ပြုလိုက်သည်</translation> +<translation id="4369735607080757018">ဝဘ်ဆိုက်များ၏ ကြော်ငြာစွမ်းဆောင်ရည် တိုင်းတာရန် ကြော်ငြာပြသချိန်ကဲ့သို့ ကန့်သတ်ဒေတာအမျိုးအစားများကို ၎င်းတို့ကြားတွင် မျှဝေသည်</translation> <translation id="4370975561335139969">အီးမေးလိပ်စာနှင့် သင်ရိုက်ထည့်သော စကားဝှက် ကိုက်ညီမှု မရှိပါ</translation> <translation id="4374831787438678295">Linux ထည့်သွင်းကိရိယာ</translation> <translation id="4375035964737468845">ဒေါင်းလုပ်လုပ်ထားသည့် ဖိုင်များ ဖွင့်ရန်</translation> @@ -3728,6 +3738,7 @@ <translation id="4385146930797718821">ဖန်သားပြင်ဓာတ်ပုံကို ကလစ်ဘုတ်သို့ မိတ္တူကူးပြီးပါပြီ</translation> <translation id="4385905942116811558">ဘလူးတုသ်နှင့် USB ကိရိယာများကို ရှာနေသည်</translation> <translation id="4387890294700445764">ကျိုးပေါက်ထားသည့် စကားဝှက်များ</translation> +<translation id="4388650384344483842">အနည်းဆုံး အက္ခရာ ၈ လုံး သုံးပါ</translation> <translation id="4389091756366370506">အသုံးပြုသူ <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />၊ <ph name="SECOND_SWITCH" />၊ <ph name="THIRD_SWITCH" /> နှင့် နောက်ထပ် အသွင်တူခလုတ် <ph name="NUMBER_OF_OTHER_SWITCHES" /> ခု</translation> <translation id="439266289085815679">ဘလူးတုသ် စီစဉ်သတ်မှတ်မှုကို <ph name="USER_EMAIL" /> က ထိန်းချုပ်ထားသည်။</translation> @@ -4050,6 +4061,7 @@ <translation id="4666472247053585787">သင့် <ph name="DEVICE_TYPE" /> တွင် သင်၏ဖုန်းမှ အကြောင်းကြားချက်များကို ကြည့်ခြင်း</translation> <translation id="4666911709726371538">အက်ပ်များ ပိုပြပါ</translation> <translation id="4667027203988048332">အသုံးပြုသည့် ဒေတာ-</translation> +<translation id="4668279686271488041">ကြော်ငြာဆိုင်ရာ တိုင်းတာမှုဒေတာကို သင့်စက်မှ ပုံမှန်ဖျက်သည်</translation> <translation id="4672759829555593783"><ph name="FILE_NAME" /> ကို ယခုဖွင့်ရန်</translation> <translation id="46733273239502219">ထည့်သွင်းထားသည့် အက်ပ်များအတွင်းရှိ အော့ဖ်လိုင်းဒေတာများအားလုံးကိုလည်း ရှင်းလင်းလိုက်ပါမည်</translation> <translation id="4673442866648850031">စတိုင်လပ်စ်ခဲတံကို ဖြုတ်ယူလိုက်သည့်အခါ ၎င်း၏တူးလ်စ်ကို ဖွင့်ပေးရန်</translation> @@ -4243,6 +4255,7 @@ <translation id="485480310608090163">နောက်ထပ် ဆက်တင်များနှင့် ခွင့်ပြုချက်များ</translation> <translation id="4858913220355269194">ဖရစ်ဇ်</translation> <translation id="4862642413395066333">OCSP တုံ့ပြန်မှုများကို လက်မှတ်ထိုးနေ</translation> +<translation id="4863702650881330715">တွဲဖက်သုံးနိုင်မှုကို တိုးရန်</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (မူရင်း) ဟု ယူဆရသည်</translation> <translation id="4864805589453749318">ကျောင်းအကောင့်ထည့်ရန် ခွင့်ပြုချက်ပေးသည့် မိဘကို ရွေးပါ။</translation> <translation id="486635084936119914">ဒေါင်းလုဒ်လုပ်ပြီးနောက် အချို့ဖိုင်အမျိုးအစားများကို အလိုအလျောက်ဖွင့်ပါ</translation> @@ -4291,7 +4304,6 @@ <translation id="4893336867552636863">သင်၏ ရှာဖွေမှု ဒေတာကို ဤကိရိယာထဲမှ ထာဝရ ဖျက်ပစ်ပါမည်။</translation> <translation id="4893454800196085005">ကောင်း - DVD</translation> <translation id="4893522937062257019">လော့ခ်ချထားသည့်မျက်နှာပြင်ပေါ်တွင်</translation> -<translation id="4897496410259333978">နောက်ထပ်အချက်အလက်အတွက် သင့်စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> <translation id="4898011734382862273">အသိမှတ်ပြုလက်မှတ် "<ph name="CERTIFICATE_NAME" />" သည် စီမံခန့်ခွဲမှုဆိုင်ရာ အသိမှတ်ပြုလက်မှတ် ထုတ်ပေးသူကို ကိုယ်စားပြုပါသည်</translation> <translation id="4899052647152077033">အရောင်များကို ပြောင်းပြန်လှန်ရန်</translation> <translation id="4899696330053002588">ကြော်ငြာများ ပါဝင်သည်</translation> @@ -4489,6 +4501,7 @@ <translation id="5094721898978802975">ဒေသခံ အပလီကေးရှင်းများဖြင့် ပူးပေါင်းလုပ်ဆောင်ခြင်းဖြင့် ဆက်သွယ်မည်</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ကွန်ရက်သို့ ချိတ်ဆက်၍ မရခဲ့ပါ: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">တည်နေရာအသုံးပြုခြင်းအကြောင်း ပိုမိုလေ့လာရန်</translation> +<translation id="5097349930204431044">ဝဘ်ဆိုက်များက သင်နှစ်သက်သည့်အရာကို သိရှိနိုင်ပြီး သင်ဆက်လက်၍ ကြည့်ရှုသည်နှင့်အမျှ ကြော်ငြာများ အကြံပြုနိုင်သည်</translation> <translation id="5097649414558628673">ကိရိယာ - <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ကာဆာရပ်သည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation> <translation id="5101683448725092498">သင်၏အရာများကို အရန်သိမ်းခြင်း</translation> @@ -4671,6 +4684,7 @@ <translation id="5275352920323889391">ခွေး</translation> <translation id="527605719918376753">တဘ်အား အသံပိတ်ရန်</translation> <translation id="527605982717517565"><ph name="HOST" /> တွင် အမြဲတမ်း JavaScript ခွင့်ပြုရန်</translation> +<translation id="5276357196618041410">ဦးစွာအကောင့်ဝင်ခြင်းမရှိဘဲ စီစဉ်သတ်မှတ်ချက်ကို သိမ်း၍မရပါ</translation> <translation id="5277127016695466621">ဘေးအကန့် ပြသရန်</translation> <translation id="5278823018825269962">အခြေအနေ Id</translation> <translation id="5279600392753459966">အားလုံး ပိတ်ဆို့ရန်</translation> @@ -5825,7 +5839,6 @@ <translation id="6347010704471250799">အကြောင်းကြားချက်ပြခြင်း</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ထည့်သွင်းရန်</translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">စမ်းသပ် (အယ်လ်ဖာအရည်အသွေးရှိ) ဘရောင်ဇာ။ အပြင်အဆင်အချို့ မပါဝင်ပါ (သို့) မပြည့်စုံပါ။ ပြဿနာများ တိုင်ကြားရန်- အကူအညီ > "ပြဿနာတိုင်ကြားရန်..." သို့ သွားပါ။</translation> <translation id="635609604405270300">ကိရိယာကို ဆက်ဖွင့်ထားပါ</translation> <translation id="63566973648609420">သင့်စကားဝှက်ရှိသူသာ သင်အသွင်ဝှက်ထားသည့် ဒေတာများကို ဖတ်နိုင်မည် ဖြစ်သည်။ စကားဝှက်ကို Google သို့ပို့ခြင်း သို့မဟုတ် သိမ်းဆည်းထားခြင်း မရှိပါ။ သင့်စကားဝှက်ကို မေ့သွားလျှင် သို့မဟုတ် ဤဆက်တင်ကို ပြောင်းလဲလိုလျှင် <ph name="BEGIN_LINK" />စင့်ခ်လုပ်ခြင်းကို ပြန်လည်သတ်မှတ်ပေးရန်<ph name="END_LINK" /> လိုအပ်ပါသည်။</translation> <translation id="6357305427698525450">ပံ့ပိုးထားသောလင့်ခ်အချို့ကို <ph name="APP_NAME" /> (သို့) <ph name="APP_NAME_2" /> တွင် ဖွင့်နိုင်ပါဦးမည်။</translation> @@ -6163,6 +6176,7 @@ <translation id="6670767097276846646">နောက်ဆက်တွဲအချို့သည် Chrome တွင် ရှာဖွေရေး အင်ဂျင်များ ထည့်နိုင်သည်</translation> <translation id="6671320560732140690">{COUNT,plural, =1{လိပ်စာတစ်ခု}other{လိပ်စာ # ခု}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" /> က စီမံခန့်ခွဲမှုကို စနစ်ထည့်သွင်းနေသည်</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ထည့်ရန်</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">စင့်ခ်လုပ်ခြင်းစတင်ရန် သင်၏စကားဝှက်စာ ထည့်ပါ</translation> <translation id="6675665718701918026">ညွှန်းပြ ကိရိယာကို ချိတ်ဆက်ထားသည်</translation> @@ -6246,6 +6260,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (ရုပ်ဖျက်)</translation> <translation id="6756157672127672536">Files အက်ပ်က သင် Google Drive၊ ပြင်ပသိုလှောင်ခန်း (သို့) သင့် ChromeOS စက်များတွင် သိမ်းထားသော ဖိုင်များကို အမြန်သုံးခွင့်ပေးသည်။</translation> <translation id="6756643207511618722">စကားသံ အင်ဂျင်များ</translation> +<translation id="6757431299485455321">အခြားစက်များ ဤဟော့စပေါ့ကို ရှာတွေ့ရန် ကူညီပေးသည်။</translation> <translation id="6758056191028427665">ကျွန်ုပ်တို့၏ ဝန်ဆောင်မှုများအတွက် စိတ်ကျေနပ်မှုမည်မျှရှိကြောင်း ပြောပြပေးပါ။</translation> <translation id="6759193508432371551">စက်ရုံဆက်တင် ပြန်လည်သပ်မှတ်</translation> <translation id="6761431452438552910">သင့်ဘလူးတုသ်သုံးစက်သည် တွဲချိတ်ခြင်းမုဒ်တွင် ရှိပြီး အနီးအနားတွင် ရှိနေကြောင်း သေချာပါစေ။ သင်ယုံကြည်ရသော စက်များနှင့်သာ တွဲချိတ်ပါ။</translation> @@ -6345,6 +6360,7 @@ <translation id="6833479554815567477"><ph name="GROUP_NAME" /> အုပ်စုမှ တဘ်ကို ဖယ်ရှားလိုက်သည် - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">ပါးနပ်ပြီး လုံခြုံမှုရှိသော ဘရောင်ဇာသို့ ပြောင်းလိုက်ပါ</translation> <translation id="6833996806551876956">'ပုဂ္ဂိုလ်ရေး လုံခြုံသည့်နေရာ' အစမ်းသုံးခြင်း</translation> +<translation id="6835712061486505758">အခြားစက်များသို့ အင်တာနက်ပေးရန် Wi-Fi ဟော့စပေါ့တစ်ခု ပြုလုပ်နိုင်သည်။ <ph name="BEGIN_LINK_LEARN_MORE" />ပိုမိုလေ့လာရန်<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">သင့် <ph name="DEVICE_TYPE" /> ကို အသစ်မွမ်းမံရန် ကျေးဇူးပြု၍ အင်တာနက်နှင့် ချိတ်ဆက်ပါ။</translation> <translation id="6839225236531462745">အသိမှတ်ပြု လက်မှတ် ဖျက်ခြင်း မှားယွင်းမှု</translation> <translation id="6839916869147598086">အကောင့်ဝင်ရောက်ခြင်းကို ပြောင်းထားသည်</translation> @@ -6506,6 +6522,7 @@ <translation id="697508444536771064">Linux ကို အပြီးပိတ်ရန်</translation> <translation id="6975361011348772931">ဖတ်ပြီးပြောင်းရန် တောင်းဆိုထားသည်</translation> <translation id="6978121630131642226">ရှာဖွေရေး အင်ဂျင်များ</translation> +<translation id="6978717888677691380">သင်ပိတ်ထားသည့် ဝဘ်ဆိုက်များ</translation> <translation id="6979041727349121225">စွမ်းအင်ချွေတာစနစ်</translation> <translation id="6979044105893951891">စီမံခန့်ခွဲထားသည့် ဧည့်သည်စက်ရှင်များကို ဖွင့်ခြင်းနှင့် ပိတ်ခြင်း</translation> <translation id="6979440798594660689">အသံပိတ်ရန် (မူရင်း)</translation> @@ -6597,6 +6614,7 @@ <translation id="7047059339731138197">နောက်ခံပုံ ရွေးမည်</translation> <translation id="7048457618657122233"><ph name="SHARE_TARGET" /> သို့ လင့်ခ်မျှဝေရန်</translation> <translation id="7049293980323620022">ဖိုင်ကို သိမ်းလိုသလား။</translation> +<translation id="7050037487872780845">ဟော့စပေါ့ စီစဉ်သတ်မှတ်ချက် မမှန်ကန်ပါ</translation> <translation id="7052237160939977163">စွမ်းဆောင်ရည် လမ်းကြောင်းလိုက်ခြင်း အချက်လက် ပို့</translation> <translation id="7053983685419859001">ပိတ်ဆို့ရန်</translation> <translation id="7055152154916055070">တစ်ဆင့်ပြန်ညွှန်ခြင်းကို ပိတ်ထားသည်−</translation> @@ -6801,6 +6819,7 @@ <translation id="7258192266780953209">ပြောင်းလဲမှုများ</translation> <translation id="7258225044283673131">ဤအပလီကေးရှင်းက တုံ့ပြန်မှုမရှိပါ။ အက်ပ်ကိုပိတ်ရန် "မဖြစ်မနေပိတ်ရန်" ကို ရွေးပါ။</translation> <translation id="7260186537988033909">Kiosk နှင့် သတ်မှတ်စက် စာရင်းသွင်းမှု ပြီးပါပြီ</translation> +<translation id="7260367682327802201">သင့် Android စက်တွင် အလားတူဆက်တင် ပါဝင်နိုင်သည်။ Chrome နှင့် သင့် Android စက်တွင် ‘ကြော်ငြာတိုင်းတာခြင်း’ ကို ဖွင့်ထားပါက ကုမ္ပဏီသည် သင်ဝင်ရောက်ကြည့်ရှုသည့် ဝဘ်ဆိုက်များနှင့် သင်အသုံးပြုသည့် အက်ပ်များတွင် ကြော်ငြာတစ်ခု၏ထိရောက်မှုကို တိုင်းတာနိုင်သည်။</translation> <translation id="7262004276116528033">ဤ လက်မှတ်ထိုး ဝင်ရေး ဝန်ဆောင်မှုကို <ph name="SAML_DOMAIN" />မှ စီမံပေးပါသည်</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{ဝဘ်ဆိုက် ၁ ခုအတွက် ခွင့်ပြုချက် ဖယ်ရှားလိုက်သည်}other{ဝဘ်ဆိုက် {NUM_SITES} ခုအတွက် ခွင့်ပြုချက် ဖယ်ရှားလိုက်သည်}}</translation> <translation id="7264695323040866038">ပံ့ပိုးထားသော ဝဘ်လင့်ခ်များဖွင့်ရန် <ph name="APP" /> အက်ပ်ကို အမြဲတမ်းသုံးမလား။</translation> @@ -6944,6 +6963,7 @@ <translation id="7406912950279255498">အရောင်ပြောင်းပြန်ပြုလုပ်သည့်မုဒ်</translation> <translation id="7407430846095439694">တင်သွင်းရန်နှင့် ချိတ်တွဲရန်</translation> <translation id="7407504355934009739">လူအများစုသည် ဤဝဘ်ဆိုက်မှ အကြောင်းကြားချက်များကို ပိတ်ကြသည်</translation> +<translation id="7408080603962564527">၎င်းကို အခြားသူများ မြင်ရမည်</translation> <translation id="740810853557944681">ပုံနှိပ်စက်ဆာဗာတစ်ခု ထည့်ခြင်း</translation> <translation id="7409549334477097887">အလွန်ကြီး</translation> <translation id="7409599290172516453">လတ်တလော ဓာတ်ပုံများ</translation> @@ -6982,7 +7002,6 @@ <translation id="7434757724413878233">မောက်စ် အရှိန်မြှင့်ရန်</translation> <translation id="7434969625063495310">ပုံနှိပ်စက်ဆာဗာကို ထည့်၍မရပါ။ ဆာဗာ၏ စီစဉ်သတ်မှတ်ချက်ကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="7436921188514130341">စိတ်မကောင်းပါ။ အမည်ပြောင်းနေစဉ် မှားယွင်းမှုတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။</translation> -<translation id="7438495332316988804">Launcher တွင်းသို့ “Chrome” ဟု ရိုက်ထည့်ခြင်းဖြင့် ပုံမှန်ဘရောင်ဇာကို တွေ့နိုင်ပါသည်။</translation> <translation id="7439519621174723623">ရှေ့ဆက်ရန် စက်အမည်ထည့်ပါ</translation> <translation id="7441736921018636843">ဤဆက်တင်ကို ပြောင်းရန်အတွက် <ph name="BEGIN_LINK" />စင့်ခ်ကို ပြင်ဆင်သတ်မှတ်<ph name="END_LINK" /> ပြီး သင်၏ စင့်ခ်လုပ်ထားသည့် စကားဝှက်စာကို ဖယ်ရှားပါ</translation> <translation id="7441830548568730290">အခြားအသုံးပြုသူများ</translation> @@ -7259,6 +7278,7 @@ <translation id="7684718995427157417">သင်၏အက်ပ်များကို ပြုလုပ်ပြီး စမ်းသပ်ရန် 'Android အမှားပြင်ဆင်မှုတံတား' (ADB) ဖွင့်ပါ။ ယခုလုပ်ဆောင်ချက်သည် Google က အတည်မပြုရသေးသော Android အက်ပ်များကို ထည့်သွင်းရန်ခွင့်ပြုပြီး ပိတ်ရန်အတွက် စက်ရုံထုတ်ဆက်တင် ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ကြောင်း သတိပြုပါ။</translation> <translation id="7685049629764448582">JavaScript မှတ်ဉာဏ်</translation> <translation id="7685087414635069102">ပင်နံပါတ် လိုအပ်သည်</translation> +<translation id="7686086654630106285">ဝဘ်ဆိုက်က အကြံပြုထားသည့် ကြော်ငြာဆိုင်ရာ နောက်ထပ်အချက်အလက်</translation> <translation id="7686581688229391955">ဤဝဘ်ဆိုက်တွင် နောက်ဆက်တွဲများခွင့်ပြုရန်အတွက် ရွေးပါ</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">စကားဝှက်အသစ်ကို အတည်ပြုပါ</translation> @@ -7280,6 +7300,7 @@ <translation id="7704317875155739195">ရှာဖွေမှုများနှင့် URL များကို အလိုအလျောက်ဖြည့်ခြင်း</translation> <translation id="7704521324619958564">Play စတိုးဖွင့်ပါ</translation> <translation id="7705276765467986571">စာညှပ် မော်ဒယ်ကို တင် မပေးနိုင်ခဲ့ပါ။</translation> +<translation id="7705334495398865155">အခြားသူများ ဤစက်ကို ခြေရာခံခြင်းမှ ကာကွယ်ပေးရန် သင့်ဟာဒ်ဝဲ ID (BSSID) ကို ကျပန်းပြုလုပ်ပေးသည်။</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">ဤဝဘ်ဆိုက်အား လှုပ်ရှားမှု အာရုံခံစနစ်များ အသုံးပြုခြင်းကို တားမြစ်ထားသည်။</translation> <translation id="7707922173985738739">မိုဘိုင်းဒေတာကို သုံးရန်</translation> @@ -7473,6 +7494,7 @@ <translation id="7881483672146086348">အကောင့်ကို ကြည့်ရန်</translation> <translation id="7883792253546618164">မှာယူမှုကို အချိန်မရွေး ရပ်ဆိုင်းနိုင်သည်။</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{မကြာသေးမီက အကြောင်းကြားချက်များစွာ ပို့ထားသည့် ဝဘ်ဆိုက် ၁ ခု ကို ပြန်ကြည့်ရန်}other{မကြာသေးမီက အကြောင်းကြားချက်များစွာ ပို့ထားသည့် ဝဘ်ဆိုက် {NUM_SITES} ခု ကို ပြန်ကြည့်ရန်}}</translation> +<translation id="7884446017008693258">ဟော့စပေါ့ ဆက်တင်</translation> <translation id="788453346724465748">အကောင့်အချက်အလက်ကို ဖွင့်နေသည်...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{ဖိုင်တစ်ဖိုင်}other{ဖိုင် # ဖိုင်}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7560,6 +7582,7 @@ <translation id="7952904276017482715">ID "<ph name="EXPECTED_ID" />" ဖြစ်ရမည့်အစား ID မှာ "<ph name="NEW_ID" />" ဖြစ်နေသည်</translation> <translation id="7953669802889559161">လက်ကွက်များ</translation> <translation id="7953955868932471628">ဖြတ်လမ်းများကို စီမံကွပ်ကဲရန်</translation> +<translation id="7955105108888461311">လူကိုယ်တိုင် မေးရန်</translation> <translation id="7955177647836564772">Smart Lock ဖွင့်ထားပြီး သင့်ဖုန်းပွင့်နေလျှင် စကားဝှက် (သို့) ပင်နံပါတ်ထည့်ရန် မလိုအပ်ပါ</translation> <translation id="7956373551960864128">သင်သိမ်းဆည်းထားသည့် ပုံနှိပ်စက်များ</translation> <translation id="7957074856830851026">နံပါတ်စဉ် (သို့) ပိုင်ဆိုင်မှု ID ၏ အချက်အလက်များ ကြည့်ခြင်း</translation> @@ -7697,6 +7720,7 @@ <ph name="BEGIN_PARAGRAPH3" />၎င်းကို 'ဆက်တင်များ' တွင် ပိတ်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">တဘ်များ</translation> <translation id="8076835018653442223">သင်၏စီမံအုပ်ချုပ်သူက သင့်စက်အတွင်းရှိဖိုင်များ သုံးခွင့်ကို ပိတ်ထားသည်</translation> +<translation id="8077120325605624147">သင်ဝင်ကြည့်သည့် ဝဘ်ဆိုက်တိုင်းက မည်သည့်ကြော်ငြာကိုမဆို ပြနိုင်သည်</translation> <translation id="80798452873915119">သင့်ဖန်သားပြင်အားလုံးတွင် ဝင်းဒိုးများစီမံရန်အတွက် ဝဘ်ဆိုက်များကို တောင်းဆိုခွင့်ပြုရန်</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">သင့်စက်ရှင်ကို <ph name="MANAGER_NAME" /> က စီမံသည်။ စီမံခန့်ခွဲသူများက သင့်ပရိုဖိုင်ကို ဖျက်နိုင်သကဲ့သို့ သင့်ကွန်ရက်ဒေတာ စီးဆင်းမှုကိုလည်း စောင့်ကြည့်နိုင်သည်။</translation> @@ -8209,6 +8233,7 @@ <translation id="8557180006508471423">သင့် Mac ပေါ်ရှိ ‘တည်နေရာဝန်ဆောင်မှုများ’ တွင် “Google Chrome” ဖွင့်ပါ</translation> <translation id="8557856025359704738">လာမည့်ဒေါင်းလုဒ်က <ph name="NEXT_DATE_DOWNLOAD" /> တွင် ဖြစ်သည်။</translation> <translation id="8559858985063901027">လျှို့ဝှက်ကီးများ</translation> +<translation id="8559961053328923750">Chrome က ကြော်ငြာစွမ်းဆောင်ရည်ကို တိုင်းတာရန် ဘရောင်ဇာမှတစ်ဆင့် ဝဘ်ဆိုက်များ မျှဝေနိုင်သည့် ဒေတာစုစုပေါင်းပမာဏကိုကန့်သတ်သည်</translation> <translation id="8560327176991673955">{COUNT,plural, =0{အားလုံးကို &ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}=1{&ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}other{({COUNT}) ခုလုံးကို &ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}}</translation> <translation id="8561206103590473338">ဆင်</translation> <translation id="8561565784790166472">သတိထားပြီး ရှေ့ဆက်ပါ</translation> @@ -8350,6 +8375,7 @@ <translation id="8678933587484842200">ဤအပလီကေးရှင်းကို မည်ကဲ့သို့ စတင်စေလိုပါသနည်း။</translation> <translation id="8680251145628383637">သင်၏ ကိရိယာများ အားလုံးတွင် သင်၏ စာညှပ်များ၊ မှတ်တမ်း နှင့် အခြား ဆက်တင်များကို ရယူရန် လက်မှတ်ထိုးဝင်ပါ။ သင့်ကို သင်၏ Google ၀န်ဆောင်မှုများသို့ပါ သင့်ကို အလိုအလျောက် ပေးဝင်မည်။</translation> <translation id="8681614230122836773">Chrome က သင့်ကွန်ပျူတာတွင် အန္တရာယ်ရှိသောဆော့ဖ်ဝဲ တွေ့ထားသည်</translation> +<translation id="8681886425883659911">ကြားဖြတ်သော (သို့) အထင်မှားစေသော ကြော်ငြာများပြသည့် ဝဘ်ဆိုက်များတွင် ကြော်ငြာများကို ပိတ်ထားသည်</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> ကို ချိတ်ဆက်ထားပြီး အဆင်သင့်ဖြစ်ပါပြီ</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> ကို မလုပ်တော့</translation> <translation id="8688672835843460752">ရနိုင်သည်</translation> @@ -8720,6 +8746,7 @@ <translation id="9021662811137657072">ဗိုင်းရပ်စ် ရှာတွေ့ခဲ့</translation> <translation id="902236149563113779">ဂိမ်းများ (သို့) ကြိုတင်သတိပေး ညွှန်ကြားချက်များကဲ့သို့ AR ဝန်ဆောင်မှုများအတွက် ဝဘ်ဆိုက်များက သင့်ကင်မရာအနေအထားကို ခြေရာခံလေ့ရှိသည်</translation> <translation id="9022847679183471841">ဤအကောင့်ကို <ph name="AVATAR_NAME" /> က ဤကွန်ပျူတာပေါ်တွင် အသုံးပြုပြီးသားဖြစ်သည်။</translation> +<translation id="9022871169049522985">ဝဘ်ဆိုက်နှင့် ကြော်ငြာရှင်များက ၎င်းတို့ကြော်ငြာများ၏ စွမ်းဆောင်ရည်ကို တိုင်းတာနိုင်သည်</translation> <translation id="9023015617655685412">ဤတဘ်၏လိပ်စာကို မှတ်ခြင်း...</translation> <translation id="9023909777842748145">ဤဝန်ဆောင်မှုကို ပိတ်ခြင်းအားဖြင့် စနစ်အပ်ဒိတ်များနှင့် လုံခြုံရေးကဲ့သို့သော အရေးကြီးသည့် အချက်အလက်များကို သင့်စက်ပစ္စည်းက ပို့ခြင်းမပို့ခြင်းအပေါ် သက်ရောက်မှု မရှိပါ။</translation> <translation id="9024127637873500333">&တဘ် အသစ်ထဲမှာ ဖွင့်</translation> @@ -8849,6 +8876,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" /> အတွက် ဆက်တင်များစာမျက်နှာကို ဖွင့်ပေးသည်</translation> <translation id="9128870381267983090">ကွန်ယက်သို့ ချိတ်ဆက်ပါ</translation> <translation id="9130015405878219958">ဝင်လိုက်သည့် မုဒ် မမှန်ပါ။</translation> +<translation id="9131209053278896908">ပိတ်ထားသည့်ဝဘ်ဆိုက်များကို ဤနေရာတွင်ပြမည်</translation> <translation id="9131487537093447019">ဘလူးတုသ် ကိရိယာများ ထံသို့ စာများပို့ပါ၊ စာများကို လက်ခံယူပါ။</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{လိပ်စာ ၁ ခု}other{လိပ်စာ # ခု}}</translation> <translation id="9134066738478820307">ဝဘ်ဆိုက်များသည် ကာကွယ်ထားသည့် အကြောင်းအရာကို ဖွင့်ရန် သတ်မှတ်မှုစနစ်များ သုံးနိုင်သည်</translation> @@ -8902,6 +8930,7 @@ <translation id="9180281769944411366">ဤလုပ်ဆောင်ချက်သည် မိနစ်အနည်းငယ်ကြာနိုင်ပါသည်။ Linux ကွန်တိန်နာကို စတင်နေသည်။</translation> <translation id="9180380851667544951">ဝဘ်ဆိုက်က သင့်မျက်နှာပြင်ကို မျှဝေနိုင်သည်</translation> <translation id="9182556968660520230">ကာကွယ်ထားသော အကြောင်းအရာကိုဖွင့်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation> +<translation id="9183331776983279456">၄ ပတ်ကျော်ပြီဖြစ်သော ဝဘ်ဆိုက်များကို Chrome က အလိုအလျောက်ဖျက်သည်။ သင်ထပ်မံဝင်ကြည့်သည့် ဝဘ်ဆိုက်က စာရင်းတွင် ထပ်ပေါ်လာနိုင်သည်။ သို့မဟုတ် ဝဘ်ဆိုက်ကို သင့်အတွက် ကြော်ငြာများအကြံပြုခြင်းမှ ပိတ်ထားနိုင်သည်။</translation> <translation id="918352324374649435">{COUNT,plural, =1{အက်ပ်}other{အက်ပ် # ခု}}</translation> <translation id="9186963452600581158">ကလေး၏ Google Account ဖြင့် လက်မှတ်ထိုးဝင်ရန်</translation> <translation id="9187967020623675250">ကီးများ မတူပါ။ <ph name="RESPONSE" /> အတွက် ကီးတစ်ခုခုကို နှိပ်ပါ။</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 854f23a..b6e7fe7 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">नयाँ ट्याबमा मूल छविलाई खोल्नुहोस्</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{एक हप्ताभित्र <ph name="DEVICE_TYPE" /> अपडेट गर्नुहोस्}other{{NUM_WEEKS} हप्ताभित्र <ph name="DEVICE_TYPE" /> अपडेट गर्नुहोस्}}</translation> <translation id="1056898198331236512">चेतावनी</translation> +<translation id="1056980582064308040">तपाईंले सेटिङ बदल्नुभयो भने यो हटस्पट रिस्टार्ट हुने छ। यो हटस्पट प्रयोग गरिरहेका डिभाइसहरू डिस्कनेक्ट हुने छन्।</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{आफ्नो नयाँ PIN हाल्नुहोस्। PIN कम्तीमा पनि एक वर्णको हुनु पर्छ र यसमा अक्षर, अङ्क तथा अन्य वर्णहरू समावेश गर्न सकिन्छ।}other{आफ्नो नयाँ PIN हाल्नुहोस्। PIN कम्तीमा पनि # वर्णको हुनु पर्छ र यसमा अक्षर, अङ्क तथा अन्य वर्णहरू समावेश गर्न सकिन्छ।}}</translation> <translation id="1059484610606223931">हाइपरटेक्स्ट ट्रान्स्पोर्ट प्रोटोकोल (HTTPS)</translation> @@ -301,6 +302,7 @@ <translation id="1272079795634619415">रोक्नुहोस्</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />खोल्न मिल्ने लिंकहरू<ph name="END_LINK" /> खोल्ने तरिका</translation> <translation id="1272978324304772054">यो प्रयोगकर्ता खाता साधन भर्ना भएको डोमेनमा पर्दैन । यदि तपाईं फरक डोमेनमा भर्ना हुन चाहनुहुन्छ भने, तपाईं पहिले डिभाइस रिकभरीमार्फत जानुपर्छ ।</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ब्लक गर्नुहोस्</translation> <translation id="1274997165432133392">कुकीहरू र अन्य साइट लगत</translation> <translation id="1275718070701477396">चयन गरिएको</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> अनइन्स्टल गर्न सकिएन</translation> @@ -352,6 +354,7 @@ <translation id="1327495825214193325">ADB डिबग प्रक्रिया सक्षम पार्न यो <ph name="DEVICE_TYPE" /> पुनः सुरु गर्नु पर्ने हुन्छ। यसलाई असक्षम पार्न यस डिभाइसका सेटिङ रिसेट गरी फ्याक्ट्री संस्करणमा लैजानु पर्ने हुन्छ।</translation> <translation id="1327527584824210101">आफ्नो पासकी प्रयोग गर्नुहोस्</translation> <translation id="1327794256477341646">तपाईंको स्थानसम्बन्धी जानकारी प्रयोग गर्ने सुविधाहरूले काम गर्ने छैनन्</translation> +<translation id="1329466763986822896">यो हटस्पटको गोपनीयतामा सुधार ल्याउनुहोस्</translation> <translation id="1331977651797684645">यो म थिएँ।</translation> <translation id="1333489022424033687">तपाईंले आफ्नो यन्त्रमा अन्य साइटहरूले भण्डारण गरेको डेटा नहटाएसम्म <ph name="ORIGIN" /> का केही सुविधाहरूले काम नगर्न सक्छन्</translation> <translation id="1333965224356556482">साइटहरूलाई मेरो स्थानसम्बन्धी जानकारी हेर्ने अनुमति नदिइयोस्</translation> @@ -592,6 +595,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{तपाईंको इन्कोग्निटो विन्डो फेरि खुल्ने छैन।}other{तपाईंका # वटा इन्कोग्निटो विन्डो फेरि खुल्ने छैनन्।}}</translation> <translation id="1546280085599573572">यस विस्तारले तपाईँले गृहबटन क्लिक गर्दा देखाइएको पृष्ठलाई परिवर्तन गरेको छ।</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> एउटा <ph name="EXTENSION_TYPE" /> स्थापना गर्न चाहन्छन् जसले निम्न काम गर्न सक्छ:</translation> +<translation id="1547123415014299762">तेस्रो पक्षीय कुकीहरू प्रयोग गर्न दिइन्छ</translation> <translation id="1547808936554660006">म डिभाइस पावरवास गर्दा त्यसमा इन्स्टल गरिएका eSIM प्रोफाइलहरू हट्ने छैनन् भन्ने कुरा बुझ्छु</translation> <translation id="1547936895218027488">यसलाई खोल्न साइड प्यानलको आइकनमा क्लिक गर्नुहोस्</translation> <translation id="1549275686094429035">ARC सक्षम पारिएको छ</translation> @@ -763,6 +767,7 @@ <translation id="168715261339224929">आफ्ना सबै डिभाइसमा पुस्तक चिन्हहरू प्राप्त गर्न सिंक गर्ने सुविधा अन गर्नुहोस्।</translation> <translation id="1688867105868176567">साइटको डेटा खाली गर्ने हो?</translation> <translation id="1688935057616748272">कुनै अक्षर टाइप गर्नुहोस्</translation> +<translation id="1689333818294560261">उपनाम</translation> <translation id="168991973552362966">कुनै नजिकैको प्रिन्टर थप्नुहोस्</translation> <translation id="1689945336726856614">URL प्रतिलिपि गर्नुहोस्</translation> <translation id="1692115862433274081">अर्को खाता प्रयोग गर्नुहोस्</translation> @@ -1393,6 +1398,7 @@ <translation id="2247870315273396641">आवाजको प्रिभ्यू</translation> <translation id="2249111429176737533">ट्याबमा खोलिने विन्डोका रूपमा खोल्नुहोस्</translation> <translation id="2249605167705922988">जस्तै 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">साइटहरूले तपाईंलाई विज्ञापन देखाउन प्रयोग गर्ने जानकारी कस्टमाइज गर्नुहोस्</translation> <translation id="2251218783371366160">सिस्टम दर्शक मार्फत खोल्नुहोस्</translation> <translation id="225163402930830576">नेटवर्कहरू रिफ्रेस गर्नुहोस्</translation> <translation id="2251809247798634662">नयाँ इन्कोग्निटो विन्डो</translation> @@ -1507,7 +1513,6 @@ <translation id="2329597144923131178">तपाईँका सबै यन्त्रहरूमा आफ्ना पुस्तक चिन्हहरू, इतिहास, पासवर्डहरू र अन्य सेटिङहरू प्राप्त गर्न साइन इन गर्नुहोस्।</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> मा सेभ गरिएका डिभाइसहरू लोड गर्न सकिएन। इन्टरनेट जाँच्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation> <translation id="2332131598580221120">स्टोरमा हेर्नुहोस्</translation> -<translation id="2332192922827071008">प्राथमिकताहरू खोल्नुहोस्</translation> <translation id="2332515770639153015">परिष्कृत Safe Browsing अन छ</translation> <translation id="2332742915001411729">रिसेट गरी डिफल्ट बनाउनुहोस्</translation> <translation id="2332948465534020594">"बाधा नपुऱ्याउनुहोस्" नामक सुविधा अन गरिएको छ</translation> @@ -1841,6 +1846,7 @@ <translation id="2640299212685523844">GTK प्रयोग गरियोस्</translation> <translation id="264083724974021997">आफ्नो फोनमा जोडिनुहोस् - संवाद</translation> <translation id="2642111877055905627">सकर बल</translation> +<translation id="2643064289437760082">तपाईं आफ्नो ब्राउजिङ डेटा मेटाएर जुनसुकै बेला विज्ञापनको पर्फर्मेन्सको मापनसम्बन्धी डेटा मेटाउन सक्नुहुन्छ</translation> <translation id="2643698698624765890">तपाइँका विस्तारहरू विन्डोस मेनुमा क्लिक गरेर व्यवस्थापन गर्नुहोस्।</translation> <translation id="2645047101481282803"><ph name="PROFILE_NAME" /> ले तपाईंको डिभाइसको व्यवस्थापन गर्छ</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2301,6 +2307,7 @@ <translation id="3036327949511794916">यो <ph name="DEVICE_TYPE" /> फिर्ता गर्ने म्याद सकिएको छ।</translation> <translation id="3036546437875325427">फ्ल्यास सक्षम पार्नुहोस्</translation> <translation id="3037754279345160234">डोमेनमा सामेल हुन कन्फिगुरेसनलाई पार्स गर्न सकिँदैन। कृपया आफ्ना प्रशासकसँग सम्पर्क गर्नुहोस्।</translation> +<translation id="3038272154009688107">सबै साइट हेर्नुहोस्</translation> <translation id="3038612606416062604">म्यानुअल तरिकाले प्रिन्टर थप्नुहोस्</translation> <translation id="3039491566278747710">यन्त्रमा अफलाइन नीति स्थापना गर्न सकिएन।</translation> <translation id="3043016484125065343">आफ्ना बुकमार्कहरू हेर्न साइन इन गर्नुहोस्</translation> @@ -2537,6 +2544,7 @@ <translation id="3289668031376215426">स्वतः क्यापिटल अक्षर बनाउने सुविधा</translation> <translation id="3289856944988573801">अद्यावधिकहरू हेर्नको लागि, कृपया इथर्नेट वा Wi-Fi प्रयोग गर्नुहोस्।</translation> <translation id="3290249595466894471">यो सुविधाले नयाँ जोखिमहरू पत्ता लगाउन पेज, डाउनलोड, एक्स्टेन्सनसम्बन्धी गतिविधि र प्रणालीसम्बन्धी जानकारीको सानो नमुना पनि Safe Browsing मा पठाउँछ</translation> +<translation id="3293181007446299124">तपाईंको ब्राउजिङ हिस्ट्री तपाईंको डिभाइसमा गोप्य राखिन्छ र तपाईंको पहिचान सुरक्षित राख्न रिपोर्टहरू तत्कालै पठाइँदैनन्</translation> <translation id="3293644607209440645">यो पृष्ठ पठाउनुहोस्</translation> <translation id="32939749466444286">Linux को कन्टेनर सुरु भएन। कृपया फेरि प्रयास गर्नुहोस्।</translation> <translation id="3294437725009624529">पाहुना</translation> @@ -3316,6 +3324,7 @@ <translation id="3984431586879874039">यस साइटलाई तपाईंको सुरक्षा साँचो हेर्न दिने हो?</translation> <translation id="398477389655464998">हाइलाइट गरिएको पाठको लिंक कपी गर्नुहोस्</translation> <translation id="3984862166739904574">"द्रुत जवाफ"को परिभाषा देखाउने सुविधा</translation> +<translation id="3985022125189960801">तपाईं कुनै साइटलाई तपाईंलाई मन पर्ने कुराहरू अनुमान लगाउन सक्ने साइटहरूको समूहमा समावेश गर्न चाहनुहुन्छ भने उक्त साइट पुनः हाल्नुहोस्</translation> <translation id="3987544746655539083">यो साइटलाई आफ्नो स्थानसम्बन्धी जानकारी प्रयोग गर्न नपाउने गरी ब्लक गरिराख्नुहोस्</translation> <translation id="3987938432087324095">माफ गर्नुहोस्, तपाईंको कुरा स्पष्ट बुझिएन।</translation> <translation id="3987993985790029246">लिंक प्रतिलिपि गर्नुहोस्</translation> @@ -3693,6 +3702,7 @@ <translation id="4366138410738374926">प्रिन्ट गर्ने कार्य सुरु भयो</translation> <translation id="4367513928820380646">हटाइएका अनुमतिहरूको समीक्षा गर्नुहोस्</translation> <translation id="4369215744064167350">तपाईंले वेबसाइट हेर्न पाऊँ भनी गर्नुभएको अनुरोध अनुमोदन गरिएको छ</translation> +<translation id="4369735607080757018">साइटहरूमा देखाइने विज्ञापनको पर्फर्मेन्स मापन गर्न साइटहरूका बिचमा तपाईंलाई कुनै विज्ञापन देखाइएको समयलगायतका सीमित प्रकारका डेटा सेयर गरिन्छ</translation> <translation id="4370975561335139969">तपाईँले प्रविष्टि गर्नुभएको इमेल र पासवर्ड मेल खाँदैनन्</translation> <translation id="4374831787438678295">Linux को स्थापनाकर्ता</translation> <translation id="4375035964737468845">डाउनलोड गरिएका फाइलहरू खोल्नुहोस्</translation> @@ -3713,6 +3723,7 @@ <translation id="4385146930797718821">स्क्रिनसट कपी गरी क्लिपबोर्डमा राखियो</translation> <translation id="4385905942116811558">ब्लुटुथ तथा USB यन्त्रहरू खोजिँदै छ</translation> <translation id="4387890294700445764">अरूले देखेका पासवर्डहरू</translation> +<translation id="4388650384344483842">कम्तीमा ८ वटा वर्ण प्रयोग गर्नुहोस्</translation> <translation id="4389091756366370506">प्रयोगकर्ता <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> र अन्य <ph name="NUMBER_OF_OTHER_SWITCHES" /> वटा स्विच थपिए</translation> <translation id="439266289085815679">ब्लुटुथ कन्फिगुरेसन <ph name="USER_EMAIL" /> द्वारा नियन्त्रित छ।</translation> @@ -4034,6 +4045,7 @@ <translation id="4666472247053585787">फोनका सूचनाहरू <ph name="DEVICE_TYPE" /> मा हेर्नुहोस्</translation> <translation id="4666911709726371538">थप एपहरू</translation> <translation id="4667027203988048332">के कस्ता जानकारी प्रयोग गरिन्छ:</translation> +<translation id="4668279686271488041">तपाईंको डिभाइसबाट विज्ञापनको पर्फर्मेन्सको मापनसम्बन्धी डेटा नियमित रूपमा मेटाइन्छ</translation> <translation id="4672759829555593783">अहिले नै <ph name="FILE_NAME" /> खोल्नुहोस्</translation> <translation id="46733273239502219">स्थापना गरिएका एपहरूमा रहेको अफलाइन डेटा पनि हटाइने छ</translation> <translation id="4673442866648850031">स्टाइलस निकाल्दा स्टाइलस सम्बन्धी उपकरणहरू खोल्नुहोस्</translation> @@ -4227,6 +4239,7 @@ <translation id="485480310608090163">थप सेटिङ तथा अनुमति</translation> <translation id="4858913220355269194">फ्रिट्ज</translation> <translation id="4862642413395066333">OCSP प्रतिक्रियाहरू साइन गर्दै</translation> +<translation id="4863702650881330715">कम्प्याटिबिलिटी बढाइयोस्</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (डिफल्ट) जस्तो देखिन्छ</translation> <translation id="4864805589453749318">विद्यालयको खाता थप्न अनुमति दिन लागिरहनुभएको अभिभावक चयन गर्नुहोस्।</translation> <translation id="486635084936119914">डाउनलोडपछि निश्चित प्रकारका फाइलहरू स्वतः खोल्नुहोस्</translation> @@ -4275,7 +4288,6 @@ <translation id="4893336867552636863">यसले यो यन्त्रबाट तपाईंको ब्राउजिङ डेटालाई स्थायी रूपमा मेटाउनेछ।</translation> <translation id="4893454800196085005">राम्रो - DVD</translation> <translation id="4893522937062257019">लक स्क्रिनमा</translation> -<translation id="4897496410259333978">थप जानकारीका लागि आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> <translation id="4898011734382862273">प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" ले प्रमाणीकरण अधिकारीको प्रतिनिधित्व गर्दछ</translation> <translation id="4899052647152077033">रङ उल्टाउनुहोस्</translation> <translation id="4899696330053002588">यसमा विज्ञापनहरू समावेश हुन्छन्</translation> @@ -4473,6 +4485,7 @@ <translation id="5094721898978802975">सहयोगी मुल अनुप्रयोगहरूसँग सञ्चार गर्नुहोस्</translation> <translation id="5097002363526479830">नेटवर्क '<ph name="NAME" />' मा जडान हुन असफल भयो: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">लोकेसन प्रयोग गर्ने तरिकाका बारेमा थप जान्नुहोस्</translation> +<translation id="5097349930204431044">तपाईंले खोल्ने साइटहरूले तपाईंलाई मन पर्ने कुराहरू निर्धारण गरी तपाईंले ब्राउज गर्ने क्रममा तपाईंको रुचिअनुसारका विज्ञापन देखाउन सक्छन्</translation> <translation id="5097649414558628673">टुल: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">कर्सर रोकिँदा स्वतः क्लिक गरियोस्</translation> <translation id="5101683448725092498">आफ्ना सामग्री ब्याकअप गर्नुहोस्</translation> @@ -4655,6 +4668,7 @@ <translation id="5275352920323889391">कुकुर</translation> <translation id="527605719918376753">ट्याब म्युट गर्दै</translation> <translation id="527605982717517565"><ph name="HOST" /> मा सँधै जाभास्क्रिप्टको लागि अनुम</translation> +<translation id="5276357196618041410">तपाईंले लग इन गरेपछि मात्र कन्फिगुरेसन सेभ गर्न सकिन्छ</translation> <translation id="5277127016695466621">किनाराको प्यानल देखाइयोस्</translation> <translation id="5278823018825269962">स्ट्याटस Id</translation> <translation id="5279600392753459966">सबै रोक्नुहोस्</translation> @@ -5808,7 +5822,6 @@ <translation id="6347010704471250799">सूचना देखाइयोस्</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> स्थापना गर्नुहोस्</translation> <translation id="6354918092619878358">SECG अण्डाकार कर्भ secp256r1 (ANSI X9.62 prime256v1, NIST P-256 पनि भनिन्छ)</translation> -<translation id="6355789186038748882">परीक्षणका क्रममा रहेको (अल्फा गुणस्तरको) ब्राउजर! केही सुविधाहरू अपूर्ण हुन सक्छन् वा उपलब्ध नहुन सक्छन्। यहाँ गई यस ब्राउजरमा देखिएका समस्याका बारेमा रिपोर्ट गर्नुहोस्: मद्दत > "समस्याका बारेमा रिपोर्ट गर्नुहोस्..."।</translation> <translation id="635609604405270300">यन्त्रलाई सक्रिय राख्नुहोस्</translation> <translation id="63566973648609420">तपाईंको इन्क्रिप्ट गरिएको डेटालाई तपाईंको पासफ्रेज भएको व्यक्तिले मात्र पढ्न सक्छ। पासफ्रेजलाई Google मा पठाइँदैन वा त्यहाँ भण्डारण गरिदैन। यदि तपाईंले आफ्नो पासफ्रेज बिर्सनुभयो वा यस सेटिङलाई परिवर्तन गर्न चाहनुहुन्छ भने तपाईंले <ph name="BEGIN_LINK" />सिंकलाई रिसेट<ph name="END_LINK" /> गर्नुपर्ने हुन्छ।</translation> <translation id="6357305427698525450">खोल्न मिल्ने केही लिंकहरू अझै पनि <ph name="APP_NAME" /> मा वा <ph name="APP_NAME_2" /> मा खुल्ने छन्।</translation> @@ -6148,6 +6161,7 @@ <translation id="6670767097276846646">केही एक्स्टेन्सनहरूले Chrome मा सर्च इन्जिन थप्न सक्छ</translation> <translation id="6671320560732140690">{COUNT,plural, =1{एउटा ठेगाना}other{# वटा ठेगाना}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" /> ले व्यवस्थापन सेटअप गर्दै छ</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> हाल्नुहोस्</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">सिंक गर्ने कार्य सुरु गर्न आफ्नो पासफ्रेज हाल्नुहोस्</translation> <translation id="6675665718701918026">निर्देशित गरिएको यन्त्र जडान गरियो</translation> @@ -6231,6 +6245,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (गुप्त)</translation> <translation id="6756157672127672536">तपाईं Files एपका सहायताले आफूले Google Drive, बाह्य भण्डारण वा ChromeOS चल्ने डिभाइसमा सेभ गरेका फाइलहरू द्रुत रूपमा हेर्न तथा प्रयोग गर्न सक्नुहुन्छ।</translation> <translation id="6756643207511618722">स्पिच इन्जिनहरू</translation> +<translation id="6757431299485455321">अन्य डिभाइसलाई यो हटस्पट भेट्टाउन मद्दत गर्नुहोस्।</translation> <translation id="6758056191028427665">हामी कस्तो काम गर्दैछौं भन्नेबारे प्रतिक्रिया दिनुहोस्।</translation> <translation id="6759193508432371551">कारखाना रिसेट</translation> <translation id="6761431452438552910">ब्लुटुथ डिभाइसमा कनेक्ट गर्ने मोड अन गरिएको छ र सो डिभाइस तपाईंको वरपर छ भन्ने कुरा सुनिश्चित गर्नुहोस्। आफूले विश्वास गर्ने डिभाइसहरूमा मात्र कनेक्ट गर्नुहोस्।</translation> @@ -6330,6 +6345,7 @@ <translation id="6833479554815567477">यो ट्याब <ph name="GROUP_NAME" /> समूहबाट हटाइयो - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">कुनै स्मार्ट तथा सुरक्षित ब्राउजरमा बदल्नुहोस्</translation> <translation id="6833996806551876956">गोपनीयता स्यान्डबक्सको ट्रायल अवधि</translation> +<translation id="6835712061486505758">अन्य डिभाइसमा इन्टरनेट उपलब्ध गराउन Wi-Fi हटस्पट बनाउनुहोस्। <ph name="BEGIN_LINK_LEARN_MORE" />थप जान्नुहोस्<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">कृपया तपाईँको <ph name="DEVICE_TYPE" /> अद्यावधिक गर्न इन्टरनेटमा कनेक्ट गर्नुहोस्।</translation> <translation id="6839225236531462745">प्रमाणपत्र मेटाइमा त्रुटी</translation> <translation id="6839916869147598086">साइन इन परिवर्तन गरिएको छ</translation> @@ -6491,6 +6507,7 @@ <translation id="697508444536771064">Linux बन्द गर्नुहोस्</translation> <translation id="6975361011348772931">रिड गर्ने तथा बदल्ने अनुमति मागिएको छ</translation> <translation id="6978121630131642226">खोज इन्जिनहरू</translation> +<translation id="6978717888677691380">तपाईंले ब्लक गरेका साइटहरू</translation> <translation id="6979041727349121225">इनर्जी सेभर</translation> <translation id="6979044105893951891">अतिथिका व्यवस्थित सत्रहरू सुरु गर्ने तथा सोबाट बाहिर निस्कने</translation> <translation id="6979440798594660689">म्युट गरियोस् (डिफल्ट)</translation> @@ -6582,6 +6599,7 @@ <translation id="7047059339731138197">पृष्ठभूमि छनौट गर्नुहोस्</translation> <translation id="7048457618657122233"><ph name="SHARE_TARGET" /> सँग लिंक सेयर गर्नुहोस्</translation> <translation id="7049293980323620022">फाइल राख्ने हो?</translation> +<translation id="7050037487872780845">हटस्पटसम्बन्धी अवैध कन्फिगुरेसन</translation> <translation id="7052237160939977163">प्रदर्शन ट्रेस लगत पठाउनुहोस्</translation> <translation id="7053983685419859001">रोक्नुहोस्</translation> <translation id="7055152154916055070">रिडिरेक्ट नामक सुविधामाथि रोक लगाइयो:</translation> @@ -6786,6 +6804,7 @@ <translation id="7258192266780953209">रूपान्तरणहरू</translation> <translation id="7258225044283673131">यो एपले प्रतिक्रिया जनाइरहेको छैन। एप बन्द गर्न "बलपूर्वक बन्द गर्नुहोस्" चयन गर्नुहोस्।</translation> <translation id="7260186537988033909">किओस्क र साइनेज डिभाइस दर्ता गर्ने प्रक्रिया पूरा भयो</translation> +<translation id="7260367682327802201">तपाईंको Android डिभाइसमा यस्तै सेटिङ हुन सक्छ। Chrome र तपाईंको Android डिभाइसमा विज्ञापनको पर्फर्मेन्स मापन गर्ने सुविधा अन गरिएको छ भने कुनै पनि कम्पनी तपाईंले खोल्ने वेबसाइट र तपाईंले प्रयोग गर्ने एपहरूमा देखाइने विज्ञापनको प्रभावकारिता मापन गर्न सक्षम हुन सक्छन्।</translation> <translation id="7262004276116528033">यो साइन इन सेवा <ph name="SAML_DOMAIN" /> द्वारा होस्ट गरिन्छ</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{एउटा साइटलाई दिइएका अनुमति रद्द गरिएका छन्}other{{NUM_SITES} वटा साइटलाई दिइएका अनुमति रद्द गरिएका छन्}}</translation> <translation id="7264695323040866038">खोल्न मिल्ने वेब लिंकहरू खोल्न सधैँ <ph name="APP" /> प्रयोग गर्ने हो?</translation> @@ -6929,6 +6948,7 @@ <translation id="7406912950279255498">कलर इन्भर्सन मोड</translation> <translation id="7407430846095439694">आयात गनुहोस् र बाँध्नुहोस्</translation> <translation id="7407504355934009739">धेरैजसो मान्छेहरू यो साइटका सूचनाहरूमाथि रोक लगाउँछन्</translation> +<translation id="7408080603962564527">अरूले हटस्पटको यो नाम देख्ने छन्</translation> <translation id="740810853557944681">प्रिन्ट सर्भर थप्नुहोस्</translation> <translation id="7409549334477097887">ज्यादै ठुलो</translation> <translation id="7409599290172516453">हालसालै खिचिएका फोटोहरू</translation> @@ -6967,7 +6987,6 @@ <translation id="7434757724413878233">माउसको गति बढाउने कार्य</translation> <translation id="7434969625063495310">छपाइसम्बन्धी सर्भर थप्न पार्न सकिएन। कृपया सर्भरको कन्फिगुरेसन जाँच गरी फेरि प्रयास गर्नुहोस्।</translation> <translation id="7436921188514130341">ओहो! पुनः नामकरण गर्ने क्रममा कुनै त्रुटि भयो।</translation> -<translation id="7438495332316988804">तपाईं लन्चरमा "Chrome" टाइप गरेर मानक ब्राउजर भेट्टाउन सक्नुहुन्छ।</translation> <translation id="7439519621174723623">जारी राख्न कुनै डिभाइसको नाम राख्नुहोस्</translation> <translation id="7441736921018636843">यो सेटिङ परिवर्तन गर्ने प्रयोजनका लागि आफ्नो सिंकसम्बन्धी पासफ्रेज हटाउन <ph name="BEGIN_LINK" />सिंक गर्ने सेवा रिसेट गर्नुहोस्<ph name="END_LINK" /></translation> <translation id="7441830548568730290">अन्य प्रयोगकर्ताहरू</translation> @@ -7244,6 +7263,7 @@ <translation id="7684718995427157417">आफ्ना एपहरू बनाउन तथा परीक्षण गर्न Android Debug Bridge (ADB) सक्षम पार्नुहोस्। यस कारबाहीले Google ले प्रमाणीकरण नगरेका Android एपहरू इन्स्टल गर्ने अनुमति दिन्छ र यसलाई असक्षम पार्न फ्याक्ट्री रिसेट गर्नु पर्ने हुन्छ भन्ने कुरामा ध्यान दिनुहोस्।</translation> <translation id="7685049629764448582">जाभास्क्रिप्ट स्मृ</translation> <translation id="7685087414635069102">पिन चाहिन्छ</translation> +<translation id="7686086654630106285">साइटले सिफारिस गरेका विज्ञापनका बारेमा थप जानकारी</translation> <translation id="7686581688229391955">यो साइटमा सबै एक्स्टेन्सनहरूलाई अनुमति दिन चयन गर्नुहोस्</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">नयाँ पासवर्ड पुष्टि गर्नुहोस्</translation> @@ -7265,6 +7285,7 @@ <translation id="7704317875155739195">खोज तथा URL हरू स्वतः पूर्ण गर्नुहोस्</translation> <translation id="7704521324619958564">Play स्टोर खोल्नुहोस्</translation> <translation id="7705276765467986571">पृष्ठमञ्जूषा मोडेल लोड गर्न सकेन।</translation> +<translation id="7705334495398865155">अरूले यो डिभाइस ट्र्याक गर्न नसकून् भन्नाका लागि हार्डवेयरको ID (BSSID) र्यान्डमाइज गर्नुहोस्।</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">यो साइटलाई चालसम्बन्धी सेन्सरहरू प्रयोग गर्नबाट रोक लगाइएको छ।</translation> <translation id="7707922173985738739">मोबाइल डेटा प्रयोग गर्नुहोस्</translation> @@ -7458,6 +7479,7 @@ <translation id="7881483672146086348">खाता हेर्नुहोस्</translation> <translation id="7883792253546618164">जुनसुकै बेला सदस्यता रद्द गर्नुहोस्।</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{थुप्रै सूचनाहरू पठाएको एउटा साइटको समीक्षा गर्नुहोस्}other{थुप्रै सूचनाहरू पठाएका {NUM_SITES} वटा साइटको समीक्षा गर्नुहोस्}}</translation> +<translation id="7884446017008693258">हटस्पटसम्बन्धी सेटिङ</translation> <translation id="788453346724465748">खातासम्बन्धी जानकारी लोड गरिँदै छ...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{एउटा वस्तु}other{# वटा वस्तु}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7545,6 +7567,7 @@ <translation id="7952904276017482715">अपेक्षित ID "<ph name="EXPECTED_ID" />" हो, तर भएको ID भने "<ph name="NEW_ID" />" छ</translation> <translation id="7953669802889559161">इनपुटहरू</translation> <translation id="7953955868932471628">सर्टकटहरू व्यवस्थित गर्नुहोस्</translation> +<translation id="7955105108888461311">व्यक्तिगत रूपमा अनुरोध गर्नुहोस्</translation> <translation id="7955177647836564772">Smart Lock अन छ र तपाईंको फोन अनलक गरिएको छ भने तपाईंले कुनै पनि पासवर्ड वा PIN हालिराख्नु पर्दैन</translation> <translation id="7956373551960864128">तपाईंले सुरक्षित गर्नुभएका प्रिन्टरहरू</translation> <translation id="7957074856830851026">क्रम सङ्ख्या वा एसेट ID जस्ता यन्त्रसम्बन्धी जानकारी हेर्नुहोस्</translation> @@ -7682,6 +7705,7 @@ <ph name="BEGIN_PARAGRAPH3" />तपाईं सेटिङहरूमा गई यो सेवा निष्क्रिय पार्न सक्नुहुन्छ।<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">ट्याबहरू</translation> <translation id="8076835018653442223">तपाईंको प्रशासकले तपाईंको डिभाइसमा रहेका स्थानीय फाइलहरूमाथिको पहुँचलाई असक्षम पार्नुभएको छ</translation> +<translation id="8077120325605624147">तपाईंले खोल्ने कुनै पनि साइटले तपाईंलाई जुनसुकै विज्ञापन देखाउन सक्छ</translation> <translation id="80798452873915119">साइटहरूले तपाईंका सबै डिस्प्लेमा विन्डो व्यवस्थापन गर्ने अनुमति माग्न सक्छन्</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289"><ph name="MANAGER_NAME" /> ले तपाईंको सत्र व्यवस्थापन गर्नुहुन्छ। एड्मिनहरू तपाईंको प्रोफाइल मेटाउन सक्छन्। साथै, उनीहरू तपाईंको नेटवर्क ट्राफिकको निरीक्षण गर्न पनि सक्छन्।</translation> @@ -8194,6 +8218,7 @@ <translation id="8557180006508471423">Mac को लोकेसन सेवाहरूमा गई "Google Chrome" अन गर्नुहोस्</translation> <translation id="8557856025359704738">अब <ph name="NEXT_DATE_DOWNLOAD" /> मा डाउनलोड गरिने छ।</translation> <translation id="8559858985063901027">पासकीहरू</translation> +<translation id="8559961053328923750">Chrome ले साइटहरूले विज्ञापनको पर्फर्मेन्स मापन गर्ने प्रयोजनका लागि ब्राउजरमार्फत कुल कति डेटा सेयर गर्न पाउँछन् भन्ने कुरामा सीमा तोक्छ</translation> <translation id="8560327176991673955">{COUNT,plural, =0{सबै URL &नयाँ विन्डोमा खोल्नुहोस्}=1{&नयाँ विन्डोमा खोल्नुहोस्}other{सबै URL ({COUNT}) &नयाँ विन्डोमा खोल्नुहोस्}}</translation> <translation id="8561206103590473338">हात्ती</translation> <translation id="8561565784790166472">यो सुविधा प्रयोग गर्दा सावधानी अपनाउनुहोस्</translation> @@ -8335,6 +8360,7 @@ <translation id="8678933587484842200">तपाईं यो एप कसरी सुरु होस् भन्ने चाहनुहुन्छ?</translation> <translation id="8680251145628383637">तपाईंको सबै यन्त्रहरूमा ट्याबहरू, पुस्तक चिन्हहरू, इतिहास र अन्य सेटिङहरू प्राप्त गर्न साइन इन गर्नुहोस्। तपाईं आफ्नो Google सेवाहरूमा स्वाचालित रूपमा साइन इन पनि हुनुहुनेछ।</translation> <translation id="8681614230122836773">Chrome ले तपाईंको कम्प्युटरमा हानिकारक सफ्टवेयर फेला पार्यो</translation> +<translation id="8681886425883659911">हस्तक्षेपकारी वा भ्रामक विज्ञापनहरू देखाउने साइटहरूमा विज्ञापन ब्लक गरिन्छ</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> जोडियो र छाप्नका लागि तयार छ</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> डाउनलोड गर्ने कार्य रद्द गर्नुहोस्</translation> <translation id="8688672835843460752">उपलब्ध</translation> @@ -8705,6 +8731,7 @@ <translation id="9021662811137657072">भाइरस पत्ता लाग्यो</translation> <translation id="902236149563113779">साइटहरूले सामान्यतया गेम वा हेड्स-अप निर्देशन जस्ता AR सुविधाहरू प्रदान गर्न तपाईंको क्यामेराको स्थिति ट्र्याक गर्छन्</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> पहिले नै यस कम्प्युटरमा यो खाता प्रयोग गर्दै हुनुहुन्छ।</translation> +<translation id="9022871169049522985">साइट तथा विज्ञापनदाताहरू उनीहरूका विज्ञापनहरूको पर्फर्मेन्स मापन गर्न सक्छन्</translation> <translation id="9023015617655685412">यस ट्याबमा पुस्तक चिन्ह लगाउनुहोस्...</translation> <translation id="9023909777842748145">यो सुविधा निष्क्रिय पार्नुले सिस्टम अपडेट र सुरक्षा जस्ता अत्यावश्यक सेवाहरूलाई आवश्यक पर्ने जानकारी पठाउने तपाईंको डिभाइसको क्षमतालाई असर गर्दैन।</translation> <translation id="9024127637873500333">नयाँ ट्याबमा &खोल्नुहोस्</translation> @@ -8834,6 +8861,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" /> को सेटिङ पृष्ठ खोल्नुहोस्</translation> <translation id="9128870381267983090">नेटवर्कमा कनेक्ट गर्नुहोस्</translation> <translation id="9130015405878219958">अवैध मोड प्रविष्ट गरियो।</translation> +<translation id="9131209053278896908">ब्लक गरिएका साइटहरू यहाँ देखिन्छन्</translation> <translation id="9131487537093447019">ब्लूटुथ यन्त्रहरूबाट सन्देश पठाउनुहोस् र प्राप्त गर्नुहोस्।</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{एउटा बुकमार्क}other{# वटा बुकमार्क}}</translation> <translation id="9134066738478820307">साइटहरू संरक्षित सामग्री प्ले गर्न आइडेन्टिफायर प्रयोग गर्न सक्छन्</translation> @@ -8887,6 +8915,7 @@ <translation id="9180281769944411366">यो प्रक्रियामा केही मिनेट लाग्न सक्छ। Linux कन्टेनर सुरु गर्दै।</translation> <translation id="9180380851667544951">साइटले तपाईंको स्क्रिन आदान प्रदान गर्न सक्छ</translation> <translation id="9182556968660520230">साइटहरूलाई संरक्षित सामग्री प्ले गर्ने अनुमति नदिइयोस्</translation> +<translation id="9183331776983279456">Chrome ले ४ हप्ताभन्दा पुराना साइटहरू स्वतः मेटाउँछ। तपाईंले कुनै साइट फेरि खोल्नुभयो भने यो सूचीमा उक्त साइट पुनः देखिन सक्छ। वा तपाईं कुनै साइटले तपाईंलाई विज्ञापन सिफारिस गर्न नपाउने गरी उक्त साइट ब्लक गर्न सक्नुहुन्छ।</translation> <translation id="918352324374649435">{COUNT,plural, =1{एप}other{# वटा एप}}</translation> <translation id="9186963452600581158">आफ्ना बच्चाको Google खाता प्रयोग गरी साइन इन गर्नुहोस्</translation> <translation id="9187967020623675250">की मिलेन। तपाईं <ph name="RESPONSE" /> चाहनुहुन्छ भने कुनै की थिच्नुहोस्।</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index c849a91..78b8f687 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Oorspronkelijke &afbeelding openen op nieuw tabblad</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Update <ph name="DEVICE_TYPE" /> binnen 1 week}other{Update <ph name="DEVICE_TYPE" /> binnen {NUM_WEEKS} weken}}</translation> <translation id="1056898198331236512">Waarschuwing</translation> +<translation id="1056980582064308040">Als je de instellingen wijzigt, wordt de hotspot opnieuw opgestart. De verbinding van apparaten die de hotspot gebruiken, wordt verbroken.</translation> <translation id="1058262162121953039">Pukcode</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Geef je nieuwe pincode op. Een pincode moet uit minstens 1 teken bestaan en mag letters, cijfers en andere tekens bevatten.}other{Geef je nieuwe pincode op. Een pincode moet uit minstens # tekens bestaan en mag letters, cijfers en andere tekens bevatten.}}</translation> <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Ondersteunde links<ph name="END_LINK" /> openen</translation> <translation id="1272978324304772054">Dit gebruikersaccount hoort niet bij het domein waarbij het apparaat is geregistreerd. Als je het apparaat wilt registreren bij een ander domein, moet je eerst apparaatherstel uitvoeren.</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> blokkeren</translation> <translation id="1274997165432133392">Cookies en andere sitegegevens</translation> <translation id="1275718070701477396">Geselecteerd</translation> <translation id="1276994519141842946">Kan <ph name="APP_NAME" /> niet verwijderen</translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">Als je ADB-foutopsporing wilt aanzetten, moet je deze <ph name="DEVICE_TYPE" /> opnieuw opstarten. Je kunt ADB-foutopsporing alleen uitzetten door de fabrieksinstellingen van je apparaat te herstellen.</translation> <translation id="1327527584824210101">Je toegangssleutel gebruiken</translation> <translation id="1327794256477341646">Functies waarvoor je locatie nodig is, werken niet</translation> +<translation id="1329466763986822896">De privacy voor deze hotspot verbeteren</translation> <translation id="1331977651797684645">Dit was ik.</translation> <translation id="1333489022424033687">Sommige functies op <ph name="ORIGIN" /> werken mogelijk pas als je gegevens wist die andere sites op je apparaat hebben opgeslagen</translation> <translation id="1333965224356556482">Niet toestaan dat sites je locatie zien</translation> @@ -593,6 +596,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Je incognitovenster kan niet opnieuw worden geopend.}other{Je # incognitovensters kunnen niet opnieuw worden geopend.}}</translation> <translation id="1546280085599573572">Deze extensie heeft gewijzigd welke pagina je ziet als je op de Homepage-knop klikt.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> wil een <ph name="EXTENSION_TYPE" /> installeren die het volgende kan:</translation> +<translation id="1547123415014299762">Cookies van derden zijn toegestaan</translation> <translation id="1547808936554660006">Ik begrijp dat geïnstalleerde e-simkaartprofielen niet worden verwijderd door de Powerwash-functie</translation> <translation id="1547936895218027488">Klik op het icoon van het zijvenster om het te openen</translation> <translation id="1549275686094429035">ARC staat aan</translation> @@ -766,6 +770,7 @@ <translation id="168715261339224929">Zet de synchronisatie aan om al je bookmarks op al je apparaten te bekijken.</translation> <translation id="1688867105868176567">Sitegegevens wissen?</translation> <translation id="1688935057616748272">Typ een letter</translation> +<translation id="1689333818294560261">Bijnaam</translation> <translation id="168991973552362966">Een printer in de buurt toevoegen</translation> <translation id="1689945336726856614">&URL kopiëren</translation> <translation id="1692115862433274081">Een ander account gebruiken</translation> @@ -1396,6 +1401,7 @@ <translation id="2247870315273396641">Voorbeeld van stem</translation> <translation id="2249111429176737533">Openen als venster met tabbladen</translation> <translation id="2249605167705922988">bijv. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Pas de informatie aan die sites gebruiken om advertenties te laten zien</translation> <translation id="2251218783371366160">Openen met systeemviewer</translation> <translation id="225163402930830576">Netwerken vernieuwen</translation> <translation id="2251809247798634662">Nieuw incognitovenster</translation> @@ -1510,7 +1516,6 @@ <translation id="2329597144923131178">Als je inlogt, heb je al je instellingen op al je apparaten: bookmarks, geschiedenis, wachtwoorden en meer.</translation> <translation id="2332115969598251205">Kan apparaten niet laden die zijn opgeslagen in <ph name="PRIMARY_EMAIL" />. Check de internetverbinding en probeer het opnieuw.</translation> <translation id="2332131598580221120">Bekijken in de Web Store</translation> -<translation id="2332192922827071008">Voorkeuren openen</translation> <translation id="2332515770639153015">De uitgebreide versie van Safe Browsing staat aan</translation> <translation id="2332742915001411729">Terugzetten naar standaardinstelling</translation> <translation id="2332948465534020594">Niet storen is aangezet</translation> @@ -1844,6 +1849,7 @@ <translation id="2640299212685523844">GTK gebruiken</translation> <translation id="264083724974021997">Verbinding maken met je telefoon: dialoogvenster</translation> <translation id="2642111877055905627">Voetbal</translation> +<translation id="2643064289437760082">Je kunt de gegevens van advertentiemetingen altijd verwijderen door je browsegegevens te verwijderen</translation> <translation id="2643698698624765890">Je kunt je extensies beheren door in het paginamenu te klikken op 'Extensies'.</translation> <translation id="2645047101481282803">Je apparaat wordt beheerd door <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">Chrome OS</translation> @@ -2303,6 +2309,7 @@ <translation id="3036327949511794916">De deadline voor het terugsturen van deze <ph name="DEVICE_TYPE" /> is verstreken.</translation> <translation id="3036546437875325427">Flitser aanzetten</translation> <translation id="3037754279345160234">Kan de configuratie voor domeinkoppeling niet parseren. Neem contact op met je beheerder.</translation> +<translation id="3038272154009688107">Alle sites bekijken</translation> <translation id="3038612606416062604">Handmatig een printer toevoegen</translation> <translation id="3039491566278747710">Offline beleid instellen op het apparaat is mislukt.</translation> <translation id="3043016484125065343">Log in om je bookmarks te bekijken</translation> @@ -2539,6 +2546,7 @@ <translation id="3289668031376215426">Automatisch hoofdlettergebruik</translation> <translation id="3289856944988573801">Gebruik ethernet of wifi om op updates te controleren.</translation> <translation id="3290249595466894471">Stuurt ook een klein gedeelte pagina's, downloads, extensie-activiteit en systeeminformatie om nieuwe dreigingen te kunnen vinden</translation> +<translation id="3293181007446299124">Je browsegeschiedenis blijft privé op je apparaat en rapporten worden met vertraging verstuurd om je identiteit te beschermen</translation> <translation id="3293644607209440645">Deze pagina verzenden</translation> <translation id="32939749466444286">De Linux-container is niet gestart. Probeer het opnieuw.</translation> <translation id="3294437725009624529">Gast</translation> @@ -3319,6 +3327,7 @@ <translation id="3984431586879874039">Deze site toestaan je beveiligingssleutel te bekijken?</translation> <translation id="398477389655464998">Link naar markering kopiëren</translation> <translation id="3984862166739904574">Definitie van Snelle antwoorden</translation> +<translation id="3985022125189960801">Voeg een site weer toe als je deze wilt opnemen in de groep met sites die mogen raden wat je leuk vindt</translation> <translation id="3987544746655539083">Toegang tot je locatie blijven blokkeren voor deze site</translation> <translation id="3987938432087324095">Sorry, dat heb ik niet verstaan.</translation> <translation id="3987993985790029246">Link kopiëren</translation> @@ -3695,6 +3704,7 @@ <translation id="4366138410738374926">Afdrukken gestart</translation> <translation id="4367513928820380646">Verwijderde rechten bekijken</translation> <translation id="4369215744064167350">Websiteverzoek goedgekeurd</translation> +<translation id="4369735607080757018">Er worden beperkte typen gegevens gedeeld tussen sites om de prestaties van hun advertenties te meten (bijvoorbeeld het tijdstip waarop je een advertentie te zien kreeg)</translation> <translation id="4370975561335139969">Het opgegeven e-mailadres en wachtwoord komen niet overeen</translation> <translation id="4374831787438678295">Linux-installatieprogramma</translation> <translation id="4375035964737468845">Gedownloade bestanden openen</translation> @@ -3715,6 +3725,7 @@ <translation id="4385146930797718821">Screenshot gekopieerd naar klembord</translation> <translation id="4385905942116811558">Zoeken naar Bluetooth- en USB-apparaten</translation> <translation id="4387890294700445764">Gehackte wachtwoorden</translation> +<translation id="4388650384344483842">Gebruik minstens 8 tekens</translation> <translation id="4389091756366370506">Gebruiker <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> en nog <ph name="NUMBER_OF_OTHER_SWITCHES" /> andere schakelaars</translation> <translation id="439266289085815679">Bluetooth-configuratie wordt beheerd door <ph name="USER_EMAIL" />.</translation> @@ -4035,6 +4046,7 @@ <translation id="4666472247053585787">Meldingen van je telefoon bekijken op je <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Meer apps</translation> <translation id="4667027203988048332">Welke gegevens worden gebruikt:</translation> +<translation id="4668279686271488041">De gegevens van advertentiemetingen worden regelmatig van je apparaat verwijderd</translation> <translation id="4672759829555593783"><ph name="FILE_NAME" /> nu openen</translation> <translation id="46733273239502219">Offline gegevens in geïnstalleerde apps worden ook gewist</translation> <translation id="4673442866648850031">Stylustools openen wanneer de stylus wordt verwijderd</translation> @@ -4228,6 +4240,7 @@ <translation id="485480310608090163">Meer instellingen en rechten</translation> <translation id="4858913220355269194">Fritz</translation> <translation id="4862642413395066333">OCSP-antwoorden ondertekenen</translation> +<translation id="4863702650881330715">Compatibiliteit uitbreiden</translation> <translation id="4863769717153320198">Ziet eruit als <ph name="WIDTH" /> x <ph name="HEIGHT" /> (standaardresolutie)</translation> <translation id="4864805589453749318">Selecteer de ouder die toestemming geeft om een schoolaccount toe te voegen.</translation> <translation id="486635084936119914">Bepaalde bestandstypen na downloaden automatisch openen</translation> @@ -4276,7 +4289,6 @@ <translation id="4893336867552636863">Hiermee worden je browsegegevens op dit apparaat definitief verwijderd.</translation> <translation id="4893454800196085005">Goed - dvd</translation> <translation id="4893522937062257019">Op het vergrendelscherm</translation> -<translation id="4897496410259333978">Neem contact op met je beheerder voor meer informatie.</translation> <translation id="4898011734382862273">Het certificaat '<ph name="CERTIFICATE_NAME" />' vertegenwoordigt een certificeringsinstantie.</translation> <translation id="4899052647152077033">Kleuren omkeren</translation> <translation id="4899696330053002588">Bevat advertenties</translation> @@ -4474,6 +4486,7 @@ <translation id="5094721898978802975">Communiceren met samenwerkende legitieme apps</translation> <translation id="5097002363526479830">Kan geen verbinding maken met het netwerk '<ph name="NAME" />': <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Meer informatie over het gebruik van locatie</translation> +<translation id="5097349930204431044">Sites die je bezoekt, kunnen vaststellen wat je leuk vindt en daarna advertenties voorstellen terwijl je verder browset</translation> <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatisch klikken als de cursor stopt</translation> <translation id="5101683448725092498">Back-up maken</translation> @@ -4656,6 +4669,7 @@ <translation id="5275352920323889391">Hond</translation> <translation id="527605719918376753">Tabblad dempen</translation> <translation id="527605982717517565">JavaScript altijd toestaan op <ph name="HOST" /></translation> +<translation id="5276357196618041410">Kan de configuratie niet opslaan zonder eerst in te loggen</translation> <translation id="5277127016695466621">Zijvenster bekijken</translation> <translation id="5278823018825269962">Status-ID</translation> <translation id="5279600392753459966">Alle blokkeren</translation> @@ -5806,7 +5820,6 @@ <translation id="6347010704471250799">Melding bekijken</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> installeren</translation> <translation id="6354918092619878358">Elliptische SECG-kromme secp256r1 (ook wel ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Experimentele browser (alfa-kwaliteit). Sommige functies ontbreken of zijn onvolledig. Meld problemen via Hulp > Een probleem melden.</translation> <translation id="635609604405270300">Apparaat aan laten</translation> <translation id="63566973648609420">Alleen iemand met je wachtwoordzin kan je versleutelde gegevens lezen. De wachtwoordzin wordt niet verzonden naar of opgeslagen door Google. Als je je wachtwoordzin vergeet of deze instelling wilt wijzigen, moet je de <ph name="BEGIN_LINK" />synchronisatie resetten<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Bepaalde ondersteunde links worden nog steeds geopend in <ph name="APP_NAME" /> of <ph name="APP_NAME_2" />.</translation> @@ -6146,6 +6159,7 @@ <translation id="6670767097276846646">Met sommige extensies kun je zoekmachines aan Chrome toevoegen</translation> <translation id="6671320560732140690">{COUNT,plural, =1{een adres}other{# adressen}}</translation> <translation id="6671497123040790595">Beheer door <ph name="MANAGER" /> instellen</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> toevoegen</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Geef je wachtwoordzin op om de synchronisatie te starten</translation> <translation id="6675665718701918026">Aanwijsapparaat verbonden</translation> @@ -6229,6 +6243,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Incognito)</translation> <translation id="6756157672127672536">De app Bestanden biedt snelle toegang tot bestanden die je op Google Drive, externe opslag of je Chrome OS-apparaat hebt opgeslagen.</translation> <translation id="6756643207511618722">Spraakengines</translation> +<translation id="6757431299485455321">Help andere apparaten deze hotspot te vinden.</translation> <translation id="6758056191028427665">Laat ons weten of we goed bezig zijn.</translation> <translation id="6759193508432371551">Terugzetten op fabrieksinstellingen</translation> <translation id="6761431452438552910">Zorg dat je bluetooth-apparaat in de koppelingsstand staat en in de buurt is. Koppel alleen met apparaten die je vertrouwt.</translation> @@ -6328,6 +6343,7 @@ <translation id="6833479554815567477">Tabblad verwijderd uit groep <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Overschakelen naar een slimme, beveiligde browser</translation> <translation id="6833996806551876956">Proef voor privacy-sandbox</translation> +<translation id="6835712061486505758">Maak een wifi-hotspot om andere apparaten een internetverbinding te bieden. <ph name="BEGIN_LINK_LEARN_MORE" />Meer informatie<ph name="END_LINK_LEARN_MORE" /></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="6839916869147598086">Inloggegevens zijn gewijzigd</translation> @@ -6488,6 +6504,7 @@ <translation id="697508444536771064">Linux afsluiten</translation> <translation id="6975361011348772931">Lezen en wijzigen aangevraagd</translation> <translation id="6978121630131642226">Zoekmachines</translation> +<translation id="6978717888677691380">Sites die je hebt geblokkeerd</translation> <translation id="6979041727349121225">Energiebesparing</translation> <translation id="6979044105893951891">Beheerde gastsessies starten en beëindigen</translation> <translation id="6979440798594660689">Geluid uitzetten (standaard)</translation> @@ -6579,6 +6596,7 @@ <translation id="7047059339731138197">Een achtergrond kiezen</translation> <translation id="7048457618657122233">Link delen via <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Bestand behouden?</translation> +<translation id="7050037487872780845">Ongeldige hotspotconfiguratie</translation> <translation id="7052237160939977163">Gegevens over het bijhouden van prestaties verzenden</translation> <translation id="7053983685419859001">Blokkeren</translation> <translation id="7055152154916055070">Omleiding geblokkeerd:</translation> @@ -6783,6 +6801,7 @@ <translation id="7258192266780953209">Transformaties</translation> <translation id="7258225044283673131">De app reageert niet. Selecteer 'Nu sluiten' om de app te sluiten.</translation> <translation id="7260186537988033909">Apparaatinschrijving voor kiosken en digitale borden afgerond</translation> +<translation id="7260367682327802201">Je Android-apparaat kan een vergelijkbare instelling hebben. Als advertentiemeting aanstaat in Chrome en op je Android-apparaat, kan een bedrijf mogelijk de effectiviteit van een advertentie meten op websites die je bezoekt en in apps die je gebruikt.</translation> <translation id="7262004276116528033">Deze inlogservice wordt gehost door <ph name="SAML_DOMAIN" />.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Rechten verwijderd voor 1 site}other{Rechten verwijderd voor {NUM_SITES} sites}}</translation> <translation id="7264695323040866038">De <ph name="APP" />-app altijd gebruiken om ondersteunde weblinks te openen?</translation> @@ -6926,6 +6945,7 @@ <translation id="7406912950279255498">Modus voor kleurinversie</translation> <translation id="7407430846095439694">Importeren en binden</translation> <translation id="7407504355934009739">De meeste mensen blokkeren meldingen van deze site</translation> +<translation id="7408080603962564527">Dit is zichtbaar voor anderen</translation> <translation id="740810853557944681">Een printerserver toevoegen</translation> <translation id="7409549334477097887">Extra groot</translation> <translation id="7409599290172516453">Recente foto's</translation> @@ -6964,7 +6984,6 @@ <translation id="7434757724413878233">Muisversnelling</translation> <translation id="7434969625063495310">Kan de printerserver niet toevoegen. Controleer de configuratie van de server en probeer het opnieuw.</translation> <translation id="7436921188514130341">Asjemenou! Er is iets misgegaan bij het veranderen van de naam.</translation> -<translation id="7438495332316988804">Je kunt de standaardbrowser vinden door Chrome te typen in de Launcher.</translation> <translation id="7439519621174723623">Voeg een apparaatnaam toe om door te gaan</translation> <translation id="7441736921018636843">Als je deze instelling wilt wijzigen, moet je de <ph name="BEGIN_LINK" />synchronisatie resetten<ph name="END_LINK" /> om de wachtwoordzin voor synchronisatie te verwijderen</translation> <translation id="7441830548568730290">Andere gebruikers.</translation> @@ -7241,6 +7260,7 @@ <translation id="7684718995427157417">Zet Android Debug Bridge (ADB) aan om je apps te maken en te testen. Let op: Met deze actie sta je toe dat Android-apps worden geïnstalleerd die niet door Google zijn geverifieerd. Als je deze functie wilt uitzetten, moeten de fabrieksinstellingen van je apparaat worden hersteld.</translation> <translation id="7685049629764448582">JavaScript-geheugen</translation> <translation id="7685087414635069102">Pincode vereist</translation> +<translation id="7686086654630106285">Meer informatie over door de site voorgestelde advertenties</translation> <translation id="7686581688229391955">Selecteer dit om extensies op deze site toe te staan</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Nieuw wachtwoord bevestigen</translation> @@ -7262,6 +7282,7 @@ <translation id="7704317875155739195">Zoekopdrachten en URL's automatisch aanvullen</translation> <translation id="7704521324619958564">Play Store openen</translation> <translation id="7705276765467986571">Kan bookmarkmodel niet laden.</translation> +<translation id="7705334495398865155">Gebruik een willekeurige hardware-ID (BSSID) om te voorkomen dat anderen dit apparaat volgen.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Deze site mag je bewegingssensoren niet gebruiken.</translation> <translation id="7707922173985738739">Mobiele data gebruiken</translation> @@ -7453,6 +7474,7 @@ <translation id="7881483672146086348">Account bekijken</translation> <translation id="7883792253546618164">Je kunt je afmelden wanneer je maar wilt.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Check één site die onlangs veel meldingen heeft gestuurd}other{Check {NUM_SITES} sites die onlangs veel meldingen hebben gestuurd}}</translation> +<translation id="7884446017008693258">Hotspot-instellingen</translation> <translation id="788453346724465748">Accountgegevens laden…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{een item}other{# items}}</translation> <translation id="7886605625338676841">E-simkaart</translation> @@ -7540,6 +7562,7 @@ <translation id="7952904276017482715">Verwachte ID '<ph name="EXPECTED_ID" />', maar ID is '<ph name="NEW_ID" />'</translation> <translation id="7953669802889559161">Invoermethoden</translation> <translation id="7953955868932471628">Sneltoetsen beheren</translation> +<translation id="7955105108888461311">Persoonlijk vragen</translation> <translation id="7955177647836564772">Als Smart Lock aanstaat en je telefoon is ontgrendeld, hoef je geen wachtwoord of pincode in te vullen.</translation> <translation id="7956373551960864128">Je opgeslagen printers</translation> <translation id="7957074856830851026">Apparaatgegevens bekijken, zoals serienummer of item-ID</translation> @@ -7678,6 +7701,7 @@ <ph name="BEGIN_PARAGRAPH3" />Je kunt deze service uitzetten via Instellingen.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Tabbladen</translation> <translation id="8076835018653442223">Toegang tot lokale bestanden op je apparaat is ingetrokken door je beheerder</translation> +<translation id="8077120325605624147">Elke site die je bezoekt, kan elke advertentie aan je tonen</translation> <translation id="80798452873915119">Sites kunnen vragen of ze vensters mogen beheren op al je schermen</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Je sessie wordt beheerd door <ph name="MANAGER_NAME" />. Beheerders kunnen je profiel verwijderen en ook je netwerkverkeer bijhouden.</translation> @@ -8190,6 +8214,7 @@ <translation id="8557180006508471423">Zet Google Chrome aan in Locatievoorzieningen op je Mac</translation> <translation id="8557856025359704738">De volgende download is op <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Toegangscodes</translation> +<translation id="8559961053328923750">Chrome beperkt de totale hoeveelheid gegevens die sites via de browser kunnen delen om de advertentieprestaties te meten</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Alles openen in &nieuw venster}=1{Openen in &nieuw venster}other{Alles ({COUNT}) openen in &nieuw venster}}</translation> <translation id="8561206103590473338">Olifant</translation> <translation id="8561565784790166472">Ga voorzichtig verder</translation> @@ -8331,6 +8356,7 @@ <translation id="8678933587484842200">Hoe moet deze app worden gestart?</translation> <translation id="8680251145628383637">Log in om je bookmarks, geschiedenis, wachtwoorden en andere instellingen op te halen op al je apparaten. Je wordt ook automatisch ingelogd bij je Google-services.</translation> <translation id="8681614230122836773">Chrome heeft schadelijke software gevonden op je computer</translation> +<translation id="8681886425883659911">Advertenties worden geblokkeerd op sites waarvan bekend is dat ze opdringerige of misleidende advertenties tonen</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> is verbonden en klaar</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> annuleren</translation> <translation id="8688672835843460752">Beschikbaar</translation> @@ -8702,6 +8728,7 @@ <translation id="9021662811137657072">Virus gedetecteerd</translation> <translation id="902236149563113779">Sites volgen je camerapositie meestal voor AR-functies, zoals games of visuele aanduidingen voor routebeschrijvingen</translation> <translation id="9022847679183471841">Dit account wordt al op deze computer gebruikt door <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">Sites en adverteerders kunnen de prestaties van hun advertenties meten</translation> <translation id="9023015617655685412">Bookmark toevoegen voor dit tabblad…</translation> <translation id="9023909777842748145">Als je deze functie uitzet, heeft dit geen gevolgen voor de mogelijkheid van je apparaat om de informatie te sturen die nodig is voor essentiële services zoals systeemupdates en beveiliging.</translation> <translation id="9024127637873500333">&Openen op nieuw tabblad</translation> @@ -8831,6 +8858,7 @@ <translation id="9128335130883257666">Instellingenpagina openen voor <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Verbinding maken met netwerk</translation> <translation id="9130015405878219958">Ongeldige modus opgegeven.</translation> +<translation id="9131209053278896908">Hier zie je geblokkeerde sites</translation> <translation id="9131487537093447019">Berichten verzenden naar en ontvangen van Bluetooth-apparaten.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 bookmark}other{# bookmarks}}</translation> <translation id="9134066738478820307">Sites kunnen ID's gebruiken om beveiligde content af te spelen</translation> @@ -8884,6 +8912,7 @@ <translation id="9180281769944411366">Dit proces kan enkele minuten duren. De Linux-container wordt gestart.</translation> <translation id="9180380851667544951">Site kan je scherm delen</translation> <translation id="9182556968660520230">Niet toestaan dat sites beschermde content afspelen</translation> +<translation id="9183331776983279456">Chrome verwijdert automatisch sites die ouder zijn dan 4 weken. Een site die je opnieuw bezoekt, kan weer op de lijst komen te staan. Je kunt ook voorkomen dat een site advertenties aan je voorstelt.</translation> <translation id="918352324374649435">{COUNT,plural, =1{App}other{# apps}}</translation> <translation id="9186963452600581158">Inloggen met het Google-account van een kind</translation> <translation id="9187967020623675250">Toetsen komen niet overeen. Druk op een willekeurige toets om te <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index c7c1b86f..930bdd20 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -774,6 +774,7 @@ <translation id="168715261339224929">For å få bokmerkene dine på alle enhetene dine, slå på synkronisering.</translation> <translation id="1688867105868176567">Vil du fjerne nettstedsdata?</translation> <translation id="1688935057616748272">Skriv inn en bokstav</translation> +<translation id="1689333818294560261">Kallenavn</translation> <translation id="168991973552362966">Legg til en skriver i nærheten</translation> <translation id="1689945336726856614">Kopiér &nettadresse</translation> <translation id="1692115862433274081">Bruk en annen konto</translation> @@ -1529,7 +1530,6 @@ <translation id="2329597144923131178">Logg på for å få bokmerkene, loggen, passordene og de andre innstillingene dine på alle enhetene du bruker.</translation> <translation id="2332115969598251205">Kan ikke laste inn enheter som er lagret i <ph name="PRIMARY_EMAIL" />. Sjekk internettilkoblingen din, og prøv på nytt.</translation> <translation id="2332131598580221120">Se i Nettmarked</translation> -<translation id="2332192922827071008">Åpne Innstillinger</translation> <translation id="2332515770639153015">Safe Browsing med økt beskyttelse er påslått</translation> <translation id="2332742915001411729">Tilbakestill til standard</translation> <translation id="2332948465534020594">Ikke forstyrr er slått på</translation> @@ -4304,7 +4304,6 @@ <translation id="4893336867552636863">Dette sletter nettlesingsdataene dine permanent fra denne enheten.</translation> <translation id="4893454800196085005">God – DVD</translation> <translation id="4893522937062257019">På låseskjermen</translation> -<translation id="4897496410259333978">Kontakt administratoren din for å få mer informasjon.</translation> <translation id="4898011734382862273">Sertifikatet «<ph name="CERTIFICATE_NAME" />» representerer en sertifiseringsinstans</translation> <translation id="4899052647152077033">Inverter farger</translation> <translation id="4899696330053002588">Inneholder annonser</translation> @@ -5839,7 +5838,6 @@ <translation id="6347010704471250799">Vis varsel</translation> <translation id="6349101878882523185">Installer <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptisk kurve secp256r1 (også kjent som ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Nettleser på forsøksstadiet (alfaversjon)! Noen funksjoner mangler eller er uferdige. Rapportér problemer via Hjelp > «Rapporter et problem».</translation> <translation id="635609604405270300">Hold enheten påslått</translation> <translation id="63566973648609420">Bare de som har passordfrasen din, kan lese de krypterte dataene dine. Passordfrasen blir verken sendt til Google eller lagret av oss. Hvis du glemmer passordfrasen eller vil endre denne innstillingen, må du <ph name="BEGIN_LINK" />tilbakestille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Noen støttede linker åpnes fremdeles i <ph name="APP_NAME" /> eller <ph name="APP_NAME_2" />.</translation> @@ -7005,7 +7003,6 @@ <translation id="7434757724413878233">Museakselerasjon</translation> <translation id="7434969625063495310">Kunne ikke legge til utskriftstjeneren. Kontroller tjenerens konfigurasjon, og prøv på nytt.</translation> <translation id="7436921188514130341">Æsj! Det oppsto en feil under navneendringen.</translation> -<translation id="7438495332316988804">Du finner standardnettleseren ved å skrive inn «Chrome» i Appoversikt.</translation> <translation id="7439519621174723623">Legg til et enhetsnavn for å fortsette</translation> <translation id="7441736921018636843">For å endre denne innstillingen, <ph name="BEGIN_LINK" />tilbakestill synkronisering<ph name="END_LINK" /> for å fjerne passordfrasen din for synkronisering</translation> <translation id="7441830548568730290">Andre brukere</translation> @@ -7586,6 +7583,7 @@ <translation id="7952904276017482715">Den forventede ID-en var «<ph name="EXPECTED_ID" />», men den faktiske ID-en var «<ph name="NEW_ID" />»</translation> <translation id="7953669802889559161">Inndatametoder</translation> <translation id="7953955868932471628">Administrer snarveier</translation> +<translation id="7955105108888461311">Spør fysisk</translation> <translation id="7955177647836564772">Hvis Smart Lock er slått på og telefonen låses opp, trenger du ikke å oppgi passord eller PIN-kode</translation> <translation id="7956373551960864128">Dine lagrede skrivere</translation> <translation id="7957074856830851026">Se informasjon om enheten, som for eksempel serienummeret eller element-ID-en</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index b9786531..29a5d88d 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -769,6 +769,7 @@ <translation id="168715261339224929">ଆପଣଙ୍କର ବୁକ୍ମାର୍କଗୁଡ଼ିକୁ ନିଜର ସବୁ ଡିଭାଇସ୍ଗୁଡ଼ିକରେ ପାଇବା ପାଇଁ, ସିଙ୍କକୁ ଚାଲୁ କରନ୍ତୁ।</translation> <translation id="1688867105868176567">ସାଇଟ୍ ଡାଟା ଖାଲି କରିବେ?</translation> <translation id="1688935057616748272">ଏକ ଅକ୍ଷର ଟାଇପ୍ କରନ୍ତୁ</translation> +<translation id="1689333818294560261">ଡାକନାମ</translation> <translation id="168991973552362966">ନିକଟସ୍ଥ ଏକ ପ୍ରିଣ୍ଟର୍ ଯୋଗ କରନ୍ତୁ</translation> <translation id="1689945336726856614">&URL କପି କରନ୍ତୁ</translation> <translation id="1692115862433274081">ଅନ୍ୟ ଏକ ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରନ୍ତୁ</translation> @@ -1513,7 +1514,6 @@ <translation id="2329597144923131178">ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍ଗୁଡ଼ିକରେ ନିଜର ବୁକ୍ମାର୍କଗୁଡିକ, ଇତିବୃତ୍ତି, ପାସ୍ୱର୍ଡ ଏବଂ ଅନ୍ୟ ସେଟିଂସ୍ ପାଇବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />ରେ ସେଭ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକୁ ଲୋଡ କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଇଣ୍ଟରନେଟ କନେକ୍ସନକୁ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="2332131598580221120">ଷ୍ଟୋର୍ରେ ଦେଖନ୍ତୁ</translation> -<translation id="2332192922827071008">ଅଗ୍ରାଧିକାରଗୁଡ଼ିକୁ ଖୋଲନ୍ତୁ</translation> <translation id="2332515770639153015">ଉନ୍ନତ ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂ ଚାଲୁ ଅଛି</translation> <translation id="2332742915001411729">ଡିଫଲ୍ଟକୁ ରିସେଟ୍ କରନ୍ତୁ</translation> <translation id="2332948465534020594">'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ' ସକ୍ଷମ କରାଯାଇଛି</translation> @@ -4281,7 +4281,6 @@ <translation id="4893336867552636863">ଏହି ଡିଭାଇସ୍ରୁ ଆପଣଙ୍କର ବ୍ରାଉଜିଂ ଡାଟାକୁ ଏହା ସ୍ଥାୟୀରୂପେ ଖାଲି କରିଦେବ।</translation> <translation id="4893454800196085005">ଭଲ - DVD</translation> <translation id="4893522937062257019">ଲକ୍ ସ୍କ୍ରିନ୍ ଉପରେ</translation> -<translation id="4897496410259333978">ଅଧିକ ସୂଚନା ପାଇଁ, ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="4898011734382862273">ସାର୍ଟିଫିକେଟ୍ "<ph name="CERTIFICATE_NAME" />" ଏକ ସାର୍ଟିଫିକେସନ୍ ଅଧିକାରୀଙ୍କର ପ୍ରରତିନିଧିତ୍ୱ କରେ</translation> <translation id="4899052647152077033">ରଙ୍ଗ ଇନଭାର୍ଟ କରନ୍ତୁ</translation> <translation id="4899696330053002588">ଏଥିରେ ବିଜ୍ଞାପନଗୁଡ଼ିକ ଅଛି</translation> @@ -5812,7 +5811,6 @@ <translation id="6347010704471250799">ବିଜ୍ଞପ୍ତି ଦେଖାନ୍ତୁ</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ଇନଷ୍ଟଲ୍ କରନ୍ତୁ</translation> <translation id="6354918092619878358">SECG ଅଣ୍ଡାକାର ବକ୍ର secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">ପରୀକ୍ଷାମୂଳକ (ଆଲଫା-ଗୁଣବତ୍ତା) ବ୍ରାଉଜର୍! କିଛି ଫିଚର୍ ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ଅସମ୍ପୂର୍ଣ୍ଣ ଅଛି। ସମସ୍ୟାଗୁଡ଼ିକ ବିଷୟରେ ଏଠାରେ ରିପୋର୍ଟ କରନ୍ତୁ: ସହାୟତା > "ଏକ ସମସ୍ୟା ବିଷୟରେ ରିପୋର୍ଟ କରନ୍ତୁ..."।</translation> <translation id="635609604405270300">ଡିଭାଇସ୍କୁ ଚାଲୁ ଅବସ୍ଥାରେ ରଖନ୍ତୁ</translation> <translation id="63566973648609420">ଆପଣଙ୍କ ଏନ୍କ୍ରିପ୍ଟ ହୋଇଥିବା ଡାଟାକୁ କେବଳ ଆପଣଙ୍କ ପାସ୍ଫ୍ରେଜ୍ ଥିବା ଜଣେ ବ୍ୟକ୍ତି ପଢ଼ିପାରିବେ। Google ଦ୍ବାରା ପାସ୍ଫ୍ରେଜ୍ ପଠାଯାଏ ନାହିଁ ବା ଷ୍ଟୋର୍ କରାଯାଏନାହିଁ। ଯଦି ଆପଣ ନିଜର ପାସ୍ଫ୍ରେଜ୍ ଭୁଲିଯାଇଛନ୍ତି କିମ୍ବା ଏହି ସେଟିଂ ପରିବର୍ତ୍ତନ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଆପଣଙ୍କୁ <ph name="BEGIN_LINK" />ସିଙ୍କ୍ ରିସେଟ୍<ph name="END_LINK" /> କରିବାକୁ ହେବ।</translation> <translation id="6357305427698525450">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" /> କିମ୍ବା <ph name="APP_NAME_2" />ରେ ଖୋଲିବ।</translation> @@ -6973,7 +6971,6 @@ <translation id="7434757724413878233">ମାଉସ୍ ଆକ୍ସଲରେସନ୍</translation> <translation id="7434969625063495310">ପ୍ରିଣ୍ଟ ସର୍ଭର୍ ଯୋଗ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ସର୍ଭରର କନଫିଗରେସନ୍ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="7436921188514130341">ଇସ୍, କିଛି ଭୁଲ୍ ହୋଇଛି! ରିନେମ୍ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ହୋଇଥିଲା।</translation> -<translation id="7438495332316988804">ଲଞ୍ଚରରେ "Chrome" ଟାଇପ୍ କରି ଷ୍ଟାଣ୍ଡାର୍ଡ ବ୍ରାଉଜର୍ ମିଳିପାରିବ।</translation> <translation id="7439519621174723623">ଜାରି ରଖିବାକୁ ଏକ ଡିଭାଇସର ନାମ ଯୋଗ କରନ୍ତୁ</translation> <translation id="7441736921018636843">ଏହି ସେଟିଂ ପର୍ବର୍ତ୍ତନ କରିବାକୁ, <ph name="BEGIN_LINK" />ସିଙ୍କ୍ ରିସେଟ୍ କରନ୍ତୁ<ph name="END_LINK" /> ଯାହାଦ୍ୱାରା ଆପଣଙ୍କର ସିଙ୍କ୍ ପାସ୍ଫ୍ରେଜ୍ କାଢ଼ନ୍ତୁ</translation> <translation id="7441830548568730290">ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାମାନେ</translation> @@ -7551,6 +7548,7 @@ <translation id="7952904276017482715">ଆଶାନୁରୂପ ID "<ph name="EXPECTED_ID" />", କିନ୍ତୁ ID "<ph name="NEW_ID" />" ଥିଲା</translation> <translation id="7953669802889559161">ଇନପୁଟଗୁଡ଼ିକ</translation> <translation id="7953955868932471628">ସର୍ଟକଟ୍ ପରିଚାଳନା କରନ୍ତୁ</translation> +<translation id="7955105108888461311">ବ୍ୟକ୍ତିଗତ ଭାବେ ପଚାରନ୍ତୁ</translation> <translation id="7955177647836564772">ଯଦି ସ୍ମାର୍ଟ ଲକ ଚାଲୁ କରାଯାଏ ଏବଂ ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରାଯାଏ, ତେବେ ଆପଣଙ୍କୁ ଏକ ପାସୱାର୍ଡ କିମ୍ବା PIN ଲେଖିବାର ଆବଶ୍ୟକତା ନାହିଁ</translation> <translation id="7956373551960864128">ଆପଣଙ୍କ ଦ୍ୱାରା ସେଭ୍ କରାଯାଇଥିବା ପ୍ରିଣ୍ଟର୍ଗୁଡ଼ିକ</translation> <translation id="7957074856830851026">କ୍ରମିକ ସଂଖ୍ୟା କିମ୍ବା ଆସେଟ୍ ID ପରି, ଡିଭାଇସ୍ ସୂଚନା ଦେଖନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 487fdb4b..fa99b3d 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">ਇਹ ਪੰਨਾ ਪ੍ਰਤਿਕਿਰਿਆ ਨਹੀਂ ਦੇ ਰਿਹਾ ਹੈ</translation> <translation id="1041263367839475438">ਉਪਲਬਧ ਡੀਵਾਈਸਾਂ</translation> <translation id="1042174272890264476">ਤੁਹਾਡਾ ਕੰਪਿਊਟਰ ਵੀ <ph name="SHORT_PRODUCT_NAME" /> ਦੀ RLZ ਲਾਇਬ੍ਰੇਰੀ ਬਿਲਟ ਇਨ ਤੋਂ ਆਉਂਦਾ ਹੈ। RLZ ਖੋਜਾਂ ਅਤੇ ਇੱਕ ਖ਼ਾਸ ਪ੍ਰਚਾਰ ਮੁਹਿੰਮ ਵੱਲੋਂ ਕੀਤੀ ਗਈ <ph name="SHORT_PRODUCT_NAME" /> ਵਰਤੋਂ ਦਾ ਹਿਸਾਬ ਲਗਾਉਣ ਲਈ ਇੱਕ ਗ਼ੈਰ-ਬੇਜੋੜ, ਗ਼ੈਰ-ਨਿੱਜੀ ਪਛਾਣਯੋਗ ਟੈਗ ਅਸਾਈਨ ਕਰਦਾ ਹੈ। ਇਹ ਲੇਬਲ ਕਦੇ-ਕਦਾਈਂ <ph name="PRODUCT_NAME" /> ਵਿੱਚ Google Search ਪੁੱਛਗਿੱਛਾਂ ਵਿੱਚ ਪ੍ਰਗਟ ਹੁੰਦੇ ਹਨ।</translation> +<translation id="1042248468362992359">ਹੌਟਸਪੌਟ ਵਰਤਣ ਲਈ ਮੋਬਾਈਲ ਡਾਟਾ ਨਾਲ ਕਨੈਕਟ ਕਰੋ। <ph name="BEGIN_LINK_LEARN_MORE" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ। Linux ਨੂੰ ਸ਼ਾਇਦ ਸਿਰਫ਼ ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਅੱਪਗ੍ਰੇਡ ਕੀਤਾ ਜਾਵੇ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਲੌਗਾਂ ਦੀ ਸਮੀਖਿਆ ਕਰੋ। ਲੌਗਾਂ ਨੂੰ ਫ਼ਾਈਲਾਂ > ਮੇਰੀਆਂ ਫ਼ਾਈਲਾਂ > <ph name="LOG_FILE" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ</translation> <translation id="104419033123549300">ਕੀਮੈਪ ਸਟਾਈਲ</translation> <translation id="104710386808485638">ਕੀ Linux ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ?</translation> @@ -158,6 +159,7 @@ <translation id="1139923033416533844">ਮੈਮੋਰੀ ਵਰਤੋਂ</translation> <translation id="1140351953533677694">ਆਪਣੀ ਬਲੂਟੁੱਥ ਅਤੇ ਸੀਰੀਅਲ ਡਿਵਾਈਸਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ</translation> <translation id="114036956334641753">ਆਡੀਓ ਅਤੇ ਸੁਰਖੀਆਂ</translation> +<translation id="1141949282671776404">ਜਦੋਂ ਇਹ ਟੈਬ ਅਕਿਰਿਆਸ਼ੀਲ ਸੀ, ਤਾਂ ਮੈਮੋਰੀ ਸੇਵਰ ਨੇ ਹੋਰ ਕਾਰਜਾਂ ਲਈ <ph name="MEMORY_VALUE" /> ਮੈਮੋਰੀ ਨੂੰ ਖਾਲੀ ਕੀਤਾ।</translation> <translation id="1142002900084379065">ਹਾਲੀਆ ਫ਼ੋਟੋਆਂ</translation> <translation id="1143142264369994168">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸਾਈਨਰ</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਕੋਈ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ • 1 ਮਿੰਟ ਪਹਿਲਾਂ ਜਾਂਚ ਕੀਤੀ ਗਈ}one{Chrome ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਕੋਈ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ • {NUM_MINS} ਮਿੰਟ ਪਹਿਲਾਂ ਜਾਂਚ ਕੀਤੀ ਗਈ}other{Chrome ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਕੋਈ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ • {NUM_MINS} ਮਿੰਟ ਪਹਿਲਾਂ ਜਾਂਚ ਕੀਤੀ ਗਈ}}</translation> @@ -318,6 +320,7 @@ <translation id="1285320974508926690">ਕਦੇ ਵੀ ਇਸ ਸਾਈਟ ਦਾ ਅਨੁਵਾਦ ਨਾ ਕਰੋ</translation> <translation id="1285484354230578868">ਆਪਣੇ Google Drive ਖਾਤੇ ਵਿੱਚ ਡਾਟਾ ਸਟੋਰ ਕਰੋ</translation> <translation id="1285625592773741684">ਮੌਜੂਦਾ ਡਾਟਾ ਵਰਤੋਂ ਸੰਬੰਧੀ ਸੈਟਿੰਗ 'ਮੋਬਾਈਲ ਡਾਟਾ' ਹੈ</translation> +<translation id="1285815028662278915">ਸ਼ਾਇਦ ਤੁਹਾਡਾ ਮੋਬਾਈਲ ਡਾਟਾ ਹੌਟਸਪੌਟ ਦਾ ਸਮਰਥਨ ਨਾ ਕਰਦਾ ਹੋਵੇ। <ph name="BEGIN_LINK_LEARN_MORE" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">ਸੂਰਜ ਡੁੱਬਣ ਸਮੇਂ ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ ਆਪਣੇ ਆਪ ਚਾਲੂ ਹੋ ਜਾਵੇਗੀ</translation> <translation id="1288300545283011870">ਬੋਲੀ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ</translation> <translation id="1289619947962767206">ਇਹ ਵਿਕਲਪ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। ਟੈਬ ਨੂੰ ਪੇਸ਼ ਕਰਨ ਲਈ, <ph name="GOOGLE_MEET" /> ਦੀ ਵਰਤੋਂ ਕਰੋ।</translation> @@ -655,6 +658,7 @@ <translation id="1596286373007273895">ਉਪਲਬਧ</translation> <translation id="1596709061955594992">ਬਲੂਟੁੱਥ ਬੰਦ ਹੈ। ਉਪਲਬਧ ਡੀਵਾਈਸਾਂ ਨੂੰ ਦੇਖਣ ਲਈ, ਬਲੂਟੁੱਥ ਚਾਲੂ ਕਰੋ।</translation> <translation id="1596780725094407793">- ਉਪ-ਡੋਮੇਨ ਸ਼ਾਮਲ ਹਨ</translation> +<translation id="1598163867407640634"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ਨਾਲ <ph name="SITE_ETLD_PLUS_ONE" /> ਦੀ ਵਰਤੋਂ ਕਰੋ</translation> <translation id="1598233202702788831">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਅੱਪਡੇਟਾਂ ਅਯੋਗ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ।</translation> <translation id="1600857548979126453">ਪੰਨਾ ਡੀਬੱਗਰ ਤੱਕ ਪਹੁੰਚ ਬੈਕਨਡ</translation> <translation id="1601560923496285236">ਲਾਗੂ ਕਰੋ</translation> @@ -770,6 +774,7 @@ <translation id="168715261339224929">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਿੰਕ ਚਾਲੂ ਕਰੋ।</translation> <translation id="1688867105868176567">ਕੀ ਸਾਈਟ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨਾ ਹੈ?</translation> <translation id="1688935057616748272">ਕੋਈ ਅੱਖਰ ਟਾਈਪ ਕਰੋ</translation> +<translation id="1689333818294560261">ਉਪਨਾਮ</translation> <translation id="168991973552362966">ਕੋਈ ਨੇੜਲਾ ਪ੍ਰਿੰਟਰ ਸ਼ਾਮਲ ਕਰੋ</translation> <translation id="1689945336726856614">&URL ਕਾਪੀ ਕਰੋ</translation> <translation id="1692115862433274081">ਕੋਈ ਹੋਰ ਖਾਤਾ ਵਰਤੋ</translation> @@ -1241,6 +1246,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />ਨੋਟ ਕਰੋ:<ph name="END_BOLD" /> ਸਿਸਟਮ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ ਰੀਬੂਟ ਹੋਵੇਗਾ।</translation> <translation id="2095774564753225041">ਸਮਰਥਿਤ ਫ਼ਾਈਲ ਦੀਆਂ ਕਿਸਮਾਂ</translation> +<translation id="2097616539631531348">ਜਦੋਂ ਇਹ ਟੈਬ ਅਕਿਰਿਆਸ਼ੀਲ ਸੀ, ਤਾਂ ਮੈਮੋਰੀ ਸੇਵਰ ਨੇ ਹੋਰ ਕਾਰਜਾਂ ਲਈ ਮੈਮੋਰੀ ਨੂੰ ਖਾਲੀ ਕੀਤਾ।</translation> <translation id="2098805196501063469">ਬਾਕੀ ਬਚੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation> <translation id="2099686503067610784">ਕੀ ਸਰਵਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ "<ph name="CERTIFICATE_NAME" />" ਮਿਟਾਉਣਾ ਹੈ?</translation> <translation id="2100273922101894616">ਸਵੈਚਲਿਤ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> @@ -1526,7 +1532,6 @@ <translation id="2329597144923131178">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਆਪਣੇ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="2332131598580221120">ਸਟੋਰ ਵਿੱਚ ਦੇਖੋ</translation> -<translation id="2332192922827071008">ਤਰਜੀਹਾਂ ਖੋਲ੍ਹੋ</translation> <translation id="2332515770639153015">ਵਿਸਤ੍ਰਿਤ ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਚਾਲੂ ਹੈ</translation> <translation id="2332742915001411729">ਪੂਰਵ-ਨਿਰਧਾਰਤ 'ਤੇ ਰੀਸੈੱਟ ਕਰੋ</translation> <translation id="2332948465534020594">ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਵਿਕਲਪ ਚਾਲੂ ਹੈ</translation> @@ -3384,6 +3389,7 @@ <translation id="4040041015953651705">ਉਹ ਭਾਸ਼ਾ ਜਿਸ ਤੋਂ ਅਨੁਵਾਦ ਕਰਨਾ ਹੈ</translation> <translation id="4040105702484676956">ਕੀ <ph name="SITE_NAME" /> ਅਤੇ ਇਸਦੀ ਸਥਾਪਤ ਕੀਤੀ ਐਪ ਲਈ ਸਾਈਟ ਡਾਟਾ ਅਤੇ ਇਜਾਜ਼ਤਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰਨਾ ਹੈ?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{ਪੰਨੇ ਤੋਂ ਬਾਹਰ ਜਾਓ}one{ਪੰਨੇ ਤੋਂ ਬਾਹਰ ਜਾਓ}other{ਪੰਨਿਆਂ ਤੋਂ ਬਾਹਰ ਜਾਓ}}</translation> +<translation id="4042941173059740150"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ਨਾਲ <ph name="SITE_ETLD_PLUS_ONE" /> 'ਤੇ ਜਾਰੀ ਰੱਖੋ</translation> <translation id="4043267180218562935">ਕਰਸਰ ਦਾ ਆਕਾਰ</translation> <translation id="4044612648082411741">ਆਪਣੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation> <translation id="4044708573046946214">ਸਕ੍ਰੀਨ ਲਾਕ ਪਾਸਵਰਡ</translation> @@ -4294,7 +4300,6 @@ <translation id="4893336867552636863">ਇਸ ਨਾਲ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਤੁਹਾਡਾ ਬ੍ਰਾਉਜ਼ਿੰਗ ਡਾਟਾ ਸਥਾਈ ਤੌਰ 'ਤੇ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।</translation> <translation id="4893454800196085005">ਵਧੀਆ - DVD</translation> <translation id="4893522937062257019">ਲਾਕ ਸਕ੍ਰੀਨ 'ਤੇ</translation> -<translation id="4897496410259333978">ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation> <translation id="4898011734382862273">ਪ੍ਰਮਾਣ-ਪੱਤਰ "<ph name="CERTIFICATE_NAME" />" ਅਥਾਰਿਟੀ ਨੂੰ ਪ੍ਰਸਤੁਤ ਕਰਦਾ ਹੈ</translation> <translation id="4899052647152077033">ਰੰਗ ਪਲਟਾਓ</translation> <translation id="4899696330053002588">ਇਸ ਵਿੱਚ ਵਿਗਿਆਪਨ ਸ਼ਾਮਲ ਹਨ</translation> @@ -5828,7 +5833,6 @@ <translation id="6347010704471250799">ਸੂਚਨਾ ਦਿਖਾਓ</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ਸਥਾਪਤ ਕਰੋ</translation> <translation id="6354918092619878358">SECG ਅੰਡਾਕਾਰ ਘੁਮਾਓ secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">ਪ੍ਰਯੋਗਮਈ (ਅਲਫ਼ਾ-ਕੁਆਲਿਟੀ) ਬ੍ਰਾਊਜ਼ਰ! ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹਨ ਜਾਂ ਅਧੂਰੀਆਂ ਹਨ। ਸਮੱਸਿਆਵਾਂ ਦੀ ਰਿਪੋਰਟ ਕਰਨ ਲਈ ਇੱਥੇ ਜਾਓ: ਮਦਦ > "ਕਿਸੇ ਸਮੱਸਿਆ ਦੀ ਰਿਪੋਰਟ ਕਰੋ..."।</translation> <translation id="635609604405270300">ਡੀਵਾਈਸ ਚਾਲੂ ਰੱਖੋ</translation> <translation id="63566973648609420">ਤੁਹਾਡੇ ਇਨਕ੍ਰਿਪਟਡ ਡਾਟੇ ਨੂੰ ਸਿਰਫ਼ ਓਹੀ ਵਿਅਕਤੀ ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਜਿਸ ਕੋਲ ਤੁਹਾਡਾ ਪਾਸਫਰੇਜ਼ ਹੋਵੇ। ਪਾਸਫਰੇਜ਼ Google ਨੂੰ ਭੇਜਿਆ ਜਾਂ ਉਸ ਵੱਲੋਂ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਭੁੱਲ ਜਾਂਦੇ ਹੋ ਜਾਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ <ph name="BEGIN_LINK" />ਸਿੰਕ ਨੂੰ ਰੀਸੈੱਟ<ph name="END_LINK" /> ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।</translation> <translation id="6357305427698525450">ਕੁਝ ਸਮਰਥਿਤ ਲਿੰਕ ਹਾਲੇ ਵੀ <ph name="APP_NAME" /> ਜਾਂ <ph name="APP_NAME_2" /> ਵਿੱਚ ਖੁੱਲ੍ਹਣਗੇ।</translation> @@ -6990,7 +6994,6 @@ <translation id="7434757724413878233">ਮਾਊਸ ਐਕਸੈੱਲਰੇਸ਼ਨ</translation> <translation id="7434969625063495310">ਪ੍ਰਿੰਟ ਸਰਵਰ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਸਰਵਰ ਦੇ ਸੰਰੂਪਣ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="7436921188514130341">ਓਹੋ! ਨਾਮ ਬਦਲਣ ਦੌਰਾਨ ਗੜਬੜ ਹੋ ਗਈ।</translation> -<translation id="7438495332316988804">ਲਾਂਚਰ ਵਿੱਚ "Chrome" ਟਾਈਪ ਕਰਕੇ ਮਿਆਰੀ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਲੱਭਿਆ ਜਾ ਸਕਦਾ ਹੈ।</translation> <translation id="7439519621174723623">ਜਾਰੀ ਰੱਖਣ ਲਈ ਇੱਕ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਸ਼ਾਮਲ ਕਰੋ</translation> <translation id="7441736921018636843">ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣ ਲਈ, ਆਪਣਾ ਸਿੰਕ ਪਾਸਫਰੇਜ਼ ਹਟਾਉਣ ਵਾਸਤੇ <ph name="BEGIN_LINK" />ਸਿੰਕ ਰੀਸੈੱਟ ਕਰੋ<ph name="END_LINK" /></translation> <translation id="7441830548568730290">ਹੋਰ ਵਰਤੋਂਕਾਰ</translation> @@ -7567,6 +7570,7 @@ <translation id="7952904276017482715">ਸੰਭਾਵਿਤ ਆਈ.ਡੀ. "<ph name="EXPECTED_ID" />" ਹੈ, ਪਰ ਆਈ.ਡੀ. "<ph name="NEW_ID" />" ਸੀ</translation> <translation id="7953669802889559161">ਇਨਪੁੱਟ</translation> <translation id="7953955868932471628">ਸ਼ੌਰਟਕਟਸ ਵਿਵਸਥਿਤ ਕਰੋ</translation> +<translation id="7955105108888461311">ਵਿਅਕਤੀਗਤ ਤੌਰ 'ਤੇ ਪੁੱਛੋ</translation> <translation id="7955177647836564772">ਜੇ Smart Lock ਚਾਲੂ ਹੈ ਅਤੇ ਤੁਹਾਡਾ ਫ਼ੋਨ ਅਣਲਾਕ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਦਾਖਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ</translation> <translation id="7956373551960864128">ਤੁਹਾਡੇ ਵੱਲੋਂ ਰੱਖਿਅਤ ਕੀਤੇ ਪ੍ਰਿੰਟਰ</translation> <translation id="7957074856830851026">ਡੀਵਾਈਸ ਜਾਣਕਾਰੀ ਦੇਖੋ, ਜਿਵੇਂ ਕਿ ਇਸਦਾ ਸੀਰੀਅਲ ਨੰਬਰ ਜਾਂ ਸੰਪਤੀ ਆਈਡੀ</translation> @@ -8347,6 +8351,7 @@ <translation id="8674903726754070732">ਅਫ਼ਸੋਸ, ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਦਾ ਸੰਰੂਪਣ ਕਿਸੇ ਨੁਕਸਦਾਰ ਹਾਰਡਵੇਅਰ ਆਈਡੀ ਨਾਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ChromeOS ਨੂੰ ਨਵੀਨਤਮ ਸੁਰੱਖਿਆ ਸੁਧਾਈਆਂ ਨਾਲ ਅੱਪਡੇਟ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਨੂੰ <ph name="BEGIN_BOLD" />ਨੁਕਸਾਨਦੇਹ ਹਮਲਿਆਂ ਤੋਂ ਖਤਰਾ ਹੋ ਸਕਦਾ ਹੈ<ph name="END_BOLD" />।</translation> <translation id="8675704450909805533"><ph name="DEVICE_OS" /> ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਲਈ ਸਥਾਪਨਾਕਾਰ ਇੱਕ ਵੈਧ ਮੰਜ਼ਿਲ ਨਹੀਂ ਲੱਭ ਸਕਿਆ।</translation> <translation id="8676152597179121671">{COUNT,plural, =1{ਵੀਡੀਓ}one{# ਵੀਡੀਓ}other{# ਵੀਡੀਓ}}</translation> +<translation id="8676276370198826499"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ਨਾਲ <ph name="SITE_ETLD_PLUS_ONE" /> 'ਤੇ ਸਾਈਨ-ਅੱਪ ਕਰੋ</translation> <translation id="8676313779986170923">ਵਿਚਾਰ ਭੇਜਣ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ।</translation> <translation id="8676374126336081632">ਇਨਪੁਟ ਹਟਾਓ</translation> <translation id="8676770494376880701">ਘੱਟ-ਪਾਵਰ ਦਾ ਚਾਰਜਰ ਕਨੈਕਟ ਕੀਤਾ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 10d871d..1e8a304 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -772,6 +772,7 @@ <translation id="168715261339224929">Aby korzystać ze swoich zakładek na wszystkich urządzeniach, włącz synchronizację.</translation> <translation id="1688867105868176567">Wyczyścić dane witryn?</translation> <translation id="1688935057616748272">Wpisz literę</translation> +<translation id="1689333818294560261">Pseudonim</translation> <translation id="168991973552362966">Dodaj drukarkę w pobliżu</translation> <translation id="1689945336726856614">Kopiuj &URL</translation> <translation id="1692115862433274081">Użyj innego konta</translation> @@ -1502,7 +1503,6 @@ <translation id="2329597144923131178">Zaloguj się, by korzystać z zakładek, historii, haseł i innych ustawień na wszystkich swoich urządzeniach.</translation> <translation id="2332115969598251205">Nie udało się wczytać urządzeń zapisanych na koncie <ph name="PRIMARY_EMAIL" />. Sprawdź połączenie z internetem i spróbuj ponownie.</translation> <translation id="2332131598580221120">Wyświetl w sklepie</translation> -<translation id="2332192922827071008">Otwórz Ustawienia</translation> <translation id="2332515770639153015">Włączono Ulepszone Bezpieczne przeglądanie</translation> <translation id="2332742915001411729">Przywróć domyślne</translation> <translation id="2332948465534020594">Włączono tryb Nie przeszkadzać</translation> @@ -4271,7 +4271,6 @@ <translation id="4893336867552636863">Spowoduje to trwałe usunięcie danych przeglądania z tego urządzenia.</translation> <translation id="4893454800196085005">Dobra – DVD</translation> <translation id="4893522937062257019">Na ekranie blokady</translation> -<translation id="4897496410259333978">Aby uzyskać więcej informacji, skontaktuj się z administratorem.</translation> <translation id="4898011734382862273">Certyfikat „<ph name="CERTIFICATE_NAME" />” reprezentuje urząd certyfikacji</translation> <translation id="4899052647152077033">Odwrócenie kolorów</translation> <translation id="4899696330053002588">Zawiera reklamy</translation> @@ -5804,7 +5803,6 @@ <translation id="6347010704471250799">Pokaż powiadomienie</translation> <translation id="6349101878882523185">Zainstaluj aplikację <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Kryptografia krzywych eliptycznych SECG secp256r1 (inne nazwy: ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Przeglądarka experymentalna (jakość wersji alfa). Niektóre funkcje są niedostępne lub nieukończone. Zgłoś problemy, klikając Pomoc > „Zgłoś problem…”.</translation> <translation id="635609604405270300">Nie wyłączaj urządzenia</translation> <translation id="63566973648609420">Twoje zaszyfrowane dane może odczytać tylko ktoś znający hasło. Google nie otrzyma Twojego hasła ani nie będzie go przechowywać. Jeśli je zapomnisz lub zechcesz zmienić to ustawienie, musisz <ph name="BEGIN_LINK" />zresetować synchronizację<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Niektóre obsługiwane linki nadal będą się otwierać w aplikacjach <ph name="APP_NAME" /> lub <ph name="APP_NAME_2" />.</translation> @@ -6965,7 +6963,6 @@ <translation id="7434757724413878233">Przyspieszenie myszy</translation> <translation id="7434969625063495310">Nie udało się dodać serwera druku. Sprawdź konfigurację serwera i spróbuj ponownie.</translation> <translation id="7436921188514130341">Kurza twarz! Podczas zmiany nazwy wystąpił błąd.</translation> -<translation id="7438495332316988804">Standardową przeglądarkę znajdziesz po wpisaniu „Chrome” w Menu z aplikacjami.</translation> <translation id="7439519621174723623">Aby kontynuować, dodaj nazwę urządzenia</translation> <translation id="7441736921018636843">Aby zmienić to ustawienie, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" />, by usunąć hasło synchronizacji</translation> <translation id="7441830548568730290">Inni użytkownicy</translation> @@ -7543,6 +7540,7 @@ <translation id="7952904276017482715">To jest identyfikator „<ph name="NEW_ID" />”, a oczekiwano identyfikatora „<ph name="EXPECTED_ID" />”</translation> <translation id="7953669802889559161">Metody wprowadzania</translation> <translation id="7953955868932471628">Zarządzaj skrótami</translation> +<translation id="7955105108888461311">Zapytaj osobiście</translation> <translation id="7955177647836564772">Jeśli funkcja Smart Lock jest włączona, a telefon odblokowany, nie musisz wpisywać hasła ani kodu PIN</translation> <translation id="7956373551960864128">Twoje zapisane drukarki</translation> <translation id="7957074856830851026">Sprawdzanie informacji z urządzenia, takich jak numer seryjny lub identyfikator zasobu</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 71f13ca..04b40bb 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -774,6 +774,7 @@ <translation id="168715261339224929">Para ver seus favoritos em todos os seus dispositivos, ative a sincronização.</translation> <translation id="1688867105868176567">Remover dados do site?</translation> <translation id="1688935057616748272">Digite uma letra</translation> +<translation id="1689333818294560261">Apelido</translation> <translation id="168991973552362966">Adicionar uma impressora próxima</translation> <translation id="1689945336726856614">Copiar &URL</translation> <translation id="1692115862433274081">Usar outra conta</translation> @@ -1531,7 +1532,6 @@ <translation id="2329597144923131178">Faça login para que favoritos, histórico, senhas e outras configurações fiquem disponíveis em todos os seus dispositivos.</translation> <translation id="2332115969598251205">Não é possível carregar os dispositivos salvos em <ph name="PRIMARY_EMAIL" />. Verifique sua conexão de Internet e tente novamente.</translation> <translation id="2332131598580221120">Ver na loja</translation> -<translation id="2332192922827071008">Abrir preferências</translation> <translation id="2332515770639153015">O Navegação segura com maior proteção está ativado</translation> <translation id="2332742915001411729">Redefinir para os valores padrão</translation> <translation id="2332948465534020594">"Não perturbe" ativado</translation> @@ -4309,7 +4309,6 @@ <translation id="4893336867552636863">Isso excluirá permanentemente os dados de navegação deste dispositivo.</translation> <translation id="4893454800196085005">Boa (DVD)</translation> <translation id="4893522937062257019">Na tela de bloqueio</translation> -<translation id="4897496410259333978">Para ver mais informações, entre em contato com seu administrador.</translation> <translation id="4898011734382862273">O certificado "<ph name="CERTIFICATE_NAME" />" representa uma Autoridade de certificação</translation> <translation id="4899052647152077033">Inverter cores</translation> <translation id="4899696330053002588">Contém anúncios</translation> @@ -5846,7 +5845,6 @@ <translation id="6347010704471250799">Mostrar notificação</translation> <translation id="6349101878882523185">Instalar <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Curva elíptica SECG secp256r1 (também conhecida como ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Navegador experimental (Alfa). Alguns recursos ainda não foram aplicados ou estão incompletos. Informe um problema em "Ajuda > Informar um problema…".</translation> <translation id="635609604405270300">Mantenha o dispositivo ligado</translation> <translation id="63566973648609420">Somente uma pessoa que tenha sua senha longa pode ler seus dados criptografados. A senha longa não é enviada para o Google ou armazenada por ele. Se você esquecer sua senha longa ou quiser alterar essa configuração, será necessário <ph name="BEGIN_LINK" />redefinir a sincronização<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Alguns links com suporte ainda serão abertos no app <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation> @@ -7014,7 +7012,6 @@ <translation id="7434757724413878233">Aceleração do mouse</translation> <translation id="7434969625063495310">Não foi possível adicionar o servidor de impressão. Verifique a configuração do servidor e tente novamente.</translation> <translation id="7436921188514130341">Ah, não! Ocorreu um erro durante a renomeação.</translation> -<translation id="7438495332316988804">O navegador padrão pode ser encontrado ao digitar "Chrome" no acesso rápido.</translation> <translation id="7439519621174723623">Adicione um nome de dispositivo para continuar</translation> <translation id="7441736921018636843">Para mudar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> e remova sua senha longa de sincronização</translation> <translation id="7441830548568730290">Outros usuários</translation> @@ -7595,6 +7592,7 @@ <translation id="7952904276017482715">O código esperado era "<ph name="EXPECTED_ID" />", mas o instalado foi "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Entradas</translation> <translation id="7953955868932471628">Gerenciar atalhos</translation> +<translation id="7955105108888461311">Perguntar diretamente</translation> <translation id="7955177647836564772">Se o Smart Lock estiver ativado e o smartphone desbloqueado, você não vai precisar digitar uma senha ou um PIN</translation> <translation id="7956373551960864128">Suas impressoras salvas</translation> <translation id="7957074856830851026">Ver informações do dispositivo, como o número de série ou o ID do recurso</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index b08c472b..007b197 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -777,6 +777,7 @@ <translation id="168715261339224929">Para obter os seus marcadores em todos os dispositivos, ative a sincronização.</translation> <translation id="1688867105868176567">Pretende limpar os dados do site?</translation> <translation id="1688935057616748272">Introduza uma letra.</translation> +<translation id="1689333818294560261">Alcunha</translation> <translation id="168991973552362966">Adicionar uma impressora próxima</translation> <translation id="1689945336726856614">Copiar &URL</translation> <translation id="1692115862433274081">Usar outra conta</translation> @@ -1525,7 +1526,6 @@ <translation id="2329597144923131178">Inicie sessão para aceder aos marcadores, ao histórico, às palavras-passe e a outras definições em todos os dispositivos.</translation> <translation id="2332115969598251205">Não é possível carregar os dispositivos guardados em <ph name="PRIMARY_EMAIL" />. Verifique a ligação à Internet e tente novamente.</translation> <translation id="2332131598580221120">Ver na loja</translation> -<translation id="2332192922827071008">Abrir as Preferências</translation> <translation id="2332515770639153015">A Navegação segura melhorada está ativada</translation> <translation id="2332742915001411729">Repor predefinição</translation> <translation id="2332948465534020594">Não incomodar ativado</translation> @@ -4316,7 +4316,6 @@ <translation id="4893336867552636863">Esta ação elimina permanentemente os dados de navegação deste dispositivo.</translation> <translation id="4893454800196085005">Boa – DVD</translation> <translation id="4893522937062257019">No ecrã de bloqueio</translation> -<translation id="4897496410259333978">Para mais informações, contacte o seu administrador.</translation> <translation id="4898011734382862273">O certificado "<ph name="CERTIFICATE_NAME" />" representa uma autoridade de certificação</translation> <translation id="4899052647152077033">Inverter cores</translation> <translation id="4899696330053002588">Contém anúncios</translation> @@ -5860,7 +5859,6 @@ <translation id="6347010704471250799">Mostrar notificação</translation> <translation id="6349101878882523185">Instale a aplicação <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG de curva elíptica secp256r1 (também denominada ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Navegador experimental (qualidade alfa)! Algumas funcionalidades estão em falta ou incompletas. Comunique problemas em Ajuda > "Comunicar um problema…".</translation> <translation id="635609604405270300">Manter o dispositivo ativado</translation> <translation id="63566973648609420">Apenas alguém que conheça a sua frase de acesso pode ler os seus dados encriptados. A frase de acesso não é enviada para a Google nem armazenada pela mesma. Se se esquecer da frase de acesso ou pretender alterar esta definição, tem de <ph name="BEGIN_LINK" />repor a sincronização<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Alguns links suportados continuarão a ser abertos na app <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation> @@ -7030,7 +7028,6 @@ <translation id="7434757724413878233">Aceleração do rato</translation> <translation id="7434969625063495310">Não foi possível adicionar o servidor de impressão. Verifique a configuração do servidor e tente novamente.</translation> <translation id="7436921188514130341">Ah, bolas! Ocorreu um erro durante a mudança de nome.</translation> -<translation id="7438495332316988804">É possível encontrar o navegador padrão ao escrever "Chrome" no Launcher.</translation> <translation id="7439519621174723623">Adicione um nome de dispositivo para continuar.</translation> <translation id="7441736921018636843">Para alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /> para remover a sua frase de acesso de sincronização</translation> <translation id="7441830548568730290">Outros utilizadores</translation> @@ -7614,6 +7611,7 @@ <translation id="7952904276017482715">O ID esperado era "<ph name="EXPECTED_ID" />", mas o ID apresentado foi "<ph name="NEW_ID" />".</translation> <translation id="7953669802889559161">Métodos de introdução</translation> <translation id="7953955868932471628">Gerir atalhos</translation> +<translation id="7955105108888461311">Perguntar presencialmente</translation> <translation id="7955177647836564772">Se o Smart Lock estiver ativado e o telemóvel estiver desbloqueado, não precisa de introduzir uma palavra-passe ou um PIN</translation> <translation id="7956373551960864128">As suas impressoras guardadas</translation> <translation id="7957074856830851026">Ver informações do dispositivo, como o respetivo número de série ou ID do recurso</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 9557dd11..b358a164 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Pagina nu răspunde</translation> <translation id="1041263367839475438">Dispozitive disponibile</translation> <translation id="1042174272890264476">Computerul este dotat, de asemenea, cu o bibliotecă RLZ încorporată, oferită de <ph name="SHORT_PRODUCT_NAME" />. Biblioteca RLZ atribuie o etichetă non-unică și care nu vă identifică în mod personal, pentru a măsura căutările și modul în care este utilizat <ph name="SHORT_PRODUCT_NAME" /> în funcție de o anumită campanie promoțională. Aceste etichete pot apărea uneori în interogările Căutării Google din <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">Conectează-te la datele mobile pentru a folosi hotspotul. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">A apărut o eroare. Poți face doar un upgrade parțial pentru Linux. Consultă jurnalele pentru informații suplimentare. Jurnalele au fost salvate în Fișiere > Fișierele mele > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Stil hartă taste</translation> <translation id="104710386808485638">Repornești Linux?</translation> @@ -59,6 +60,7 @@ <translation id="1054153489933238809">Deschide &imaginea originală într-o filă nouă</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Actualizează acest <ph name="DEVICE_TYPE" /> în cel mult o săptămână}few{Actualizează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_WEEKS} săptămâni}other{Actualizează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_WEEKS} de săptămâni}}</translation> <translation id="1056898198331236512">Avertisment</translation> +<translation id="1056980582064308040">Dacă modifici setările, hotspotul va reporni. Dispozitivele care folosesc hotspotul se vor deconecta.</translation> <translation id="1058262162121953039">Codul PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Introdu noul cod PIN. Un cod PIN trebuie să aibă cel puțin un caracter și poate conține litere, numere și alte caractere.}few{Introdu noul cod PIN. Un cod PIN trebuie să aibă cel puțin # caractere și poate conține litere, numere și alte caractere.}other{Introdu noul cod PIN. Un cod PIN trebuie să aibă cel puțin # de caractere și poate conține litere, numere și alte caractere.}}</translation> <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation> @@ -156,6 +158,7 @@ <translation id="1139923033416533844">Utilizarea memoriei</translation> <translation id="1140351953533677694">Accesează dispozitivele Bluetooth și seriale</translation> <translation id="114036956334641753">Audio și subtitrări</translation> +<translation id="1141949282671776404">Cât timp fila a fost inactivă, Economisirea memoriei a eliberat <ph name="MEMORY_VALUE" /> de memorie pentru alte activități.</translation> <translation id="1142002900084379065">Fotografii recente</translation> <translation id="1143142264369994168">Semnatarul certificatului</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome nu a găsit software dăunător pe computer • A verificat acum un minut}few{Chrome nu a găsit software dăunător pe computer • A verificat acum {NUM_MINS} minute}other{Chrome nu a găsit software dăunător pe computer • A verificat acum {NUM_MINS} de minute}}</translation> @@ -304,6 +307,7 @@ <translation id="1272079795634619415">Oprește</translation> <translation id="1272508081857842302">Deschiderea <ph name="BEGIN_LINK" />linkurilor acceptate<ph name="END_LINK" /></translation> <translation id="1272978324304772054">Acest cont de utilizator nu aparține domeniului pe care este înscris dispozitivul. Dacă doriți să vă înscrieți pe un alt domeniu, trebuie să parcurgeți mai întâi procesul de recuperare a dispozitivului.</translation> +<translation id="1273937721055267968">Blochează <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookie-urile și alte date privind site-urile</translation> <translation id="1275718070701477396">Selectat</translation> <translation id="1276994519141842946">Nu s-a putut dezinstala <ph name="APP_NAME" /></translation> @@ -316,6 +320,7 @@ <translation id="1285320974508926690">Nu traduce niciodată acest site</translation> <translation id="1285484354230578868">Stocați datele în contul Google Drive</translation> <translation id="1285625592773741684">Setarea actuală pentru utilizarea datelor este „Date mobile”</translation> +<translation id="1285815028662278915">Este posibil ca datele tale mobile să nu accepte hotspotul. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Lumina de noapte se va activa automat la apus</translation> <translation id="1288300545283011870">Proprietăți pentru vorbire</translation> <translation id="1289619947962767206">Această opțiune nu mai este acceptată. Pentru a afișa o filă, folosește <ph name="GOOGLE_MEET" />.</translation> @@ -355,6 +360,7 @@ <translation id="1327495825214193325">Ca să activezi remedierea erorilor prin ADB, trebuie să repornești acest <ph name="DEVICE_TYPE" />. Dezactivarea necesită revenirea la setările din fabrică.</translation> <translation id="1327527584824210101">Folosește cheia de acces</translation> <translation id="1327794256477341646">Funcțiile care au nevoie de locația ta nu vor funcționa</translation> +<translation id="1329466763986822896">Îmbunătățește confidențialitatea pentru acest hotspot</translation> <translation id="1331977651797684645">Eu am fost.</translation> <translation id="1333489022424033687">Unele funcții din <ph name="ORIGIN" /> pot să nu funcționeze până când nu golești datele pe care alte site-uri le-au stocat pe dispozitiv</translation> <translation id="1333965224356556482">Nu permite site-urilor să-ți vadă locația</translation> @@ -550,6 +556,7 @@ <translation id="1509163368529404530">&Restabilește grupul</translation> <translation id="1509281256533087115">Accesează orice <ph name="DEVICE_NAME_AND_VENDOR" /> prin USB</translation> <translation id="1510238584712386396">Lansator</translation> +<translation id="1510341833810331442">Site-urile nu au permisiunea de a salva date pe dispozitiv</translation> <translation id="1510785804673676069">Dacă utilizați un server proxy, verificați setările de proxy sau contactați administratorul de rețea pentru a verifica dacă serverul proxy funcționează. Dacă nu credeți că ar trebui să @@ -594,6 +601,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Fereastra incognito nu se va mai deschide.}few{Cele # ferestre incognito nu se vor mai deschide.}other{Cele # de ferestre incognito nu se vor mai deschide.}}</translation> <translation id="1546280085599573572">Această extensie a modificat ce pagină se afișează când dai clic pe butonul Pagina principală.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> vrea să instaleze o <ph name="EXTENSION_TYPE" /> care poate:</translation> +<translation id="1547123415014299762">Sunt permise cookie-urile terță parte</translation> <translation id="1547808936554660006">Înțeleg că profilurile eSIM instalate nu vor fi eliminate în urma rulării funcției Powerwash</translation> <translation id="1547936895218027488">Dă clic pe pictograma panoului lateral pentru a-l deschide</translation> <translation id="1549275686094429035">ARC activat</translation> @@ -652,6 +660,7 @@ <translation id="1596286373007273895">Disponibil</translation> <translation id="1596709061955594992">Bluetooth este dezactivat. Ca să vezi dispozitivele disponibile, activează Bluetooth.</translation> <translation id="1596780725094407793">- include subdomenii</translation> +<translation id="1598163867407640634">Folosește <ph name="SITE_ETLD_PLUS_ONE" /> cu <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Actualizările sunt dezactivate de administrator.</translation> <translation id="1600857548979126453">Accesează procesul de fundal al depanatorului de pagină</translation> <translation id="1601560923496285236">Aplică</translation> @@ -767,6 +776,7 @@ <translation id="168715261339224929">Pentru a accesa marcajele pe toate dispozitivele, activează sincronizarea.</translation> <translation id="1688867105868176567">Ștergi datele site-ului?</translation> <translation id="1688935057616748272">Tastează o literă</translation> +<translation id="1689333818294560261">Pseudonim</translation> <translation id="168991973552362966">Adaugă o imprimantă din apropiere</translation> <translation id="1689945336726856614">Copiază adresa &URL</translation> <translation id="1692115862433274081">Folosește alt cont</translation> @@ -887,6 +897,7 @@ <translation id="1802687198411089702">Pagina nu răspunde. Poți aștepta să răspundă sau o poți închide.</translation> <translation id="1803531841600994172">Limba în care se traduce</translation> <translation id="1803545009660609783">Resetează</translation> +<translation id="1805545709333681504">Introdu parola veche</translation> <translation id="1805738995123446102">O filă din fundal folosește microfonul</translation> <translation id="1805822111539868586">Inspectează afișările</translation> <translation id="1805888043020974594">Server de imprimare</translation> @@ -1229,6 +1240,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Notă:<ph name="END_BOLD" /> sistemul va reporni în timpul acestui proces.</translation> <translation id="2095774564753225041">Tipurile de fișiere acceptate</translation> +<translation id="2097616539631531348">Cât timp fila a fost inactivă, Economisirea memoriei a eliberat memorie pentru alte activități.</translation> <translation id="2098805196501063469">Verifică parolele rămase</translation> <translation id="2099686503067610784">Șterge certificatul de server „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="2100273922101894616">Conectare automată</translation> @@ -1397,6 +1409,7 @@ <translation id="2247870315273396641">Previzualizarea vocii</translation> <translation id="2249111429176737533">Deschide ca fereastră cu file</translation> <translation id="2249605167705922988">de ex., 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Personalizează informațiile folosite de site-uri pentru a-ți afișa anunțuri</translation> <translation id="2251218783371366160">Deschideți cu Utilitarul de vizualizare al sistemului</translation> <translation id="225163402930830576">Actualizează rețelele</translation> <translation id="2251809247798634662">Fereastră nouă incognito</translation> @@ -1511,7 +1524,6 @@ <translation id="2329597144923131178">Conectează-te și accesează marcajele, istoricul, parolele și alte setări pe toate dispozitivele.</translation> <translation id="2332115969598251205">Nu se pot încărca dispozitivele salvate în <ph name="PRIMARY_EMAIL" />. Verifică-ți conexiunea la internet și încearcă din nou.</translation> <translation id="2332131598580221120">Vedeți în magazin</translation> -<translation id="2332192922827071008">Deschide Preferințele</translation> <translation id="2332515770639153015">Navigarea sigură îmbunătățită este activată</translation> <translation id="2332742915001411729">Resetați la valorile prestabilite</translation> <translation id="2332948465534020594">Funcția Nu deranja este activată</translation> @@ -1601,6 +1613,7 @@ <translation id="2410298923485357543">Folosește o voce naturală când dispozitivul este offline</translation> <translation id="2410754283952462441">Alege un cont</translation> <translation id="241082044617551207">Plugin necunoscut</translation> +<translation id="2410940059315936967">Un site pe care îl accesezi poate încorpora conținut de pe alte site-uri, de exemplu, imagini, anunțuri și text. Cookie-urile setate de aceste alte site-uri se numesc cookie-uri terță parte.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2416435988630956212">Tastele pentru funcții de la tastatură</translation> <translation id="2418307627282545839">Menține conținutul luminos și spațios</translation> @@ -1845,6 +1858,7 @@ <translation id="2640299212685523844">Folosește GTK</translation> <translation id="264083724974021997">Conectează-te la telefon – dialog</translation> <translation id="2642111877055905627">Minge de fotbal</translation> +<translation id="2643064289437760082">Poți să ștergi oricând datele despre cuantificarea anunțurilor dacă ștergi datele de navigare</translation> <translation id="2643698698624765890">Gestionați extensiile făcând clic pe Extensii în meniul Window (Fereastră).</translation> <translation id="2645047101481282803">Dispozitivul este gestionat de <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">Sistemul de operare Chrome</translation> @@ -2149,6 +2163,7 @@ <translation id="2902312830803030883">Mai multe acțiuni</translation> <translation id="2903457445916429186">Deschide elementele selectate</translation> <translation id="2903882649406874750">Blochează întotdeauna accesul <ph name="HOST" /> la senzori</translation> +<translation id="2904210161403910217">Parola s-a schimbat de la ultima conectare</translation> <translation id="2904845070985032877">Întrerupe animațiile</translation> <translation id="2907619724991574506">Adrese URL de pornire</translation> <translation id="2907798539022650680">Nu s-a putut stabili conexiunea la „<ph name="NAME" />”: <ph name="DETAILS" /> @@ -2231,6 +2246,7 @@ <translation id="2979639724566107830">Deschide într-o fereastră nouă</translation> <translation id="2981113813906970160">Afișați cursorul de mouse mare</translation> <translation id="2981293774053328982">Acest fișier conține programe malware care îți pot compromite conturile personale sau din rețelele sociale</translation> +<translation id="2983102365694924129">Pe baza activității tale pe un site. Setarea este dezactivată.</translation> <translation id="2983373101216420412">Nivelul bateriei carcasei: <ph name="PERCENTAGE" /> %.</translation> <translation id="2985348301114641460">Trimiți o solicitare administratorului privind instalarea „<ph name="EXTENSION_NAME" />”?</translation> <translation id="2987620471460279764">Text trimis de pe alt dispozitiv</translation> @@ -2292,6 +2308,7 @@ <translation id="3023464535986383522">Selectează și ascultă</translation> <translation id="3024374909719388945">Utilizează formatul de 24 de ore</translation> <translation id="3027296729579831126">Activează Trimiterea în apropiere</translation> +<translation id="3027644380269727216">Pe baza activității tale pe un site. Setarea este activată.</translation> <translation id="3029276696788198026">Fără preîncărcare</translation> <translation id="3029466929721441205">Afișează instrumentele pentru creion pe raft</translation> <translation id="3029808567601324798">Blocare</translation> @@ -2304,6 +2321,7 @@ <translation id="3036327949511794916">A trecut termenul limită pentru returnarea acestui <ph name="DEVICE_TYPE" />.</translation> <translation id="3036546437875325427">Activează Flash</translation> <translation id="3037754279345160234">Nu se poate analiza configurația de conectare la domeniu. Contactează administratorul.</translation> +<translation id="3038272154009688107">Vezi toate site-urile</translation> <translation id="3038612606416062604">Adaugă manual o imprimantă</translation> <translation id="3039491566278747710">Nu a putut fi instalată politica offline pe dispozitiv.</translation> <translation id="3043016484125065343">Conectează-te pentru a vedea marcajele</translation> @@ -2540,6 +2558,7 @@ <translation id="3289668031376215426">Scriere automată cu majuscule</translation> <translation id="3289856944988573801">Pentru a verifica dacă există actualizări, utilizați Ethernet sau Wi-Fi.</translation> <translation id="3290249595466894471">În plus, trimite un mic eșantion cu pagini, descărcări, activități ale extensiilor și informații despre sistem pentru a descoperi noi amenințări</translation> +<translation id="3293181007446299124">Istoricul de navigare este păstrat privat pe dispozitivul tău și rapoartele sunt trimise cu întârziere pentru a-ți proteja identitatea</translation> <translation id="3293644607209440645">Trimite pagina</translation> <translation id="32939749466444286">Containerul Linux nu a pornit. Încearcă din nou.</translation> <translation id="3294437725009624529">Invitat</translation> @@ -2723,6 +2742,7 @@ <translation id="3458794975359644386">Distribuirea nu a fost anulată</translation> <translation id="3459509316159669723">Printare</translation> <translation id="3459697287128633276">Pentru a permite contului să acceseze Magazinul Google Play, autentifică-te folosind Furnizorul de identitate.</translation> +<translation id="3460458947710119567">{NUM_BOOKMARKS,plural, =1{Un marcaj șters}few{# marcaje șterse}other{# de marcaje șterse}}</translation> <translation id="3461766685318630278">Creează și șterge containere suplimentare.</translation> <translation id="3462311546193741693">Te deconectează de pe majoritatea site-urilor. Vei rămâne conectat(ă) la Contul Google, astfel încât datele sincronizate să poată fi șterse.</translation> <translation id="3462413494201477527">Anulezi configurarea contului?</translation> @@ -3219,6 +3239,7 @@ <translation id="3903187154317825986">Tastatură integrată</translation> <translation id="3904326018476041253">Servicii de localizare</translation> <translation id="3905761538810670789">Repară aplicația</translation> +<translation id="3908288065506437185">Blochează cookie-urile terță parte în modul incognito</translation> <translation id="3908501907586732282">Activați extensia</translation> <translation id="3909701002594999354">Afișează toate &comenzile</translation> <translation id="3909791450649380159">&Taie</translation> @@ -3320,6 +3341,7 @@ <translation id="3984431586879874039">Permiți site-ului să vadă cheia de securitate?</translation> <translation id="398477389655464998">Copiază linkul către textul evidențiat</translation> <translation id="3984862166739904574">Definiție cu Răspunsuri rapide</translation> +<translation id="3985022125189960801">Adaugă din nou un site, dacă dorești, în grupul de site-uri care pot estima lucrurile care te interesează</translation> <translation id="3987544746655539083">Blochează în continuare accesul acestui site la locație</translation> <translation id="3987938432087324095">Scuze, nu am înțeles.</translation> <translation id="3987993985790029246">Copiază linkul</translation> @@ -3370,6 +3392,7 @@ <translation id="4040041015953651705">Limba din care se traduce</translation> <translation id="4040105702484676956">Elimini datele și permisiunile privind site-urile pentru <ph name="SITE_NAME" /> și aplicația instalată?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Închide pagina}few{Închide paginile}other{Închide paginile}}</translation> +<translation id="4042941173059740150">Continuă la <ph name="SITE_ETLD_PLUS_ONE" /> cu <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Dimensiunea cursorului</translation> <translation id="4044612648082411741">Introdu parola pentru certificat</translation> <translation id="4044708573046946214">Parola pentru blocarea ecranului</translation> @@ -3509,6 +3532,7 @@ <translation id="4175737294868205930">Stocare persistentă</translation> <translation id="4176463684765177261">Dezactivat</translation> <translation id="4176864026061939326">Acest dispozitiv este gestionat. Administratorul dispozitivului solicită un profil nou pentru contul <ph name="USER_EMAIL_ADDRESS" />.</translation> +<translation id="4177501066905053472">Subiectele anunțurilor</translation> <translation id="4180788401304023883">Șterge certificatul CA „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Limbi</translation> @@ -3697,6 +3721,7 @@ <translation id="4366138410738374926">A început printarea</translation> <translation id="4367513928820380646">Examinează permisiunile eliminate</translation> <translation id="4369215744064167350">Solicitarea de site a fost aprobată</translation> +<translation id="4369735607080757018">Sunt trimise tipuri de date limitate între site-uri, cum ar fi ora la care ți-a fost afișat un anunț, pentru ca acestea să măsoare performanța anunțurilor lor</translation> <translation id="4370975561335139969">Adresa de e-mail și parola pe care le-ai introdus nu se potrivesc</translation> <translation id="4374831787438678295">Programul de instalare Linux</translation> <translation id="4375035964737468845">Deschide fișierele descărcate</translation> @@ -3717,6 +3742,7 @@ <translation id="4385146930797718821">Captura de ecran a fost copiată în clipboard</translation> <translation id="4385905942116811558">Se caută dispozitive cu Bluetooth și USB</translation> <translation id="4387890294700445764">Parole compromise</translation> +<translation id="4388650384344483842">Folosește minimum opt caractere</translation> <translation id="4389091756366370506">Utilizator <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, și încă <ph name="NUMBER_OF_OTHER_SWITCHES" /> comutatoare</translation> <translation id="439266289085815679">Configurația Bluetooth este controlată de <ph name="USER_EMAIL" />.</translation> @@ -4038,6 +4064,7 @@ <translation id="4666472247053585787">Vezi notificări de pe telefon pe <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">Mai multe aplicații</translation> <translation id="4667027203988048332">Ce date folosim:</translation> +<translation id="4668279686271488041">Datele despre cuantificarea anunțurilor sunt șterse cu regularitate de pe dispozitiv</translation> <translation id="4672759829555593783">Deschide <ph name="FILE_NAME" /> acum</translation> <translation id="46733273239502219">Datele offline din aplicațiile instalate vor fi șterse la rândul lor</translation> <translation id="4673442866648850031">Deschide instrumentele pentru creion când acesta este înlăturat</translation> @@ -4056,6 +4083,7 @@ <translation id="4683947955326903992"><ph name="PERCENTAGE" />% (prestabilit)</translation> <translation id="4684427112815847243">Sincronizează tot</translation> <translation id="4687613760714619596">Dispozitiv necunoscut (<ph name="DEVICE_ID" />)</translation> +<translation id="4687718960473379118">anunțurile sugerate de site-uri,</translation> <translation id="4688036121858134881">ID jurnal local: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4688176403504673761"><ph name="MANAGER" /> restabilește o versiune anterioară pe acest dispozitiv (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="4689235506267737042">Alege preferințele tale demo</translation> @@ -4231,6 +4259,7 @@ <translation id="485480310608090163">Mai multe setări și permisiuni</translation> <translation id="4858913220355269194">Jucător</translation> <translation id="4862642413395066333">Semnarea răspunsurilor OCSP</translation> +<translation id="4863702650881330715">Extinde compatibilitatea</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Prestabilit)</translation> <translation id="4864805589453749318">Selectează părintele care îți acordă permisiunea de a adăuga un cont de la școală.</translation> <translation id="486635084936119914">Deschide automat anumite tipuri de fișiere după descărcare</translation> @@ -4279,7 +4308,6 @@ <translation id="4893336867552636863">Astfel, vor fi șterse definitiv datele de navigare de pe acest dispozitiv.</translation> <translation id="4893454800196085005">Bună – DVD</translation> <translation id="4893522937062257019">Pe ecranul de blocare</translation> -<translation id="4897496410259333978">Pentru informații suplimentare, contactează administratorul.</translation> <translation id="4898011734382862273">Certificatul „<ph name="CERTIFICATE_NAME" />” reprezintă o Autoritate de certificare</translation> <translation id="4899052647152077033">Inversează culorile</translation> <translation id="4899696330053002588">Conține anunțuri</translation> @@ -4382,6 +4410,7 @@ <translation id="4998430619171209993">Activat</translation> <translation id="4999804342505941663">Activează funcția Nu deranja</translation> <translation id="5000922062037820727">Blocată (recomandat)</translation> +<translation id="5001526427543320409">Cookie-uri terță parte</translation> <translation id="5005498671520578047">Copiază parola</translation> <translation id="5006118752738286774">Acum 2 ani</translation> <translation id="5006218871145547804">ADB în aplicațiile pentru Android în Crostini</translation> @@ -4477,6 +4506,7 @@ <translation id="5094721898978802975">Comunicarea cu aplicațiile native cooperante</translation> <translation id="5097002363526479830">A eșuat conectarea la rețeaua „<ph name="NAME" />”: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Află mai multe despre folosirea locației</translation> +<translation id="5097349930204431044">Site-urile pe care le accesezi pot stabili lucrurile care te interesează, apoi îți sugerează anunțuri pe măsură ce navighezi</translation> <translation id="5097649414558628673">Instrument: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Dă automat clic la oprirea cursorului</translation> <translation id="5101683448725092498">Fă backup conținutului</translation> @@ -4659,6 +4689,7 @@ <translation id="5275352920323889391">Câine</translation> <translation id="527605719918376753">Dezactivează sunetul filei</translation> <translation id="527605982717517565">Permite întotdeauna JavaScript pe <ph name="HOST" /></translation> +<translation id="5276357196618041410">Configurația nu poate fi salvată fără să te conectezi mai întâi</translation> <translation id="5277127016695466621">Afișează panoul lateral</translation> <translation id="5278823018825269962">Cod de stare</translation> <translation id="5279600392753459966">Blochează-le pe toate</translation> @@ -5098,6 +5129,7 @@ <translation id="5683806393796685434">Introdu codul de activare</translation> <translation id="5684181005476681636">Detalii despre Wi-Fi</translation> <translation id="5684661240348539843">Identificator articol</translation> +<translation id="5684950556880280580">Parola a fost actualizată</translation> <translation id="5684969244627829799">Conectează-te la un cont de utilizator și încearcă din nou</translation> <translation id="5687326903064479980">Fus orar</translation> <translation id="5687935527303996204">Asigură-te că dispozitivul este conectat și nu-l închide. Instalarea poate dura până la 20 de minute. Dispozitivul se va închide automat după finalizarea instalării.</translation> @@ -5139,6 +5171,7 @@ <translation id="572328651809341494">File recente</translation> <translation id="5723508132121499792">Nu rulează aplicații în fundal</translation> <translation id="5723967018671998714">Cookie-urile terță parte sunt blocate în modul Incognito</translation> +<translation id="5724642200346111167">Datele privind site-urile sunt șterse de pe dispozitiv când închizi toate ferestrele</translation> <translation id="5727728807527375859">Extensiile, aplicațiile și temele pot dăuna computerului. Sigur vrei să continui?</translation> <translation id="5728450728039149624">Opțiuni pentru blocarea ecranului Smart Lock</translation> <translation id="5729712731028706266">&Afișează</translation> @@ -5154,6 +5187,7 @@ <translation id="5739017626473506901">Conectează-te pentru a ajuta utilizatorul <ph name="USER_NAME" /> să adauge un cont de la școală</translation> <translation id="5739235828260127894">Se așteaptă confirmarea. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation> <translation id="5739458112391494395">Foarte mare</translation> +<translation id="5740126560802162366">Site-urile pot salva date pe dispozitiv</translation> <translation id="5740328398383587084">Trimitere în apropiere</translation> <translation id="5740709157181662145">Compatibilitatea și stabilitatea hardware-ului <ph name="DEVICE_OS" /></translation> <translation id="574104302965107104">Oglindirea ecranului</translation> @@ -5654,6 +5688,7 @@ <translation id="6200151268994853226">Gestionează extensia</translation> <translation id="6201608810045805374">Elimini acest cont?</translation> <translation id="6202304368170870640">Poți folosi codul PIN ca să te conectezi la dispozitiv sau să-l deblochezi.</translation> +<translation id="6205314730813004066">Confidențialitatea anunțurilor</translation> <translation id="6206199626856438589">Te vei deconecta de la site-urile afișate, inclusiv din filele deschise</translation> <translation id="6206311232642889873">Cop&iază imaginea</translation> <translation id="6206521455877863927">Inclusiv site-urile din același domeniu, de exemplu, google.com și mail.google.com. Site-urile pe care le accesezi pot salva date pe dispozitivul tău.</translation> @@ -5813,7 +5848,6 @@ <translation id="6347010704471250799">Se afișează o notificare</translation> <translation id="6349101878882523185">Instalează <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Curbură eliptică SECG secp256r1 (cunoscută și sub numele de ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Browser experimental (de nivel alfa)! Unele funcții lipsesc sau sunt incomplete. Raportează problemele accesând Ajutor > Raportează o problemă…</translation> <translation id="635609604405270300">Păstrează dispozitivul activat</translation> <translation id="63566973648609420">Numai un utilizator care are expresia de acces poate citi datele criptate. Expresia de acces nu este trimisă sau stocată la Google. Dacă uiți expresia de acces sau dorești să modifici această setare, va fi necesar să <ph name="BEGIN_LINK" />resetezi sincronizarea<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" /> sau <ph name="APP_NAME_2" />.</translation> @@ -6155,6 +6189,7 @@ <translation id="6670767097276846646">Unele extensii pot adăuga motoare de căutare în Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{o adresă}few{# adrese}other{# de adrese}}</translation> <translation id="6671497123040790595">Se configurează gestionarea de către <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">Adaugă <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Pentru a porni sincronizarea, introdu expresia de acces</translation> <translation id="6675665718701918026">Dispozitivul de indicat este conectat</translation> @@ -6238,6 +6273,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Incognito)</translation> <translation id="6756157672127672536">Aplicația Fișiere oferă acces rapid la fișierele pe care le-ai salvat în Google Drive, în spațiul de stocare extern sau pe dispozitivul cu sistemul de operare Chrome.</translation> <translation id="6756643207511618722">Motoare de vorbire</translation> +<translation id="6757431299485455321">Ajută alte dispozitive să găsească acest hotspot.</translation> <translation id="6758056191028427665">Spune-ne cum ne descurcăm.</translation> <translation id="6759193508432371551">Resetare la setările din fabrică</translation> <translation id="6761431452438552910">Verifică dacă dispozitivul Bluetooth este în modul de asociere și în apropiere. Asociază-l numai cu dispozitive în care ai încredere.</translation> @@ -6273,6 +6309,7 @@ <translation id="6787839852456839824">Comenzi rapide de la tastatură</translation> <translation id="6788210894632713004">Extensie neîmpachetată</translation> <translation id="6789592661892473991">Împarte pe orizontală</translation> +<translation id="6789834167207639931">Introdu din nou parola Contului Google în ecranul următor pentru a finaliza recuperarea</translation> <translation id="6790428901817661496">Redă</translation> <translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> a fost adăugată de la distanță</translation> <translation id="6790820461102226165">Adaugă o persoană...</translation> @@ -6337,6 +6374,7 @@ <translation id="6833479554815567477">Fila a fost eliminată din grupul <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Comută la un browser inteligent și securizat</translation> <translation id="6833996806551876956">Perioada de încercare a Mediului de testare securizat pentru confidențialitate</translation> +<translation id="6835712061486505758">Creează un hotspot Wi-Fi pentru a oferi acces la internet altor dispozitive. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">Accesează internetul pentru a actualiza dispozitivul <ph name="DEVICE_TYPE" />.</translation> <translation id="6839225236531462745">Eroare de ștergere a certificatului</translation> <translation id="6839916869147598086">Conectarea a fost schimbată</translation> @@ -6498,6 +6536,7 @@ <translation id="697508444536771064">Închide Linux</translation> <translation id="6975361011348772931">A solicitat să citească și să facă modificări</translation> <translation id="6978121630131642226">Motoarele de căutare</translation> +<translation id="6978717888677691380">Site-uri pe care le-ai blocat</translation> <translation id="6979041727349121225">Economisirea energiei</translation> <translation id="6979044105893951891">Lansează și închide sesiunile pentru invitați gestionate</translation> <translation id="6979440798594660689">Dezactivează sunetul (prestabilit)</translation> @@ -6589,6 +6628,7 @@ <translation id="7047059339731138197">Alege un fundal</translation> <translation id="7048457618657122233">Trimite linkul către <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">Păstrezi fișierul?</translation> +<translation id="7050037487872780845">Configurația hotspotului nu este validă</translation> <translation id="7052237160939977163">Trimiteți datele privind urmărirea performanței</translation> <translation id="7053983685419859001">Blochează</translation> <translation id="7055152154916055070">Redirecționarea a fost blocată:</translation> @@ -6793,6 +6833,7 @@ <translation id="7258192266780953209">Transformări</translation> <translation id="7258225044283673131">Aplicația nu răspunde. Selectează „Închide forțat” pentru a închide aplicația.</translation> <translation id="7260186537988033909">Înregistrarea dispozitivului chioșc și pentru semne s-a finalizat</translation> +<translation id="7260367682327802201">Dispozitivul tău Android poate avea o setare similară. În cazul în care cuantificarea anunțurilor este activată în Chrome și pe dispozitivul Android, o companie poate măsura eficiența unui anunț pe site-urile pe care le accesezi și în aplicațiile pe care le folosești.</translation> <translation id="7262004276116528033">Acest serviciu de conectare este găzduit de <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{Permisiunile au fost eliminate pentru un site}few{Permisiunile au fost eliminate pentru {NUM_SITES} site-uri}other{Permisiunile au fost eliminate pentru {NUM_SITES} de site-uri}}</translation> <translation id="7264695323040866038">Folosești întotdeauna aplicația <ph name="APP" /> ca să deschizi linkurile web acceptate?</translation> @@ -6918,6 +6959,7 @@ <translation id="7387273928653486359">Acceptabilă</translation> <translation id="7387951778417998929">Pentru a folosi alt motor de căutare decât cel prestabilit, introdu comanda rapidă respectivă în bara de adrese, urmată de comanda rapidă de la tastatură preferată. Poți să schimbi motorul de căutare prestabilit și de aici.</translation> <translation id="7388209873137778229">Se afișează numai dispozitivele compatibile.</translation> +<translation id="7388615499319468910">Site-urile și advertiserii pot să afle despre performanța anunțurilor. Setarea este dezactivată.</translation> <translation id="7392118418926456391">Scanarea antivirus nu a reușit</translation> <translation id="7392915005464253525">R&edeschide fereastra închisă</translation> <translation id="7393073300870882456">{COUNT,plural, =1{Un element copiat}few{{COUNT} elemente copiate}other{{COUNT} de elemente copiate}}</translation> @@ -6936,6 +6978,7 @@ <translation id="7406912950279255498">Modul de inversare a culorilor</translation> <translation id="7407430846095439694">Importă și asociază</translation> <translation id="7407504355934009739">Majoritatea utilizatorilor blochează notificările de la acest site</translation> +<translation id="7408080603962564527">Acesta va fi vizibil pentru alte persoane</translation> <translation id="740810853557944681">Adaugă un server de imprimare</translation> <translation id="7409549334477097887">Foarte mare</translation> <translation id="7409599290172516453">Fotografii recente</translation> @@ -6974,7 +7017,6 @@ <translation id="7434757724413878233">Accelerarea mouse-ului</translation> <translation id="7434969625063495310">Nu s-a putut adăuga serverul de imprimare. Verifică ce configurație are serverul și încearcă din nou.</translation> <translation id="7436921188514130341">Of, nu mai merge! A apărut o eroare la redenumire.</translation> -<translation id="7438495332316988804">Poți găsi browserul standard dacă tastezi „Chrome" în Lansator.</translation> <translation id="7439519621174723623">Adaugă un nume de dispozitiv pentru a continua</translation> <translation id="7441736921018636843">Ca să modifici setarea, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /> pentru a elimina expresia de acces pentru sincronizare</translation> <translation id="7441830548568730290">Alți utilizatori</translation> @@ -6993,6 +7035,7 @@ <translation id="7453467225369441013">Te deconectează de pe majoritatea site-urilor. Nu te va deconecta de la Contul Google.</translation> <translation id="7454548535253569100">Portal: <ph name="SUBFRAME_SITE" /></translation> <translation id="7455730275746867420">Gestionează containere suplimentare</translation> +<translation id="7455988709578031708">Pe baza istoricului de navigare. Setarea este activată.</translation> <translation id="7456142309650173560">dezvoltatori</translation> <translation id="7456774706094330779">Preîncărcare prelungită</translation> <translation id="7456847797759667638">Deschide o locație...</translation> @@ -7251,6 +7294,7 @@ <translation id="7684718995427157417">Pentru a crea și testa aplicații, activează Android Debug Bridge (ADB). Reține că această acțiune permite instalarea aplicațiilor Android care nu au fost verificate de Google și pentru dezactivarea instrumentului este necesară revenirea la setările din fabrică.</translation> <translation id="7685049629764448582">Memorie JavaScript</translation> <translation id="7685087414635069102">PIN necesar</translation> +<translation id="7686086654630106285">Mai multe despre anunțurile sugerate de site-uri</translation> <translation id="7686581688229391955">Selectează pentru a permite extensii pe acest site</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Confirmă noua parolă</translation> @@ -7272,6 +7316,7 @@ <translation id="7704317875155739195">Completează automat căutările și adresele URL</translation> <translation id="7704521324619958564">Deschide Magazinul Play</translation> <translation id="7705276765467986571">Nu se poate încărca modelul de marcaj.</translation> +<translation id="7705334495398865155">Randomizează ID-ul hardware-ului (BSSID) pentru a împiedica alte persoane să urmărească acest dispozitiv.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Site-ul nu are permisiunea de a folosi senzorii de mișcare.</translation> <translation id="7707922173985738739">va folosi datele mobile;</translation> @@ -7465,6 +7510,7 @@ <translation id="7881483672146086348">Afișați contul</translation> <translation id="7883792253546618164">Te poți dezabona în orice moment.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Examinează un site care a trimis multe notificări}few{Examinează {NUM_SITES} site-uri care au trimis multe notificări}other{Examinează {NUM_SITES} de site-uri care au trimis multe notificări}}</translation> +<translation id="7884446017008693258">Setări pentru hotspot</translation> <translation id="788453346724465748">Se încarcă informațiile despre cont…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{un element}few{# elemente}other{# de elemente}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7552,6 +7598,7 @@ <translation id="7952904276017482715">ID-ul așteptat era „<ph name="EXPECTED_ID" />”, dar ID-ul a fost „<ph name="NEW_ID" />”</translation> <translation id="7953669802889559161">Metode de introducere a textului</translation> <translation id="7953955868932471628">Gestionați comenzile rapide</translation> +<translation id="7955105108888461311">Întreabă în persoană</translation> <translation id="7955177647836564772">Dacă Smart Lock este activat și telefonul este deblocat, nu este nevoie să introduci parola sau codul PIN</translation> <translation id="7956373551960864128">Imprimante salvate</translation> <translation id="7957074856830851026">Vezi informații despre dispozitiv, cum ar fi numărul de serie sau ID-ul de material</translation> @@ -7690,6 +7737,7 @@ <ph name="BEGIN_PARAGRAPH3" />Poți dezactiva acest serviciu din Setări.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">File</translation> <translation id="8076835018653442223">Accesul la fișierele de pe dispozitiv este dezactivat de administrator</translation> +<translation id="8077120325605624147">Orice site pe care îl accesezi îți poate afișa orice anunț</translation> <translation id="80798452873915119">Site-urile pot solicita permisiunea de a gestiona ferestre pe toate ecranele</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Sesiunea este gestionată de <ph name="MANAGER_NAME" />. Administratorii pot să-ți șteargă profilul și să monitorizeze traficul de rețea.</translation> @@ -8202,6 +8250,7 @@ <translation id="8557180006508471423">Activează Google Chrome în Servicii de localizare pe Mac</translation> <translation id="8557856025359704738">Următoarea descărcare este pe <ph name="NEXT_DATE_DOWNLOAD" />.</translation> <translation id="8559858985063901027">Cheile de acces</translation> +<translation id="8559961053328923750">Chrome limitează volumul total de date pe care site-urile îl pot trimite prin browser pentru a cuantifica performanța anunțurilor</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Deschide-le pe toate într-o fereastră &nouă}=1{Deschide într-o fereastră &nouă}few{Deschide-le pe toate ({COUNT}) într-o fereastră &nouă}other{Deschide-le pe toate ({COUNT}) într-o fereastră &nouă}}</translation> <translation id="8561206103590473338">Elefant</translation> <translation id="8561565784790166472">Continuă cu atenție</translation> @@ -8333,6 +8382,7 @@ <translation id="8674903726754070732">Din păcate, computerul este configurat cu un ID de hardware incorect. Acest lucru împiedică actualizarea sistemului de operare Chrome cu cele mai recente remedieri de securitate, iar computerul <ph name="BEGIN_BOLD" />ar putea fi vulnerabil la atacuri<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Programul de instalare nu a găsit o destinație validă pentru a instala <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Videoclip}few{# videoclipuri}other{# de videoclipuri}}</translation> +<translation id="8676276370198826499">Înscrie-te la <ph name="SITE_ETLD_PLUS_ONE" /> cu <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Mulțumim pentru feedbackul trimis.</translation> <translation id="8676374126336081632">Șterge textul introdus</translation> <translation id="8676770494376880701">A fost conectat un încărcător de putere joasă</translation> @@ -8343,6 +8393,7 @@ <translation id="8678933587484842200">Cum dorești să se lanseze această aplicație?</translation> <translation id="8680251145628383637">Conectează-te pentru a-ți accesa marcajele, istoricul, parolele și alte setări pe toate dispozitivele. În plus, te vei conecta automat la serviciile Google.</translation> <translation id="8681614230122836773">Chrome a găsit software dăunător pe computer</translation> +<translation id="8681886425883659911">Anunțurile sunt blocate pe site-urile despre care se știe că afișează anunțuri deranjante sau înșelătoare</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> este conectată și pregătită</translation> <translation id="8687103160920393343">Anulează <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">Disponibilă</translation> @@ -8714,6 +8765,7 @@ <translation id="9021662811137657072">S-a detectat un virus</translation> <translation id="902236149563113779">Site-urile urmăresc de obicei poziția camerei pentru opțiuni RA, cum ar fi jocuri sau indicații de orientare heads-up</translation> <translation id="9022847679183471841">Acest cont este utilizat deja pe acest computer de <ph name="AVATAR_NAME" />.</translation> +<translation id="9022871169049522985">Site-urile și advertiserii pot măsura performanța anunțurilor lor</translation> <translation id="9023015617655685412">Marchează această filă...</translation> <translation id="9023909777842748145">Dezactivarea acestei funcții nu afectează capacitatea dispozitivului de a trimite informațiile necesare pentru servicii esențiale, cum ar fi actualizările de sistem și securitate.</translation> <translation id="9024127637873500333">&Deschideți într-o filă nouă</translation> @@ -8803,11 +8855,14 @@ <translation id="9094859731829297286">Sigur vrei să rezervi un disc cu dimensiune fixă pentru Linux?</translation> <translation id="9094982973264386462">Elimină</translation> <translation id="9095253524804455615">Elimină</translation> +<translation id="9095364055741191097">Datele locale nu au putut fi recuperate</translation> <translation id="909554839118732438">Închide ferestrele incognito</translation> +<translation id="9099220545925418560">Pe baza istoricului de navigare. Setarea este dezactivată.</translation> <translation id="9100416672768993722">Pentru a trece la ultima metodă de introducere a textului folosită, apasă pe <ph name="BEGIN_SHORTCUT" /><ph name="BEGIN_CTRL" />Ctrl<ph name="END_CTRL" /><ph name="SEPARATOR" /><ph name="BEGIN_SPACE" />tasta spațiu<ph name="END_SPACE" /><ph name="END_SHORTCUT" /></translation> <translation id="9100765901046053179">Setări avansate</translation> <translation id="9101691533782776290">Lansați aplicația</translation> <translation id="9102610709270966160">Activează extensia</translation> +<translation id="9102864637938129124">Site-urile și advertiserii pot să afle despre performanța anunțurilor. Setarea este activată.</translation> <translation id="9103479157856427471">Ecranul mărit urmează după focalizarea de la tastatură</translation> <translation id="9103868373786083162">Apasă pentru a naviga înapoi sau folosește meniul contextual pentru a vedea istoricul</translation> <translation id="9108035152087032312">Denumește fereastra...</translation> @@ -8843,6 +8898,7 @@ <translation id="9128335130883257666">Deschide pagina de setări pentru <ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">Conectați-vă la rețea</translation> <translation id="9130015405878219958">A fost introdus un mod nevalid.</translation> +<translation id="9131209053278896908">Site-urile blocate apar aici</translation> <translation id="9131487537093447019">Trimite mesaje către dispozitivele Bluetooth și primește mesaje de la acestea.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{Un marcaj}few{# marcaje}other{# de marcaje}}</translation> <translation id="9134066738478820307">Site-urile pot folosi identificatori pentru a reda conținut protejat</translation> @@ -8896,6 +8952,7 @@ <translation id="9180281769944411366">Poate dura câteva minute. Se pornește containerul Linux.</translation> <translation id="9180380851667544951">Site-ul poate permite accesul la ecranul tău</translation> <translation id="9182556968660520230">Nu permite site-urilor să redea conținut protejat</translation> +<translation id="9183331776983279456">Chrome șterge automat site-urile mai vechi de patru săptămâni. Un site pe care îl accesezi din nou poate să reapară în listă. Sau poți să nu permiți unui site să îți sugereze anunțuri.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Aplicație}few{# aplicații}other{# de aplicații}}</translation> <translation id="9186963452600581158">Conectează-te cu Contul Google al unui copil</translation> <translation id="9187967020623675250">Tastele nu corespund. Apasă pe orice tastă pentru <ph name="RESPONSE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index e810938..de7f83a6 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -772,6 +772,7 @@ <translation id="168715261339224929">Чтобы получить доступ к закладкам на всех ваших устройствах, включите синхронизацию.</translation> <translation id="1688867105868176567">Удалить данные сайта?</translation> <translation id="1688935057616748272">Необходимо добавить букву</translation> +<translation id="1689333818294560261">Название</translation> <translation id="168991973552362966">Добавление доступного принтера</translation> <translation id="1689945336726856614">Скопировать &URL</translation> <translation id="1692115862433274081">Использовать другой аккаунт</translation> @@ -1517,7 +1518,6 @@ <translation id="2329597144923131178">Войдите, чтобы синхронизировать закладки, пароли, историю и т. д. на всех устройствах.</translation> <translation id="2332115969598251205">Не удалось загрузить данные об устройствах, сохраненных в аккаунте <ph name="PRIMARY_EMAIL" />. Проверьте подключение к интернету и повторите попытку.</translation> <translation id="2332131598580221120">Открыть в Интернет-магазине</translation> -<translation id="2332192922827071008">Открыть настройки</translation> <translation id="2332515770639153015">Включен улучшенный Безопасный просмотр</translation> <translation id="2332742915001411729">Сбросить</translation> <translation id="2332948465534020594">Режим "Не беспокоить" включен</translation> @@ -4293,7 +4293,6 @@ <translation id="4893336867552636863">Все данные о работе в браузере будут удалены с устройства.</translation> <translation id="4893454800196085005">Хорошее – DVD</translation> <translation id="4893522937062257019">Экран блокировки</translation> -<translation id="4897496410259333978">За дополнительной информацией обратитесь к системному администратору.</translation> <translation id="4898011734382862273">Сертификат "<ph name="CERTIFICATE_NAME" />" представляет центр сертификации</translation> <translation id="4899052647152077033">Обратные цвета</translation> <translation id="4899696330053002588">Есть реклама</translation> @@ -5829,7 +5828,6 @@ <translation id="6347010704471250799">Показывать уведомление</translation> <translation id="6349101878882523185">Установить приложение "<ph name="APP_NAME" />"</translation> <translation id="6354918092619878358">Эллиптическая кривая SECG secp256r1 (она же ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Это экспериментальный браузер (альфа-версия). Некоторые функции в нем могут отсутствовать или работать в ограниченном режиме. Чтобы сообщить о проблемах, нажмите "Справка > Сообщить о проблеме".</translation> <translation id="635609604405270300">Не выключайте устройство.</translation> <translation id="63566973648609420">Ваши зашифрованные данные может прочитать только тот, кто знает кодовую фразу. Она не пересылается и не хранится в Google. Если вы забудете фразу или решите изменить эту настройку, вам придется <ph name="BEGIN_LINK" />сбросить параметры синхронизации<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложениях "<ph name="APP_NAME" />" и "<ph name="APP_NAME_2" />".</translation> @@ -7001,7 +6999,6 @@ <translation id="7434757724413878233">Ускорение мыши</translation> <translation id="7434969625063495310">Не удалось добавить сервер печати. Проверьте его настройки и повторите попытку.</translation> <translation id="7436921188514130341">При изменении названия произошла ошибка.</translation> -<translation id="7438495332316988804">Чтобы найти стандартный браузер, введите "Chrome" на панели запуска.</translation> <translation id="7439519621174723623">Чтобы продолжить, добавьте имя устройства.</translation> <translation id="7441736921018636843">Чтобы изменить этот параметр, <ph name="BEGIN_LINK" />сбросьте настройки синхронизации<ph name="END_LINK" /> и удалите кодовую фразу</translation> <translation id="7441830548568730290">Другие пользователи</translation> @@ -7582,6 +7579,7 @@ <translation id="7952904276017482715">Ожидаемый идентификатор: <ph name="EXPECTED_ID" />, полученный идентификатор: <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Способы ввода</translation> <translation id="7953955868932471628">Управление ярлыками</translation> +<translation id="7955105108888461311">Запросить доступ лично</translation> <translation id="7955177647836564772">Если функция Smart Lock включена и телефон разблокирован, вводить пароль или PIN-код не нужно.</translation> <translation id="7956373551960864128">Сохраненные принтеры</translation> <translation id="7957074856830851026">Получать данные об устройстве, например серийный номер или идентификатор объекта</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 1a32685f..cf81ae2 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -766,6 +766,7 @@ <translation id="168715261339224929">ඔබේ සියලු උපාංගවල ඔබේ පිටුසන් ලබා ගැනීමට, සමමුහුර්තය ක්රියාත්මක කරන්න.</translation> <translation id="1688867105868176567">අඩවි දත්ත හිස් කරන්නද?</translation> <translation id="1688935057616748272">අකුරක් යතුරු ලියන්න</translation> +<translation id="1689333818294560261">අපනාමය</translation> <translation id="168991973552362966">අවට මුද්රකයක් එක් කරන්න</translation> <translation id="1689945336726856614">&URL පිටපත් කරන්න</translation> <translation id="1692115862433274081">වෙනත් ගිණුමක් භාවිතා කරන්න</translation> @@ -1514,7 +1515,6 @@ <translation id="2329597144923131178">ඔබගේ සියලුම උපාංග මත ඇති පොත් සලකුණු, ඉතිහාසය, මුරපද හා වෙනත් සැකසීම් ලබා ගැනීමට පුරනය වන්න.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> වෙත සුරැකි උපාංග පූරණය කළ නොහැක. ඔබේ අන්තර්ජාල සබැඳුම පරීක්ෂා කර නැවත උත්සාහ කරන්න.</translation> <translation id="2332131598580221120">අලෙවිසැලෙහි බලන්න</translation> -<translation id="2332192922827071008">මනාප විවෘත කරන්න</translation> <translation id="2332515770639153015">ඉහළ නැංවූ සුරක්ෂිත බ්රවුස් කිරීම ක්රියාත්මකයි</translation> <translation id="2332742915001411729">පෙරනිමියට යළි සකසන්න</translation> <translation id="2332948465534020594">බාධා නොකිරීම සබලයි</translation> @@ -4283,7 +4283,6 @@ <translation id="4893336867552636863">මෙය මෙම උපාංගය වෙතින් ඔබේ බ්රවුස් කිරීමේ දත්ත ස්ථිරව මකනු ඇත.</translation> <translation id="4893454800196085005">හොඳ - DVD</translation> <translation id="4893522937062257019">අගුලු තිරය මත</translation> -<translation id="4897496410259333978">වැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" සහතිකය සහතික බලධාරියකු නියෝජනය කරයි</translation> <translation id="4899052647152077033">වර්ණ අපවර්තනය කරන්න</translation> <translation id="4899696330053002588">වෙළඳ දැන්වීම් අඩංගුය</translation> @@ -5818,7 +5817,6 @@ <translation id="6347010704471250799">දැනුම්දීම් පෙන්වන්න</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ස්ථාපන කරන්න</translation> <translation id="6354918092619878358">SECG ඉලිප්සාකාර වක්ර secp256r1 (එනම් ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">අත්හදා බැලීමේ (ඇල්ෆා-ගුණත්ව) බ්රව්සරය! සමහර විශේෂාංග අස්ථානගත හෝ අසම්පූර්ණයි. ගැටලු මෙලෙස වාර්තා කරන්න: උදවු > "ගැටලුවක් වාර්තා කරන්න...".</translation> <translation id="635609604405270300">උපාංගය සක්රීයව තබන්න</translation> <translation id="63566973648609420">සංකේතනය කළ දත්ත කියවිය හැක්කේ ඔබේ මුරවැකිකඩ සහිත අයකුට පමණි. මෙම මුරවැකිකඩ Google වෙත යැවීම හෝ ගබඩා කර ගැනීම නොකෙරේ. ඔබට ඔබේ මුරවැකිකඩ අමතක නම් හෝ මෙම සැකසීම් වෙනස් කිරීමට අවශ්ය නම්, ඔබ <ph name="BEGIN_LINK" />සමමුහුර්ත කිරීම යළි සැකසීම<ph name="END_LINK" /> අවශ්ය වනු ඇත.</translation> <translation id="6357305427698525450">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" /> හෝ <ph name="APP_NAME_2" /> තුළ විවෘතව තිබෙනු ඇත.</translation> @@ -6977,7 +6975,6 @@ <translation id="7434757724413878233">මූසික ත්වරණය</translation> <translation id="7434969625063495310">මුද්රණ සේවාදායකය එක් කළ නොහැකි විය. සේවාදායකයේ වින්යාසය පරීක්ෂා කර නැවත උත්සාහ කරන්න.</translation> <translation id="7436921188514130341">අනේ, අපොයි! යළි නම් කිරීමේ දී ගැටලුවක් ඇති විය.</translation> -<translation id="7438495332316988804">දියත්කරණයට "Chrome" ටයිප් කිරීමෙන් සම්මත බ්රව්සරය සොයා ගත හැකිය.</translation> <translation id="7439519621174723623">ඉදිරියට යාමට උපාංග නමක් එක් කරන්න</translation> <translation id="7441736921018636843">මෙම සැකසීම වෙනස් කිරීමට, ඔබේ සමුමුහුර්ත මුර-වැකිකඩ ඉවත් කිරීමට <ph name="BEGIN_LINK" />සමමුහුර්තය යළි සකසන්න<ph name="END_LINK" /></translation> <translation id="7441830548568730290">වෙනත් පරිශීලකයන්</translation> @@ -7554,6 +7551,7 @@ <translation id="7952904276017482715">අපේක්ෂිත ID "<ph name="EXPECTED_ID" />", නමුත් ID වූයේ "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">ආදාන</translation> <translation id="7953955868932471628">කෙටිමං පාලනය</translation> +<translation id="7955105108888461311">පුද්ගලිකව විමසන්න</translation> <translation id="7955177647836564772">Smart Lock ක්රියාත්මක කර ඔබේ දුරකථනය අගුළු හැර තිබේ නම්, ඔබට මුරපදයක් හෝ PIN අංකයක් ඇතුළු කිරීමට අවශ්ය නොවේ</translation> <translation id="7956373551960864128">ඔබේ සුරැකි මුද්රක</translation> <translation id="7957074856830851026">එහි අනුක්රමික අංකය හෝ වත්කම් ID යනාදි උපාංග තොරතුරු බලන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index 58802302..bfe496d 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -341,6 +341,7 @@ <translation id="1307165550267142340">PIN bol vytvorený</translation> <translation id="1307431692088049276">Nabudúce sa nepýtať</translation> <translation id="1307559529304613120">Ojoj! Systému sa nepodarilo uložiť dlhodobý prístupový token rozhrania API pre toto zariadenie.</translation> +<translation id="131112695174432497">Dáta, ktoré ovplyvňujú prispôsobenie reklám, sa odstránia</translation> <translation id="1312811472299082263">Vytvorenie z príručky Ansible alebo záložného súboru Crostini</translation> <translation id="1313264149528821971">Boli odstránené povolenia <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> a <ph name="PERMISSION_3" /></translation> <translation id="1313405956111467313">Automatická konfigurácia servera proxy</translation> @@ -502,6 +503,7 @@ <translation id="1457907785077086338">Farba odznaku aplikácie</translation> <translation id="146000042969587795">Tento rám je zablokovaný, pretože obsahuje nezabezpečený obsah.</translation> <translation id="1461041542809785877">Výkonnosť</translation> +<translation id="1461177659295855031">Presunúť do priečinka panela so záložkami</translation> <translation id="146219525117638703">Stav ONC</translation> <translation id="146220085323579959">Internet je odpojený. Skontrolujte svoje pripojenie k Internetu a skúste znova.</translation> <translation id="1462850958694534228">Kontrola aktualizácie ikony</translation> @@ -772,6 +774,7 @@ <translation id="168715261339224929">Ak chcete získať záložky vo všetkých zariadeniach, zapnite synchronizáciu.</translation> <translation id="1688867105868176567">Vymazať dáta webu?</translation> <translation id="1688935057616748272">Napíšte písmeno</translation> +<translation id="1689333818294560261">Prezývka</translation> <translation id="168991973552362966">Pridanie tlačiarne v blízkosti</translation> <translation id="1689945336726856614">Kopírovať &webovú adresu</translation> <translation id="1692115862433274081">Použiť iný účet</translation> @@ -864,6 +867,7 @@ <translation id="1776883657531386793"><ph name="OID" />: <ph name="INFO" /></translation> <translation id="1778457539567749232">Označiť ako neprečítané</translation> <translation id="1778991607452011493">Posielať denníky ladenia (odporúča sa)</translation> +<translation id="1779441632304440041">Slabé heslá sa dajú ľahko uhádnuť. Vždy sa snažte vytvárať silné heslá.</translation> <translation id="1779468444204342338">Minimálne</translation> <translation id="177989070088644880">Aplikácia (<ph name="ANDROID_PACKAGE_NAME" />)</translation> <translation id="1780152987505130652">Zavrieť skupinu</translation> @@ -1517,7 +1521,6 @@ <translation id="2329597144923131178">Prihláste sa a používajte svoje záložky, históriu, heslá a ďalšie nastavenia vo všetkých svojich zariadeniach.</translation> <translation id="2332115969598251205">Zariadenia uložené v účte <ph name="PRIMARY_EMAIL" /> sa nedajú načítať. Skontrolujte internetové pripojenie a skúste to znova.</translation> <translation id="2332131598580221120">Zobraziť v obchode</translation> -<translation id="2332192922827071008">Otvoriť predvoľby</translation> <translation id="2332515770639153015">Zlepšené bezpečné prehliadanie je zapnuté</translation> <translation id="2332742915001411729">Obnoviť na predvolené hodnoty</translation> <translation id="2332948465534020594">Režim bez vyrušení je aktivovaný</translation> @@ -2093,6 +2096,7 @@ <translation id="2844169650293029770">Zariadenie USB-C (port vľavo vpredu)</translation> <translation id="2844809857160214557">Zobrazte si a spravujte tlačové úlohy</translation> <translation id="2845382757467349449">Vždy zobrazovať panel so záložkami</translation> +<translation id="2845751331501453107">To, či sa vám pri prehliadaní zobrazí prispôsobená reklama, závisí od <ph name="BEGIN_LINK1" />reklám navrhovaných webmi<ph name="LINK_END1" />, vašich <ph name="BEGIN_LINK2" />nastavení súborov cookie<ph name="LINK_END2" /> a od toho, či prehliadaný web prispôsobuje reklamy</translation> <translation id="284581348330507117">Vytvárajte si jedinečné heslá</translation> <translation id="284805635805850872">Odstrániť škodlivý softvér?</translation> <translation id="2849035674501872372">Vyhľadávanie</translation> @@ -2547,6 +2551,7 @@ <translation id="3288047731229977326">Rozšírenia spustené v režime pre vývojárov môžu poškodiť váš počítač. Ak nie ste vývojár, mali by ste v záujme bezpečnosti rozšírenia spustené v režime vývojára zakázať.</translation> <translation id="3289668031376215426">Automatické písanie veľkých písmen</translation> <translation id="3289856944988573801">Ak chcete skontrolovať aktualizácie, použite sieť ethernet alebo Wi‑Fi.</translation> +<translation id="3289886661311231677">Témy, ktoré nechcete zdieľať s webmi, môžete zablokovať. Chrome navyše automaticky odstraňuje témy staršie ako štyri týždne.</translation> <translation id="3290249595466894471">Odosiela aj malú vzorku stránok, stiahnutých súborov, aktivity rozšírení a informácií o systéme, čím pomáha zisťovať nové hrozby</translation> <translation id="3293181007446299124">Vaša história prehliadania je v zariadení uchovaná v súkromí a hlásenia sa z dôvodu ochrany vašej totožnosti odosielajú s oneskorením</translation> <translation id="3293644607209440645">Odoslať túto stránku</translation> @@ -2632,6 +2637,7 @@ <translation id="3370260763947406229">Automatické opravy</translation> <translation id="3371140690572404006">zariadenia USB-C (port vpravo vpredu)</translation> <translation id="337286756654493126">Čítať priečinky, ktoré v aplikácii otvoríte</translation> +<translation id="3373701465337594448">Keď je táto možnosť zapnutá, tu sa bude zobrazovať zoznam navštevovaných webov, ktoré odhadujú vaše záujmy</translation> <translation id="3374294321938930390">Záložka <ph name="BOOKMARK_TITLE" /> bola presunutá do priečinka <ph name="NEW_FOLDER_TITLE" />.</translation> <translation id="3378572629723696641">Toto rozšírenie mohlo byť poškodené.</translation> <translation id="3378627645871606983">Povolenia udelené službe Steam sa vzťahujú na všetky hry a aplikácie tejto služby.</translation> @@ -3038,6 +3044,7 @@ <translation id="3747603683749989726">Chcete zapnúť zlepšené zabezpečenie?</translation> <translation id="3748424433435232460">Heslo tohto účtu je už v tomto zariadení uložené</translation> <translation id="3748706263662799310">Nahlásiť chybu</translation> +<translation id="3749724428455457489">Ďalšie informácie o reklamách navrhovaných webmi</translation> <translation id="3750562496035670393">Chrome uložil vaše heslo do tohto zariadenia, ale môžete si ho namiesto toho uložiť do účtu Google. Potom budete mať tiež k dispozícii všetky heslá zo svojho účtu Google, kým sa neodhlásite.</translation> <translation id="3752253558646317685">Vaše dieťa musí zdvíhať prst, aby sa odtlačok uložil</translation> <translation id="3753033997400164841">Raz uložte. Používajte všade.</translation> @@ -3339,6 +3346,7 @@ <translation id="3993887353483242788">Synchronizujte zariadenie <ph name="DEVICE_TYPE" />, aby ste mali svoje predvoľby k dispozícii vo všetkých zariadeniach, keď sa prihlásite do svojho účtu Google. Predvoľby zahŕňajú aplikácie, nastavenia, heslá Wi‑Fi, jazyky, tapetu, klávesové skratky a viac.</translation> <translation id="3994318741694670028">Váš počítač je žiaľ nakonfigurovaný pomocou poškodeného identifikátora hardvéru. Systému Chrome OS Flex to bráni aktualizovať sa pomocou najnovších opráv zabezpečenia a váš počítač <ph name="BEGIN_BOLD" />môže byť nedostatočne zabezpečený proti škodlivým útokom<ph name="END_BOLD" />.</translation> <translation id="3994374631886003300">Ak chcete odomknúť zariadenie <ph name="DEVICE_TYPE" />, odomknite svoj telefón a priblížte ho k nemu.</translation> +<translation id="3994708120330953242">Niektoré vaše heslá boli odhalené pri porušení ochrany údajov. V rámci zabezpečenia svojich účtov by ste tieto heslá mali okamžite zmeniť.</translation> <translation id="3994878504415702912">&Lupa</translation> <translation id="3995138139523574647">zariadenia USB-C (port vpravo vzadu)</translation> <translation id="3995963973192100066">Prehrať animáciu</translation> @@ -4293,7 +4301,6 @@ <translation id="4893336867552636863">Táto akcia natrvalo odstráni údaje prehliadania z tohto zariadenia.</translation> <translation id="4893454800196085005">Dobrá – DVD</translation> <translation id="4893522937062257019">Na uzamknutej obrazovke</translation> -<translation id="4897496410259333978">Ďalšie informácie získate od správcu.</translation> <translation id="4898011734382862273">Certifikát „<ph name="CERTIFICATE_NAME" />“ predstavuje certifikačnú autoritu</translation> <translation id="4899052647152077033">Invertovať farby</translation> <translation id="4899696330053002588">Obsahuje reklamy</translation> @@ -4391,6 +4398,7 @@ <translation id="4992458225095111526">Potvrdenia obnovenia Powerwash</translation> <translation id="4992473555164495036">Správca obmedzil dostupné metódy vstupu.</translation> <translation id="4994754230098574403">Nastavuje sa</translation> +<translation id="4995293419989417004">Ďalšie informácie o témach reklamy</translation> <translation id="4996851818599058005">{NUM_VMS,plural, =0{Nebol nájdený žiadny virtuálny počítač <ph name="VM_TYPE" />}=1{1 <ph name="VM_TYPE" /> VM found: <ph name="VM_NAME_LIST" />}few{Boli nájdené {NUM_VMS} virtuálne počítače <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}many{{NUM_VMS} <ph name="VM_TYPE" /> VMs found: <ph name="VM_NAME_LIST" />}other{Bolo nájdených {NUM_VMS} virtuálnych počítačov <ph name="VM_TYPE" />: <ph name="VM_NAME_LIST" />}}</translation> <translation id="4997086284911172121">Žiadne internetové pripojenie.</translation> <translation id="4998430619171209993">Zapnuté</translation> @@ -5659,6 +5667,7 @@ <translation id="6184099524311454384">Vyhľadajte karty</translation> <translation id="6185132558746749656">Poloha zariadenia</translation> <translation id="6190953336330058278">Aplikácie Telefónneho centra</translation> +<translation id="6192413564913825901">Presunúť do priečinka Všetky záložky</translation> <translation id="6195005504600220730">Čítanie informácií o prehliadači, operačnom systéme a zariadení</translation> <translation id="6195155925303302899">Zarovnať na stred</translation> <translation id="6195693561221576702">Toto zariadenie nie je možné nastaviť v režime offline ukážky.</translation> @@ -5829,7 +5838,6 @@ <translation id="6347010704471250799">Zobraziť upozornenie</translation> <translation id="6349101878882523185">Inštalovať aplikáciu <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Eliptická krivka SECG secp256r1 (známa tiež ako ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Experimentálny (alfa kvalita) prehliadač. Niektoré funkcie chýbajú alebo sú neúplné. Problémy nahláste v sekcii Pomocník > Nahlásiť problém…</translation> <translation id="635609604405270300">Ponechajte zariadenie zapnuté</translation> <translation id="63566973648609420">Šifrované údaje môže čítať iba používateľ s prístupovou frázou. Prístupová fráza sa do Googlu neodosiela a Google ju ani neukladá. Ak zabudnete prístupovú frázu alebo budete chcieť zmeniť toto nastavenie zmeniť, musíte <ph name="BEGIN_LINK" />resetovať synchronizáciu<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Niektoré podporované odkazy sa budú stále otvárať v aplikácii <ph name="APP_NAME" /> alebo <ph name="APP_NAME_2" />.</translation> @@ -5920,6 +5928,7 @@ <translation id="6444070574980481588">Nastavenie dátumu a času</translation> <translation id="6444147596556711162">Prechádajte medzi položkami na obrazovke tlačidlami Ďalej a Naspäť</translation> <translation id="6444909401984215022"><ph name="WINDOW_TITLE" /> – prebieha vyhľadávanie zariadení s rozhraním Bluetooth</translation> +<translation id="6445395161658447009">Môže trvať až týždeň, kým sa tu zobrazí zoznam webov na základe vašej histórie prehliadania</translation> <translation id="6445450263907939268">Ak ste tieto zmeny nechceli, môžete obnoviť predchádzajúce nastavenia.</translation> <translation id="6446213738085045933">Vytvoriť odkaz na pracovnej ploche</translation> <translation id="6447842834002726250">Súbory cookie</translation> @@ -6973,6 +6982,7 @@ <translation id="7412226954991670867">Pamäť GPU</translation> <translation id="7414464185801331860">18x</translation> <translation id="7415454883318062233">Nastavenie je dokončené</translation> +<translation id="7415484647604548662">Nechcené weby môžete zablokovať. Chrome navyše automaticky odstraňuje zo zoznamu weby, ktoré sú staršie ako štyri týždne.</translation> <translation id="7416091793702109803">Skontrolovať súbor <ph name="FILE_NAME" /></translation> <translation id="7416263748877373774">Zmluvné podmienky sa nedajú načítať. Skontrolujte pripojenie k sieti a skúste to znova.</translation> <translation id="7416362041876611053">Neznáma chyba siete</translation> @@ -6999,7 +7009,6 @@ <translation id="7434757724413878233">Zrýchlenie myši</translation> <translation id="7434969625063495310">Tlačový server sa nepodarilo pridať. Skontrolujte jeho konfiguráciu a skúste to znova.</translation> <translation id="7436921188514130341">Ojoj! Pri premenovaní sa vyskytla chyba.</translation> -<translation id="7438495332316988804">Štandardný prehliadač nájdete zadaním výrazu Chrome do Spúšťača.</translation> <translation id="7439519621174723623">Ak chcete pokračovať, pridajte názov zariadenia</translation> <translation id="7441736921018636843">Ak chcete zmeniť toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /> a odstráňte tak prístupovú frázu synchronizácie</translation> <translation id="7441830548568730290">Ostatní používatelia</translation> @@ -7206,6 +7215,7 @@ <translation id="7634280112532283638">Redukcia spamu a podvodov</translation> <translation id="7634566076839829401">Niečo sa pokazilo. Skúste to znova.</translation> <translation id="7635048370253485243">Pripnuté vaším správcom</translation> +<translation id="7635711411613274199">To, či sa vám pri prehliadaní zobrazí prispôsobená reklama, závisí od <ph name="BEGIN_LINK1" />tém reklamy<ph name="LINK_END1" />, vašich <ph name="BEGIN_LINK2" />nastavení súborov cookie<ph name="LINK_END2" /> a od toho, či prehliadaný web prispôsobuje reklamy</translation> <translation id="7636919061354591437">Nainštalovať v tomto zariadení</translation> <translation id="7637253234491814483">Klepnite na senzor odtlačkov prstov v pravom hornom rohu klávesnice vedľa vypínača. Údaje odtlačkov prstov sú uložené bezpečne a nikdy sa nedostanú mimo zariadenia <ph name="DEVICE_TYPE" />.</translation> <translation id="7637272932128132922">Kým bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť na ďalšie úlohy. Môžete to kedykoľvek zmeniť v sekcii <ph name="SETTINGS_LINK" />.</translation> @@ -7476,6 +7486,7 @@ <translation id="7865127013871431856">Možnosti prekladu</translation> <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – spárované</translation> <translation id="7869655448736341731">Všetky</translation> +<translation id="787069710204604994">Ak napríklad navštívite web predávajúci bežeckú obuv na dlhé trate, môže usúdiť, že máte záujem o behanie maratónov. Ak neskôr navštívite iný web, môže vám zobraziť reklamu na bežeckú obuv navrhnutú prvým webom.</translation> <translation id="7870730066603611552">Po nastavení prezrieť možnosti synchronizácie</translation> <translation id="7870790288828963061">Nenašli sa žiadne aplikácie Kiosku s novšou verziou. Nie je čo aktualizovať. Odoberte kľúč USB.</translation> <translation id="7871049986386271121">Vždy na tomto webe</translation> @@ -7580,6 +7591,7 @@ <translation id="7952904276017482715">Očakávané ID bolo „<ph name="EXPECTED_ID" />“. Skutočné ID bolo „<ph name="NEW_ID" />“.</translation> <translation id="7953669802889559161">Vstupy</translation> <translation id="7953955868932471628">Spravovať skratky</translation> +<translation id="7955105108888461311">Požiadať osobne</translation> <translation id="7955177647836564772">Ak je funkcia Smart Lock zapnutá a telefón odomknutý, nemusíte zadávať heslo ani PIN</translation> <translation id="7956373551960864128">Vaše uložené tlačiarne</translation> <translation id="7957074856830851026">Zobrazte si informácie o zariadení, napríklad sériové číslo alebo identifikátor diela</translation> @@ -8814,6 +8826,7 @@ <translation id="9076523132036239772">Je nám ľúto, e-mailovú adresu alebo heslo sa nepodarilo overiť. Skúste sa najprv pripojiť k sieti.</translation> <translation id="9076821103818989526">Bočný panel</translation> <translation id="9076977315710973122">Zdieľané úložisko SMB</translation> +<translation id="907779190626433918">Používajte pre jednotlivé weby a aplikácie jedinečné heslá. Ak niekto odhalí recyklované heslo, bude ním môcť získať prístup do vašich ďalších účtov.</translation> <translation id="9078193189520575214">Ukladajú sa zmeny...</translation> <translation id="9078316009970372699">Deaktivovať dynamický tethering</translation> <translation id="9078842827190780028">Zobrazujte si viac výsledkov vyhľadávania na bočnom paneli</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 937a8ec7..e46dbf2d 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -772,6 +772,7 @@ <translation id="168715261339224929">Če želite dostopati do zaznamkov v vseh napravah, vklopite sinhronizacijo.</translation> <translation id="1688867105868176567">Ali želite izbrisati podatke spletnega mesta?</translation> <translation id="1688935057616748272">Vnesite črko</translation> +<translation id="1689333818294560261">Vzdevek</translation> <translation id="168991973552362966">Dodajanje tiskalnika v bližini</translation> <translation id="1689945336726856614">Kopiranje &URL-ja</translation> <translation id="1692115862433274081">Uporaba drugega računa</translation> @@ -1528,7 +1529,6 @@ <translation id="2329597144923131178">Prijavite se, da boste lahko dostopali do zaznamkov, zgodovine, gesel in drugih nastavitev v vseh napravah.</translation> <translation id="2332115969598251205">Naprav, shranjenih v računu <ph name="PRIMARY_EMAIL" />, ni mogoče naložiti. Preverite internetno povezavo in poskusite znova.</translation> <translation id="2332131598580221120">Ogled v trgovini</translation> -<translation id="2332192922827071008">Odpri nastavitve</translation> <translation id="2332515770639153015">Izboljšano varno brskanje je vklopljeno</translation> <translation id="2332742915001411729">Ponastavi na privzeto</translation> <translation id="2332948465534020594">Način »ne moti« je omogočen</translation> @@ -4297,7 +4297,6 @@ <translation id="4893336867552636863">S tem boste iz te naprave trajno izbrisali podatke o brskanju.</translation> <translation id="4893454800196085005">Dobro – DVD</translation> <translation id="4893522937062257019">Na zaklenjenem zaslonu</translation> -<translation id="4897496410259333978">Če želite več informacij, se obrnite na skrbnika.</translation> <translation id="4898011734382862273">Potrdilo »<ph name="CERTIFICATE_NAME" />« predstavlja overitelja potrdil</translation> <translation id="4899052647152077033">Obrnitev barv</translation> <translation id="4899696330053002588">Vsebuje oglase</translation> @@ -5833,7 +5832,6 @@ <translation id="6347010704471250799">Prikaz obvestila</translation> <translation id="6349101878882523185">Namestite <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Eliptična krivulja SECG secp256r1 (oziroma ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Poskusni brskalnik (kakovosti alfa)! Nekatere funkcije manjkajo ali so nepopolne. Težave prijavite tukaj: Pomoč > »Prijava težave …«.</translation> <translation id="635609604405270300">Naprava naj ostane vklopljena</translation> <translation id="63566973648609420">Vaše šifrirane podatke lahko bere samo oseba z vašim geslom. Geslo ni poslano Googlu in ni shranjeno v Googlu. Če ga pozabite ali če želite spremeniti to nastavitev, boste morali <ph name="BEGIN_LINK" />sinhronizacijo ponastaviti<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Nekatere podprte povezave se bodo še vedno odprle v aplikaciji <ph name="APP_NAME" /> ali <ph name="APP_NAME_2" />.</translation> @@ -6998,7 +6996,6 @@ <translation id="7434757724413878233">Pospeševanje miške</translation> <translation id="7434969625063495310">Tiskalnega strežnika ni bilo mogoče dodati. Preverite konfiguracijo strežnika in poskusite znova.</translation> <translation id="7436921188514130341">Ti šment! Napaka med preimenovanjem.</translation> -<translation id="7438495332316988804">Standardni brskalnik najdete tako, da v zaganjalnik vnesete »Chrome«.</translation> <translation id="7439519621174723623">Dodajte ime naprave, če želite nadaljevati.</translation> <translation id="7441736921018636843">Če želite spremeniti to nastavitev, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" />, da odstranite geslo za sinhronizacijo</translation> <translation id="7441830548568730290">Drugi uporabniki</translation> @@ -7576,6 +7573,7 @@ <translation id="7952904276017482715">Pričakovani ID je »<ph name="EXPECTED_ID" />«, toda ID je bil »<ph name="NEW_ID" />«</translation> <translation id="7953669802889559161">Načini vnosa</translation> <translation id="7953955868932471628">Upravljanje bližnjic</translation> +<translation id="7955105108888461311">Vprašajte osebno</translation> <translation id="7955177647836564772">Če je vklopljena funkcija Smart Lock in je telefon odklenjen, vam ni treba vnesti gesla ali kode PIN.</translation> <translation id="7956373551960864128">Shranjeni tiskalniki</translation> <translation id="7957074856830851026">Prikaz podatkov o napravi, denimo serijske številke ali ID-ja sredstva</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 0aa303e9..543d9d4 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -763,6 +763,7 @@ <translation id="168715261339224929">Për të marrë faqeshënuesit e tu në të gjitha pajisjet e tua, aktivizo sinkronizimin.</translation> <translation id="1688867105868176567">Të spastrohen të dhënat e sajtit?</translation> <translation id="1688935057616748272">Shkruaj një germë</translation> +<translation id="1689333818294560261">Pseudonimi</translation> <translation id="168991973552362966">Shto një printer në afërsi</translation> <translation id="1689945336726856614">Kopjo &URL-në</translation> <translation id="1692115862433274081">Përdor një llogari tjetër</translation> @@ -1508,7 +1509,6 @@ <translation id="2329597144923131178">Identifikohu për të marrë faqeshënuesit, historikun, fjalëkalimet dhe cilësime të tjera në të gjitha pajisjet e tua.</translation> <translation id="2332115969598251205">Pajisjet e ruajtura te <ph name="PRIMARY_EMAIL" /> nuk mund të ngarkohen. Kontrollo lidhjen e internetit dhe provo përsëri.</translation> <translation id="2332131598580221120">Shiko në dyqan</translation> -<translation id="2332192922827071008">Hap "Preferencat"</translation> <translation id="2332515770639153015">"Shfletimi i sigurt i përmirësuar" është aktiv</translation> <translation id="2332742915001411729">Rivendos me parazgjedhje</translation> <translation id="2332948465534020594">"Mos shqetëso" - aktiv</translation> @@ -4276,7 +4276,6 @@ <translation id="4893336867552636863">Kjo do të fshijë në mënyrë të përhershme të dhënat e shfletimit nga kjo pajisje.</translation> <translation id="4893454800196085005">E mirë - DVD</translation> <translation id="4893522937062257019">Në ekranin e kyçjes</translation> -<translation id="4897496410259333978">Për më shumë informacion, kontakto me administratorin.</translation> <translation id="4898011734382862273">Certifikata "<ph name="CERTIFICATE_NAME" />" përfaqëson një autoritet certifikimi</translation> <translation id="4899052647152077033">Shkëmbe ngjyrat</translation> <translation id="4899696330053002588">Përmban reklama</translation> @@ -5810,7 +5809,6 @@ <translation id="6347010704471250799">Shfaq njoftimin</translation> <translation id="6349101878882523185">Instalo <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Kurba eliptike SECG secp256r1 (e njohur edhe si ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Shfletuesi eksperimental (cilësia alfa)! Disa veçori mungojnë ose nuk janë të plota. Raporto problemet me: Ndihma > "Raporto një problem...".</translation> <translation id="635609604405270300">Mbaje pajisjen të aktivizuar</translation> <translation id="63566973648609420">Vetëm dikush me frazën tënde të kalimit mund të lexojë të dhënat e tua të koduara. Kjo frazë kalimi nuk dërgohet te Google dhe as nuk ruhet nga ai. Nëse e harron frazën tënde të kalimit apo dëshiron të ndryshosh këtë cilësim, duhet që të <ph name="BEGIN_LINK" />rivendosësh sinkronizimin<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" /> ose <ph name="APP_NAME_2" />.</translation> @@ -6969,7 +6967,6 @@ <translation id="7434757724413878233">Përshpejtimi i miut</translation> <translation id="7434969625063495310">Serveri i printimit nuk mund të shtohej. Kontrollo konfigurimin e serverit dhe provo përsëri.</translation> <translation id="7436921188514130341">Mos! Pati një gabim gjatë riemërtimit.</translation> -<translation id="7438495332316988804">Shfletuesi standard mund të gjendet duke shkruar "Chrome" te "Nisësi".</translation> <translation id="7439519621174723623">Shto një pajisje për të vazhduar</translation> <translation id="7441736921018636843">Për të ndryshuar këtë cilësim, <ph name="BEGIN_LINK" />rivendos sinkronizimin<ph name="END_LINK" /> për të hequr frazën e kalimit për sinkronizimin</translation> <translation id="7441830548568730290">Përdoruesit e tjerë</translation> @@ -7546,6 +7543,7 @@ <translation id="7952904276017482715">ID-ja e pritshme ishte "<ph name="EXPECTED_ID" />", por rezultoi "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Hyrjet</translation> <translation id="7953955868932471628">Menaxho shkurtoret</translation> +<translation id="7955105108888461311">Kërkoja personalisht</translation> <translation id="7955177647836564772">Nëse Smart Lock është aktivizuar dhe telefoni yt është i shkyçur, nuk është e nevojshme të futësh një fjalëkalim ose kod PIN</translation> <translation id="7956373551960864128">Printerët e tu të ruajtur</translation> <translation id="7957074856830851026">Të shikojë informacionet e pajisjes, të tilla si numri i serisë ose ID-ja e punës</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index a25f8ac..4ec8d6c 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Ova stranica ne reaguje</translation> <translation id="1041263367839475438">Dostupni uređaji</translation> <translation id="1042174272890264476">Uz računar takođe dobijate ugrađenu RLZ biblioteku proizvoda <ph name="SHORT_PRODUCT_NAME" />. RLZ dodeljuje nejedinstvenu oznaku pomoću koje vas nije moguće lično identifikovati da bi izmerio pretrage i korišćenje proizvoda <ph name="SHORT_PRODUCT_NAME" /> koji su podstaknuti određenom promotivnom kampanjom. Te oznake se ponekad prikazuju u upitima Google pretrage u proizvodu <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">Povežite se na mobilne podatke da biste koristili hotspot. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Došlo je do greške. Linux je možda samo delimično nadograđen. Pregledajte evidenciju za više informacija. Evidencija je sačuvana u odeljku Fajlovi > Moji fajlovi > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Stil mape tastera</translation> <translation id="104710386808485638">Želite li da restartujete Linux?</translation> @@ -157,6 +158,7 @@ <translation id="1139923033416533844">Korišćenje memorije</translation> <translation id="1140351953533677694">Pristup Bluetooth i serijskim uređajima</translation> <translation id="114036956334641753">Zvuk i titl</translation> +<translation id="1141949282671776404">Dok je ova kartica bila neaktivna, Ušteda memorije je oslobodila <ph name="MEMORY_VALUE" /> memorije za druge zadatke.</translation> <translation id="1142002900084379065">Nedavne slike</translation> <translation id="1143142264369994168">Potpisnik sertifikata</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome nije pronašao štetan softver na računaru • Provereno pre 1 minut}one{Chrome nije pronašao štetan softver na računaru • Provereno pre {NUM_MINS} minut}few{Chrome nije pronašao štetan softver na računaru • Provereno pre {NUM_MINS} minuta}other{Chrome nije pronašao štetan softver na računaru • Provereno pre {NUM_MINS} minuta}}</translation> @@ -319,6 +321,7 @@ <translation id="1285320974508926690">Nikad ne prevodi ovaj sajt</translation> <translation id="1285484354230578868">Skladištite podatke na nalogu Google diska</translation> <translation id="1285625592773741684">Aktuelno podešavanje potrošnje podataka je Mobilni podaci</translation> +<translation id="1285815028662278915">Mobilni podaci možda ne podržavaju hotspot. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Noćno svetlo se automatski uključuje kada sunce zađe</translation> <translation id="1288300545283011870">Svojstva govora</translation> <translation id="1289619947962767206">Ova opcija više nije podržana. Da biste prikazali karticu, koristite <ph name="GOOGLE_MEET" />.</translation> @@ -654,6 +657,7 @@ <translation id="1596286373007273895">Dostupno</translation> <translation id="1596709061955594992">Bluetooth je isključen. Da biste videli dostupne uređaje, uključite Bluetooth.</translation> <translation id="1596780725094407793">– obuhvata poddomene</translation> +<translation id="1598163867407640634">Koristite <ph name="SITE_ETLD_PLUS_ONE" /> uz <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Administrator je onemogućio ažuriranja.</translation> <translation id="1600857548979126453">Pristup pozadinskom mehanizmu programa za otklanjanje grešaka na stranici</translation> <translation id="1601560923496285236">Primeni</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">Da bi vam obeleživači bili dostupni na svim uređajima, uključite sinhronizaciju.</translation> <translation id="1688867105868176567">Želite li da obrišete podatke sajta?</translation> <translation id="1688935057616748272">Unesite neko slovo</translation> +<translation id="1689333818294560261">Nadimak</translation> <translation id="168991973552362966">Dodajte štampač u blizini</translation> <translation id="1689945336726856614">Kopiraj &URL</translation> <translation id="1692115862433274081">Koristi drugi nalog</translation> @@ -1231,6 +1236,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" /> Sistem će se restartovati tokom ovog procesa.</translation> <translation id="2095774564753225041">Podržani tipovi fajlova</translation> +<translation id="2097616539631531348">Dok je ova kartica bila neaktivna, Ušteda memorije je oslobodila memoriju za druge zadatke.</translation> <translation id="2098805196501063469">Proveri preostale lozinke</translation> <translation id="2099686503067610784">Želite da izbrišete serverski sertifikat „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="2100273922101894616">Automatsko prijavljivanje</translation> @@ -1514,7 +1520,6 @@ <translation id="2329597144923131178">Prijavite se da bi vam obeleživači, istorija, lozinke i druga podešavanja bili dostupni na svim uređajima.</translation> <translation id="2332115969598251205">Učitavanje uređaja sačuvanih na <ph name="PRIMARY_EMAIL" /> nije uspelo. Proverite internet vezu i probajte ponovo.</translation> <translation id="2332131598580221120">Prikaži u prodavnici</translation> -<translation id="2332192922827071008">Otvori Podešavanja</translation> <translation id="2332515770639153015">Poboljšano bezbedno pregledanje je uključeno</translation> <translation id="2332742915001411729">Vrati na podrazumevanu vrednost</translation> <translation id="2332948465534020594">Funkcija Ne uznemiravaj je omogućena</translation> @@ -3377,6 +3382,7 @@ <translation id="4040041015953651705">Jezik sa kog želite da prevodite</translation> <translation id="4040105702484676956">Želite da obrišete podatke o sajtovima i dozvole za sajt <ph name="SITE_NAME" /> i njegovu instaliranu aplikaciju?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Zatvori stranicu}one{Zatvori stranice}few{Zatvori stranice}other{Zatvori stranice}}</translation> +<translation id="4042941173059740150">Nastavite na <ph name="SITE_ETLD_PLUS_ONE" /> uz <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Veličina kursora</translation> <translation id="4044612648082411741">Unesite lozinku za sertifikat</translation> <translation id="4044708573046946214">Lozinka za zaključavanje ekrana</translation> @@ -4290,7 +4296,6 @@ <translation id="4893336867552636863">To će trajno izbrisati podatke pregledanja sa ovog uređaja.</translation> <translation id="4893454800196085005">Dobar – DVD</translation> <translation id="4893522937062257019">Na zaključanom ekranu</translation> -<translation id="4897496410259333978">Dodatne informacije potražite od administratora.</translation> <translation id="4898011734382862273">Sertifikat „<ph name="CERTIFICATE_NAME" />“ predstavlja autoritet za izdavanje sertifikata</translation> <translation id="4899052647152077033">Obrni boje</translation> <translation id="4899696330053002588">Sadrži oglase</translation> @@ -5826,7 +5831,6 @@ <translation id="6347010704471250799">Prikaži obaveštenje</translation> <translation id="6349101878882523185">Instalirajte <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Eliptična kriva SECG secp256r1 (takođe poznata kao ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Eksperimentalni pregledač (alfa kvalitet)! Neke funkcije nedostaju ili su nepotpune. Prijavite probleme preko opcije: Pomoć > „Prijavite problem…“.</translation> <translation id="635609604405270300">Ne isključujte uređaj</translation> <translation id="63566973648609420">Samo neko ko ima pristupnu frazu može da čita šifrovane podatke. Google ne šalje niti čuva pristupnu frazu. Ako zaboravite pristupnu frazu ili želite da promenite ovo podešavanje, moraćete da <ph name="BEGIN_LINK" />resetujete sinhronizaciju<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Neki podržani linkovi će se i dalje otvarati u <ph name="APP_NAME" /> ili <ph name="APP_NAME_2" />.</translation> @@ -6996,7 +7000,6 @@ <translation id="7434757724413878233">Ubrzavanje miša</translation> <translation id="7434969625063495310">Dodavanje servera za štampanje nije uspelo. Proverite konfiguraciju servera i probajte ponovo.</translation> <translation id="7436921188514130341">O, ne! Došlo je do greške tokom promene naziva.</translation> -<translation id="7438495332316988804">Standardni pregledač možete da pronađete ako unesete Chrome u pokretač.</translation> <translation id="7439519621174723623">Dodajte naziv uređaja da biste nastavili</translation> <translation id="7441736921018636843">Da biste promenili ovo podešavanje, <ph name="BEGIN_LINK" />resetujte sinhronizaciju<ph name="END_LINK" /> da biste uklonili pristupnu frazu za sinhronizaciju</translation> <translation id="7441830548568730290">Drugi korisnici</translation> @@ -7577,6 +7580,7 @@ <translation id="7952904276017482715">Očekivao se ID „<ph name="EXPECTED_ID" />“, ali ID je bio „<ph name="NEW_ID" />“</translation> <translation id="7953669802889559161">Unosi</translation> <translation id="7953955868932471628">Upravljaj prečicama</translation> +<translation id="7955105108888461311">Zatraži lično</translation> <translation id="7955177647836564772">Ako je Smart Lock uključen i telefon je otključan, ne morate da unosite lozinku ili PIN</translation> <translation id="7956373551960864128">Sačuvani štampači</translation> <translation id="7957074856830851026">Pregled informacija o uređaju, kao što je serijski broj ili ID dela</translation> @@ -8360,6 +8364,7 @@ <translation id="8674903726754070732">Nažalost, računar je konfigurisan pomoću pogrešno formatiranog ID-a hardvera. To sprečava da se Chrome OS ažurira najnovijim bezbednosnim ispravkama i računar <ph name="BEGIN_BOLD" />može da bude podložan zlonamernim napadima<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Program za instalaciju nije uspeo da pronađe ispravno odredište za instaliranje sistema <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Video}one{# video}few{# video snimka}other{# video snimaka}}</translation> +<translation id="8676276370198826499">Registrujte se za <ph name="SITE_ETLD_PLUS_ONE" /> uz <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Hvala vam što ste poslali povratne informacije.</translation> <translation id="8676374126336081632">Obriši unos</translation> <translation id="8676770494376880701">Povezan je punjač male snage</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 42d8b0c0..70e3a3d 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -45,6 +45,7 @@ <translation id="1041175011127912238">Ова страница не реагује</translation> <translation id="1041263367839475438">Доступни уређаји</translation> <translation id="1042174272890264476">Уз рачунар такође добијате уграђену RLZ библиотеку производа <ph name="SHORT_PRODUCT_NAME" />. RLZ додељује нејединствену ознаку помоћу које вас није могуће лично идентификовати да би измерио претраге и коришћење производа <ph name="SHORT_PRODUCT_NAME" /> који су подстакнути одређеном промотивном кампањом. Те ознаке се понекад приказују у упитима Google претраге у производу <ph name="PRODUCT_NAME" />.</translation> +<translation id="1042248468362992359">Повежите се на мобилне податке да бисте користили хотспот. <ph name="BEGIN_LINK_LEARN_MORE" />Сазнајте више<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1043505821207197890">Дошло је до грешке. Linux је можда само делимично надограђен. Прегледајте евиденцију за више информација. Евиденција је сачувана у одељку Фајлови > Моји фајлови > <ph name="LOG_FILE" /></translation> <translation id="104419033123549300">Стил мапе тастера</translation> <translation id="104710386808485638">Желите ли да рестартујете Linux?</translation> @@ -157,6 +158,7 @@ <translation id="1139923033416533844">Коришћење меморије</translation> <translation id="1140351953533677694">Приступ Bluetooth и серијским уређајима</translation> <translation id="114036956334641753">Звук и титл</translation> +<translation id="1141949282671776404">Док је ова картица била неактивна, Уштеда меморије је ослободила <ph name="MEMORY_VALUE" /> меморије за друге задатке.</translation> <translation id="1142002900084379065">Недавне слике</translation> <translation id="1143142264369994168">Потписник сертификата</translation> <translation id="1143816224540441191">{NUM_MINS,plural, =1{Chrome није пронашао штетан софтвер на рачунару • Проверено пре 1 минут}one{Chrome није пронашао штетан софтвер на рачунару • Проверено пре {NUM_MINS} минут}few{Chrome није пронашао штетан софтвер на рачунару • Проверено пре {NUM_MINS} минута}other{Chrome није пронашао штетан софтвер на рачунару • Проверено пре {NUM_MINS} минута}}</translation> @@ -319,6 +321,7 @@ <translation id="1285320974508926690">Никад не преводи овај сајт</translation> <translation id="1285484354230578868">Складиштите податке на налогу Google диска</translation> <translation id="1285625592773741684">Актуелно подешавање потрошње података је Мобилни подаци</translation> +<translation id="1285815028662278915">Мобилни подаци можда не подржавају хотспот. <ph name="BEGIN_LINK_LEARN_MORE" />Сазнајте више<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="1288037062697528143">Ноћно светло се аутоматски укључује када сунце зађе</translation> <translation id="1288300545283011870">Својства говора</translation> <translation id="1289619947962767206">Ова опција више није подржана. Да бисте приказали картицу, користите <ph name="GOOGLE_MEET" />.</translation> @@ -654,6 +657,7 @@ <translation id="1596286373007273895">Доступно</translation> <translation id="1596709061955594992">Bluetooth је искључен. Да бисте видели доступне уређаје, укључите Bluetooth.</translation> <translation id="1596780725094407793">– обухвата поддомене</translation> +<translation id="1598163867407640634">Користите <ph name="SITE_ETLD_PLUS_ONE" /> уз <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="1598233202702788831">Администратор је онемогућио ажурирања.</translation> <translation id="1600857548979126453">Приступ позадинском механизму програма за отклањање грешака на страници</translation> <translation id="1601560923496285236">Примени</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">Да би вам обележивачи били доступни на свим уређајима, укључите синхронизацију.</translation> <translation id="1688867105868176567">Желите ли да обришете податке сајта?</translation> <translation id="1688935057616748272">Унесите неко слово</translation> +<translation id="1689333818294560261">Надимак</translation> <translation id="168991973552362966">Додајте штампач у близини</translation> <translation id="1689945336726856614">Копирај &URL</translation> <translation id="1692115862433274081">Користи други налог</translation> @@ -1231,6 +1236,7 @@ <ph name="BR" /> <ph name="BEGIN_BOLD" />Напомена:<ph name="END_BOLD" /> Систем ће се рестартовати током овог процеса.</translation> <translation id="2095774564753225041">Подржани типови фајлова</translation> +<translation id="2097616539631531348">Док је ова картица била неактивна, Уштеда меморије је ослободила меморију за друге задатке.</translation> <translation id="2098805196501063469">Провери преостале лозинке</translation> <translation id="2099686503067610784">Желите да избришете серверски сертификат „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="2100273922101894616">Аутоматско пријављивање</translation> @@ -1514,7 +1520,6 @@ <translation id="2329597144923131178">Пријавите се да би вам обележивачи, историја, лозинке и друга подешавања били доступни на свим уређајима.</translation> <translation id="2332115969598251205">Учитавање уређаја сачуваних на <ph name="PRIMARY_EMAIL" /> није успело. Проверите интернет везу и пробајте поново.</translation> <translation id="2332131598580221120">Прикажи у продавници</translation> -<translation id="2332192922827071008">Отвори Подешавања</translation> <translation id="2332515770639153015">Побољшано безбедно прегледање је укључено</translation> <translation id="2332742915001411729">Врати на подразумевану вредност</translation> <translation id="2332948465534020594">Функција Не узнемиравај је омогућена</translation> @@ -3377,6 +3382,7 @@ <translation id="4040041015953651705">Језик са ког желите да преводите</translation> <translation id="4040105702484676956">Желите да обришете податке о сајтовима и дозволе за сајт <ph name="SITE_NAME" /> и његову инсталирану апликацију?</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Затвори страницу}one{Затвори странице}few{Затвори странице}other{Затвори странице}}</translation> +<translation id="4042941173059740150">Наставите на <ph name="SITE_ETLD_PLUS_ONE" /> уз <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="4043267180218562935">Величина курсора</translation> <translation id="4044612648082411741">Унесите лозинку за сертификат</translation> <translation id="4044708573046946214">Лозинка за закључавање екрана</translation> @@ -4290,7 +4296,6 @@ <translation id="4893336867552636863">То ће трајно избрисати податке прегледања са овог уређаја.</translation> <translation id="4893454800196085005">Добар – DVD</translation> <translation id="4893522937062257019">На закључаном екрану</translation> -<translation id="4897496410259333978">Додатне информације потражите од администратора.</translation> <translation id="4898011734382862273">Сертификат „<ph name="CERTIFICATE_NAME" />“ представља ауторитет за издавање сертификата</translation> <translation id="4899052647152077033">Обрни боје</translation> <translation id="4899696330053002588">Садржи огласе</translation> @@ -5826,7 +5831,6 @@ <translation id="6347010704471250799">Прикажи обавештење</translation> <translation id="6349101878882523185">Инсталирајте <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Елиптична крива SECG secp256r1 (такође позната као ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Експериментални прегледач (алфа квалитет)! Неке функције недостају или су непотпуне. Пријавите проблеме преко опције: Помоћ > „Пријавите проблем…“.</translation> <translation id="635609604405270300">Не искључујте уређај</translation> <translation id="63566973648609420">Само неко ко има приступну фразу може да чита шифроване податке. Google не шаље нити чува приступну фразу. Ако заборавите приступну фразу или желите да промените ово подешавање, мораћете да <ph name="BEGIN_LINK" />ресетујете синхронизацију<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Неки подржани линкови ће се и даље отварати у <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation> @@ -6996,7 +7000,6 @@ <translation id="7434757724413878233">Убрзавање миша</translation> <translation id="7434969625063495310">Додавање сервера за штампање није успело. Проверите конфигурацију сервера и пробајте поново.</translation> <translation id="7436921188514130341">О, не! Дошло је до грешке током промене назива.</translation> -<translation id="7438495332316988804">Стандардни прегледач можете да пронађете ако унесете Chrome у покретач.</translation> <translation id="7439519621174723623">Додајте назив уређаја да бисте наставили</translation> <translation id="7441736921018636843">Да бисте променили ово подешавање, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /> да бисте уклонили приступну фразу за синхронизацију</translation> <translation id="7441830548568730290">Други корисници</translation> @@ -7577,6 +7580,7 @@ <translation id="7952904276017482715">Очекивао се ИД „<ph name="EXPECTED_ID" />“, али ИД је био „<ph name="NEW_ID" />“</translation> <translation id="7953669802889559161">Уноси</translation> <translation id="7953955868932471628">Управљај пречицама</translation> +<translation id="7955105108888461311">Затражи лично</translation> <translation id="7955177647836564772">Ако је Smart Lock укључен и телефон је откључан, не морате да уносите лозинку или PIN</translation> <translation id="7956373551960864128">Сачувани штампачи</translation> <translation id="7957074856830851026">Преглед информација о уређају, као што је серијски број или ИД дела</translation> @@ -8360,6 +8364,7 @@ <translation id="8674903726754070732">Нажалост, рачунар је конфигурисан помоћу погрешно форматираног ИД-а хардвера. То спречава да се Chrome OS ажурира најновијим безбедносним исправкама и рачунар <ph name="BEGIN_BOLD" />може да буде подложан злонамерним нападима<ph name="END_BOLD" />.</translation> <translation id="8675704450909805533">Програм за инсталацију није успео да пронађе исправно одредиште за инсталирање система <ph name="DEVICE_OS" />.</translation> <translation id="8676152597179121671">{COUNT,plural, =1{Видео}one{# видео}few{# видео снимка}other{# видео снимака}}</translation> +<translation id="8676276370198826499">Региструјте се за <ph name="SITE_ETLD_PLUS_ONE" /> уз <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation> <translation id="8676313779986170923">Хвала вам што сте послали повратне информације.</translation> <translation id="8676374126336081632">Обриши унос</translation> <translation id="8676770494376880701">Повезан је пуњач мале снаге</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 3fc2baf..227cd9bf 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -773,6 +773,7 @@ <translation id="168715261339224929">Aktivera synkronisering om du vill få tillgång till dina bokmärken på alla enheter</translation> <translation id="1688867105868176567">Vill du ta bort webbplatsdata?</translation> <translation id="1688935057616748272">Skriv en bokstav</translation> +<translation id="1689333818294560261">Kortnamn</translation> <translation id="168991973552362966">Lägg till en skrivare i närheten</translation> <translation id="1689945336726856614">Kopiera webbadress</translation> <translation id="1692115862433274081">Använd ett annat konto</translation> @@ -1530,7 +1531,6 @@ <translation id="2329597144923131178">Logga in så blir bokmärken, historik, lösenord med mera tillgängligt på alla dina enheter.</translation> <translation id="2332115969598251205">Det gick inte att läsa in enheterna som har sparats i <ph name="PRIMARY_EMAIL" />. Kontrollera internetanslutningen och försök igen.</translation> <translation id="2332131598580221120">Visa i butik</translation> -<translation id="2332192922827071008">Öppna inställningarna</translation> <translation id="2332515770639153015">Förbättrad säker webbsökning har aktiverats</translation> <translation id="2332742915001411729">Återställ standardvärden</translation> <translation id="2332948465534020594">Stör ej har aktiverats</translation> @@ -4307,7 +4307,6 @@ <translation id="4893336867552636863">All webbinformation raderas permanent från den här enheten.</translation> <translation id="4893454800196085005">Bra – dvd</translation> <translation id="4893522937062257019">På låsskärmen</translation> -<translation id="4897496410259333978">Kontakta administratören om du vill veta mer.</translation> <translation id="4898011734382862273">Certifikatet <ph name="CERTIFICATE_NAME" /> är en certifikatutfärdare</translation> <translation id="4899052647152077033">Invertera färger</translation> <translation id="4899696330053002588">Innehåller annonser</translation> @@ -5843,7 +5842,6 @@ <translation id="6347010704471250799">Visa avisering</translation> <translation id="6349101878882523185">Installera <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG med elliptisk kurva secp256r1 (kallas även ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Detta är en experimentell webbläsare (alfakvalitet) Vissa funktioner saknas eller är ofullständiga. Rapportera problem via Hjälp > Rapportera ett problem …</translation> <translation id="635609604405270300">Stäng inte av enheten</translation> <translation id="63566973648609420">Endast personer som har ditt lösenord kan läsa dina krypterade uppgifter. Lösenordet skickas inte till och sparas inte av Google. Om du glömmer lösenordet måste du <ph name="BEGIN_LINK" />återställa synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" /> eller <ph name="APP_NAME_2" />.</translation> @@ -7009,7 +7007,6 @@ <translation id="7434757724413878233">Musacceleration</translation> <translation id="7434969625063495310">Det gick inte att lägga till utskriftsservern. Kontrollera serverns konfiguration och försök igen.</translation> <translation id="7436921188514130341">Ett fel uppstod när namnet skulle bytas.</translation> -<translation id="7438495332316988804">Du hittar standardwebbläsaren genom att skriva Chrome i appstartaren.</translation> <translation id="7439519621174723623">Lägg till ett enhetsnamn om du vill fortsätta</translation> <translation id="7441736921018636843"><ph name="BEGIN_LINK" />Återställ synkroniseringen<ph name="END_LINK" /> så att lösenfrasen för synkronisering tas bort om du vill ändra den här inställningen</translation> <translation id="7441830548568730290">Andra användare</translation> @@ -7590,6 +7587,7 @@ <translation id="7952904276017482715">Id <ph name="EXPECTED_ID" /> förväntades men id:t är <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Inmatningar</translation> <translation id="7953955868932471628">Hantera genvägar</translation> +<translation id="7955105108888461311">Fråga själv</translation> <translation id="7955177647836564772">Om Smart Lock är aktiverat och telefonen är upplåst behöver du inte ange lösenord eller pinkod</translation> <translation id="7956373551960864128">Dina sparade skrivare</translation> <translation id="7957074856830851026">Visa enhetsinformation, t.ex. serienummer eller tillgångs-id</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 35b60a2..9c5a4aa 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -766,6 +766,7 @@ <translation id="168715261339224929">Ili upate alamisho kwenye vifaa vyako vyote, washa usawazishaji.</translation> <translation id="1688867105868176567">Ungependa kufuta data ya tovuti?</translation> <translation id="1688935057616748272">Andika herufi</translation> +<translation id="1689333818294560261">Jina la kuwakilisha</translation> <translation id="168991973552362966">Ongeza printa iliyo karibu</translation> <translation id="1689945336726856614">Nakili URL</translation> <translation id="1692115862433274081">Tumia akaunti nyingine</translation> @@ -1522,7 +1523,6 @@ <translation id="2329597144923131178">Ingia katika akaunti ili upate alamisho, historia, manenosiri, na mipangilio yako mingine kwenye vifaa vyako vyote.</translation> <translation id="2332115969598251205">Imeshindwa kupakia vifaa vilivyohifadhiwa katika <ph name="PRIMARY_EMAIL" />. Kagua muunganisho wako wa intaneti kisha ujaribu tena.</translation> <translation id="2332131598580221120">Angalia katika Duka la Wavuti</translation> -<translation id="2332192922827071008">Fungua Mapendeleo</translation> <translation id="2332515770639153015">Kipengele cha Kuvinjari Salama Kilichoboreshwa kimewashwa</translation> <translation id="2332742915001411729">Rejesha kwenye chaguomsingi</translation> <translation id="2332948465534020594">Kipengele cha 'Usinisumbue' kimewashwa</translation> @@ -4289,7 +4289,6 @@ <translation id="4893336867552636863">Hii itafuta kabisa data yako ya kuvinjari kwenye kifaa hiki.</translation> <translation id="4893454800196085005">DVD - Nzuri</translation> <translation id="4893522937062257019">Kwenye skrini iliyofungwa</translation> -<translation id="4897496410259333978">Kwa maelezo zaidi, wasiliana na msimamizi wako.</translation> <translation id="4898011734382862273">Cheti cha "<ph name="CERTIFICATE_NAME" />" kinawakilisha Mamlaka ya Uthibitishaji</translation> <translation id="4899052647152077033">Geuza rangi</translation> <translation id="4899696330053002588">Ina matangazo</translation> @@ -5823,7 +5822,6 @@ <translation id="6347010704471250799">Onyesha arifa</translation> <translation id="6349101878882523185">Sakinisha <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG kizingo cha mviringo secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Kivinjari hiki kinafanyiwa majaribio (kipo katika kiwango cha alpha)! Baadhi ya vipengele havipo au havijakamilika. Ripoti hitilafu kupitia sehemu ya: Usaidizi > "Ripoti hitilafu...".</translation> <translation id="635609604405270300">Usizime kifaa</translation> <translation id="63566973648609420">Ni mtu mwenye kauli yako ya siri tu anaweza kusoma data yako iliyosimbwa kwa njia fiche. Kauli ya siri haitumwi au kuhifadhiwa na Google. Ukisahau kauli yako ya siri, au unataka kubadilisha mipangilio hii, utahitaji <ph name="BEGIN_LINK" />kuweka upya usawazishaji<ph name="END_LINK" /></translation> <translation id="6357305427698525450">Baadhi ya viungo vinavyotumika bado vitafunguka kwenye <ph name="APP_NAME" /> au <ph name="APP_NAME_2" />.</translation> @@ -6982,7 +6980,6 @@ <translation id="7434757724413878233">Kuongeza kasi ya kipanya</translation> <translation id="7434969625063495310">Imeshindwa kuweka seva ya kuchapisha. Tafadhali kagua mipangilio ya seva yako kisha ujaribu tena.</translation> <translation id="7436921188514130341">Samahani. Hitilafu imetokea wakati wa kubadilisha jina.</translation> -<translation id="7438495332316988804">Unaweza kupata kivinjari cha kawaida kwa kuandika "Chrome" kwenye Kifungua Programu.</translation> <translation id="7439519621174723623">Weka jina la kifaa ili uendelee</translation> <translation id="7441736921018636843">Ili ubadilishe mipangilio hii, <ph name="BEGIN_LINK" />weka upya kipengele cha usawazishaji<ph name="END_LINK" /> ili kuondoa kauli yako ya siri ya usawazishaji</translation> <translation id="7441830548568730290">Watumiaji wengine</translation> @@ -7561,6 +7558,7 @@ <translation id="7952904276017482715">Ilitarajia kitambulisho cha "<ph name="EXPECTED_ID" />", lakini ikapata "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Mbinu za kuingiza data</translation> <translation id="7953955868932471628">Dhibiti mikato</translation> +<translation id="7955105108888461311">Omba idhini mwenyewe</translation> <translation id="7955177647836564772">Huhitaji kuweka nenosiri au PIN, ikiwa kipengele cha Smart Lock kimewashwa na simu yako imefunguliwa</translation> <translation id="7956373551960864128">Printa ulizohifadhi</translation> <translation id="7957074856830851026">Kuona maelezo ya kifaa, kama vile nambari ya ufuatiliaji au kitambulisho cha kipengee</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 93bbf0b9..3e370049 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -769,6 +769,7 @@ <translation id="168715261339224929">உங்கள் எல்லா சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, ஒத்திசைவை இயக்கவும்.</translation> <translation id="1688867105868176567">தளத் தரவை அழிக்கவா?</translation> <translation id="1688935057616748272">ஓர் எழுத்தை உள்ளிடவும்</translation> +<translation id="1689333818294560261">புனைப்பெயர்</translation> <translation id="168991973552362966">அருகிலுள்ள பிரிண்டரைச் சேர்</translation> <translation id="1689945336726856614">&URLஐ நகலெடு</translation> <translation id="1692115862433274081">வேறொரு கணக்கைப் பயன்படுத்து</translation> @@ -1525,7 +1526,6 @@ <translation id="2329597144923131178">உங்கள் எல்லா சாதனங்களிலும் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகளைப் பெற உள்நுழையவும்.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> கணக்கில் சேமிக்கப்பட்ட சாதனங்களை ஏற்ற முடியவில்லை. இணைய இணைப்பைச் சரிபார்த்து மீண்டும் முயலவும்.</translation> <translation id="2332131598580221120">அங்காடியில் காட்டு</translation> -<translation id="2332192922827071008">விருப்பத்தேர்வுகளைத் திற</translation> <translation id="2332515770639153015">‘மேம்பட்ட பாதுகாப்பு உலாவல்’ அம்சம் இயக்கப்பட்டுள்ளது</translation> <translation id="2332742915001411729">இயல்புநிலைக்கு மீட்டமை</translation> <translation id="2332948465534020594">‘தொந்தரவு செய்ய வேண்டாம்’ அம்சம் இயக்கப்பட்டுள்ளது</translation> @@ -4294,7 +4294,6 @@ <translation id="4893336867552636863">இது, இந்தச் சாதனத்திலிருந்து உலாவிய தரவை நிரந்தரமாக நீக்கும்.</translation> <translation id="4893454800196085005">நன்று - DVD</translation> <translation id="4893522937062257019">திரை பூட்டியிருக்கும்போது</translation> -<translation id="4897496410259333978">கூடுதல் தகவல்களுக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" என்ற சான்றிதழானது, சான்றளிக்கும் அங்கீகாரத்தைக் குறிக்கிறது</translation> <translation id="4899052647152077033">நெகடிவ்</translation> <translation id="4899696330053002588">விளம்பரங்கள் உள்ளன</translation> @@ -5829,7 +5828,6 @@ <translation id="6347010704471250799">அறிவிப்பைக் காட்டு</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ஆப்ஸை நிறுவுக</translation> <translation id="6354918092619878358">SECG நீள்வட்ட வளைவான secp256r1 (ANSI X9.62 prime256v1 எனவும் அறியப்படும், NIST P-256)</translation> -<translation id="6355789186038748882">சோதனை (ஆல்ஃபா பதிப்பு) உலாவி! சில அம்சங்கள் விடுபட்டிருக்கலாம் அல்லது முழுமை பெறாமல் இருக்கலாம். சிக்கல்கள் இருந்தால் உதவி > "சிக்கலைப் புகாரளி..." என்பதற்குச் சென்று புகாரளிக்கவும்.</translation> <translation id="635609604405270300">சாதனத்தை இயக்கத்தில் வைத்திருக்கவும்</translation> <translation id="63566973648609420">உங்கள் கடவுச்சொற்றொடரை அறிந்தவரால் மட்டுமே என்கிரிப்ட் செய்யப்பட்ட உங்கள் தரவைப் படிக்க முடியும். கடவுச்சொற்றொடரானது Googleக்கு அனுப்பப்படுவதில்லை அல்லது Google அதைச் சேமிப்பதில்லை. கடவுச்சொற்றொடரை மறந்துவிட்டால் அல்லது இந்த அமைப்பை மாற்ற விரும்பினால், நீங்கள் <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைக்க வேண்டும்<ph name="END_LINK" />.</translation> <translation id="6357305427698525450"><ph name="APP_NAME" /> அல்லது <ph name="APP_NAME_2" /> ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation> @@ -6988,7 +6986,6 @@ <translation id="7434757724413878233">மவுஸ் ஆக்ஸிலரேஷன்</translation> <translation id="7434969625063495310">பிரிண்ட் சேவையகத்தைச் சேர்க்க முடியவில்லை. உங்கள் சேவையகத்தின் உள்ளமைவைச் சரிபார்த்துவிட்டு மீண்டும் முயலவும்.</translation> <translation id="7436921188514130341">அச்சச்சோ! பெயரை மாற்றும் போது பிழை ஏற்பட்டது.</translation> -<translation id="7438495332316988804">தொடக்கியில் "Chrome" என உள்ளிட்டு வழக்கமான உலாவியைக் கண்டறியலாம்.</translation> <translation id="7439519621174723623">தொடர, சாதனத்தின் பெயரைச் சேர்க்கவும்</translation> <translation id="7441736921018636843">இந்த அமைப்பை மாற்ற, <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைத்து<ph name="END_LINK" /> உங்கள் ஒத்திசைவுக் கடவுச்சொற்றொடரை அகற்றவும்</translation> <translation id="7441830548568730290">பிற பயனர்கள்</translation> @@ -7566,6 +7563,7 @@ <translation id="7952904276017482715">எதிர்பார்க்கப்பட்ட ஐடி "<ph name="EXPECTED_ID" />", ஆனால் இருப்பது "<ph name="NEW_ID" />" ஐடி ஆகும்</translation> <translation id="7953669802889559161">உள்ளீட்டு முறைகள்</translation> <translation id="7953955868932471628">குறுக்குவழிகளை நிர்வகி</translation> +<translation id="7955105108888461311">நேரடியாகக் கேட்கவும்</translation> <translation id="7955177647836564772">Smart Lock இயக்கப்பட்டிருக்கும்போது உங்கள் ஃபோன் அன்லாக் செய்யப்பட்டால் நீங்கள் கடவுச்சொல் அல்லது பின்னை (PIN) டைப் செய்யத் தேவையில்லை</translation> <translation id="7956373551960864128">நீங்கள் சேமித்துள்ள பிரிண்டர்கள்</translation> <translation id="7957074856830851026">வரிசை எண்/உரிமை ஐடி போன்ற சாதனத் தகவலைப் பார்த்தல்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index daa27e68..a39ff08 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -555,6 +555,7 @@ <translation id="1509163368529404530">&గ్రూప్ను రీస్టోర్ చేయండి</translation> <translation id="1509281256533087115">ఏ <ph name="DEVICE_NAME_AND_VENDOR" />ని అయినా USB ద్వారా యాక్సెస్ చేయడానికి అనుమతి</translation> <translation id="1510238584712386396">లాంచర్</translation> +<translation id="1510341833810331442">మీ పరికరంలో డేటాను సేవ్ చేయడానికి సైట్లకు అనుమతి లేదు</translation> <translation id="1510785804673676069">మీరు ప్రాక్సీ సర్వర్ను ఉపయోగిస్తుంటే, ప్రాక్సీ సర్వర్ పని చేస్తోందని చెక్ చేయడానికి మీ ప్రాక్సీ సెట్టింగ్లను చెక్ చేయండి లేదా మీ నెట్వర్క్ నిర్వాహకుడిని సంప్రదించండి. మీరు ప్రాక్సీ సర్వర్ను ఉపయోగిస్తున్నారని @@ -773,6 +774,7 @@ <translation id="168715261339224929">మీ బుక్మార్క్లను మీ అన్ని పరికరాలలోనూ పొందాలంటే, సింక్ను ఆన్ చేయండి.</translation> <translation id="1688867105868176567">సైట్ డేటాను క్లియర్ చేయాలా?</translation> <translation id="1688935057616748272">అక్షరాన్ని టైప్ చేయండి</translation> +<translation id="1689333818294560261">మారుపేరు</translation> <translation id="168991973552362966">సమీపంలోని ప్రింటర్ను జోడించండి</translation> <translation id="1689945336726856614">&URLను కాపీ చేయండి</translation> <translation id="1692115862433274081">మరో ఖాతాను ఉపయోగించండి</translation> @@ -900,6 +902,7 @@ <translation id="1802687198411089702">పేజీ ప్రతిస్పందించడం లేదు. మీరు దాని కోసం వేచి ఉండవచ్చు లేదా మూసివేయవచ్చు.</translation> <translation id="1803531841600994172">అనువదించాల్సిన భాష</translation> <translation id="1803545009660609783">మళ్లీ శిక్షణ ఇవ్వండి</translation> +<translation id="1805545709333681504">పాత పాస్వర్డ్ను ఎంటర్ చేయండి</translation> <translation id="1805738995123446102">బ్యాక్గ్రౌండ్ ట్యాబ్ మీ మైక్రోఫోన్ను ఉపయోగిస్తోంది</translation> <translation id="1805822111539868586">వీక్షణలను పరిశీలించండి</translation> <translation id="1805888043020974594">ప్రింట్ సర్వర్</translation> @@ -1529,7 +1532,6 @@ <translation id="2329597144923131178">మీ బుక్మార్క్లు, హిస్టరీ, పాస్వర్డ్లు, ఇతర సెట్టింగ్లను మీ అన్ని పరికరాలలో పొందడానికి సైన్ ఇన్ చేయండి.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" />కు సేవ్ చేసిన పరికరాలను లోడ్ చేయడం సాధ్యం కాదు. మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ట్రై చేయండి.</translation> <translation id="2332131598580221120">స్టోర్లో చూడండి</translation> -<translation id="2332192922827071008">ప్రాధాన్యతలను తెరువు</translation> <translation id="2332515770639153015">మెరుగైన సురక్షిత బ్రౌజింగ్ ఆన్లో ఉంది</translation> <translation id="2332742915001411729">ఆటోమేటిక్ సెట్టింగ్కు రీసెట్ చేయి</translation> <translation id="2332948465534020594">అంతరాయం కలిగించవద్దు ఎనేబుల్ చేయబడింది</translation> @@ -1619,6 +1621,7 @@ <translation id="2410298923485357543">పరికరం ఆన్లైన్లో ఉన్నప్పుడు సహజ వాయిస్ను ఉపయోగించండి</translation> <translation id="2410754283952462441">ఖాతాను ఎంచుకోండి</translation> <translation id="241082044617551207">తెలియని ప్లగ్ఇన్</translation> +<translation id="2410940059315936967">మీరు చూసే సైట్ ఇతర సైట్ల నుండి కంటెంట్ను పొందుపరచవచ్చు, ఉదాహరణకు, ఇమేజ్లు, యాడ్లు, ఇంకా టెక్స్ట్. ఈ ఇతర సైట్లు సెట్ చేసిన కుక్కీలను థర్డ్-పార్టీ కుక్కీలు అంటారు.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2416435988630956212">కీబోర్డ్ ఫంక్షన్ కీలు</translation> <translation id="2418307627282545839">ప్రకాశవంతంగా, చూడచక్కని రంగులతో అందంగా ఉంచుకోండి</translation> @@ -1804,6 +1807,7 @@ <translation id="2579596474754516455">అవసరమైనప్పుడు, స్క్రీన్ రీడర్ కోసం టెక్స్ట్ను మార్చడానికి PDF ఇమేజ్లను స్కాన్ చేయండి</translation> <translation id="2580889980133367162">బహుళ ఫైళ్లను డౌన్లోడ్ చేయడానికి <ph name="HOST" />ను ఎల్లప్పుడూ అనుమతించండి</translation> <translation id="258095186877893873">ఎక్కువ</translation> +<translation id="2581455244799175627">థర్డ్-పార్టీ కుక్కీలను అనుమతించడం గురించి మరింత సమాచారం</translation> <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (ప్లాట్ఫారమ్ <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation> <translation id="2584109212074498965">Kerberos టిక్కెట్ను పొందడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి లేదా మీ సంస్థ పరికర నిర్వాహకులను సంప్రదించండి. (ఎర్రర్ కోడ్ <ph name="ERROR_CODE" />).</translation> <translation id="2585724835339714757">ఈ ట్యాబ్ మీ స్క్రీన్ను షేర్ చేస్తోంది.</translation> @@ -2167,6 +2171,7 @@ <translation id="2902312830803030883">మరిన్ని చర్యలు</translation> <translation id="2903457445916429186">ఎంచుకున్న అంశాలను తెరవండి</translation> <translation id="2903882649406874750">సెన్సార్లను యాక్సెస్ చేయనీయకుండా ఎల్లప్పుడూ <ph name="HOST" />ని బ్లాక్ చేయండి</translation> +<translation id="2904210161403910217">చివరిసారి సైన్ ఇన్ చేసిన తర్వాత మీ పాస్వర్డ్ మార్చబడింది</translation> <translation id="2904845070985032877">యానిమేషన్లను పాజ్ చేయండి</translation> <translation id="2907619724991574506">ప్రారంభ URLలు</translation> <translation id="2907798539022650680">'<ph name="NAME" />'కు కనెక్ట్ చేయడంలో విఫలమైంది: <ph name="DETAILS" /> @@ -2249,6 +2254,7 @@ <translation id="2979639724566107830">కొత్త విండోలో తెరువు</translation> <translation id="2981113813906970160">పెద్ద మౌస్ కర్సర్ను చూపు</translation> <translation id="2981293774053328982">ఈ ఫైల్ మాల్వేర్ను కలిగి ఉంది, దీని వలన మీ వ్యక్తిగత లేదా సోషల్ నెట్వర్క్ ఖాతాలకు ప్రమాదం కలగవచ్చు</translation> +<translation id="2983102365694924129">సైట్లోని మీ యాక్టివిటీ ఆధారంగా. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="2983373101216420412">కేస్ బ్యాటరీ స్థాయి <ph name="PERCENTAGE" />%.</translation> <translation id="2985348301114641460">"<ph name="EXTENSION_NAME" />"ను ఇన్స్టాల్ చేయడానికి మీ అడ్మినిస్ట్రేటర్కు రిక్వెస్ట్ పంపాలా?</translation> <translation id="2987620471460279764">ఇతర పరికరం నుండి షేర్ చేయబడిన వచనం</translation> @@ -2310,6 +2316,7 @@ <translation id="3023464535986383522">వినడానికి ఎంచుకోండి</translation> <translation id="3024374909719388945">24-గంటల గడియారాన్ని ఉపయోగించండి</translation> <translation id="3027296729579831126">సమీప షేరింగ్ను ఆన్ చేయండి</translation> +<translation id="3027644380269727216">సైట్లోని మీ యాక్టివిటీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="3029276696788198026">ప్రీ - లోడింగ్ అందుబాటులో లేదు</translation> <translation id="3029466929721441205">స్టైలస్ టూల్స్ను షెల్ఫ్లో చూపించండి</translation> <translation id="3029808567601324798">లాక్ చేయాల్సిన సమయం</translation> @@ -2365,6 +2372,7 @@ <translation id="3082780749197361769">ఈ ట్యాబ్ మీ కెమెరా లేదా మైక్రోఫోన్ను ఉపయోగిస్తోంది.</translation> <translation id="3083193146044397360">మీ భద్రత నిమిత్తం తాత్కాలికంగా బ్లాక్ చేయబడింది</translation> <translation id="3083899879156272923">మౌస్ను స్క్రీన్ కేంద్రంలో ఉంచి స్క్రీన్ను జరుపుతుంది</translation> +<translation id="3083998949001524405">థర్డ్-పార్టీ కుక్కీలను ఉపయోగించడానికి అనుమతించబడింది</translation> <translation id="3084548735795614657">ఇన్స్టాల్ చేయడానికి వదలండి</translation> <translation id="3084771660770137092">Chrome మెమరీ దాటిపోయి ఉండవచ్చు లేదా వేరొక కారణం చేత ఆ వెబ్పేజీ ప్రాసెస్ ముగించబడి ఉండవచ్చు. కొనసాగించడానికి రీలోడ్ చేయండి లేదా మరొక పేజీకి వెళ్ళండి.</translation> <translation id="3085412380278336437">సైట్ మీ కెమెరాను ఉపయోగించవచ్చు</translation> @@ -2741,6 +2749,7 @@ <translation id="3458794975359644386">షేరింగ్ తీసివేయడం విఫలమైంది</translation> <translation id="3459509316159669723">ప్రింటింగ్</translation> <translation id="3459697287128633276">మీ ఖాతాలో Google Play Store యాక్సెస్ను ఆరంభించాలంటే, దయచేసి మీ గుర్తింపు ప్రదాతతో ప్రామాణీకరించండి.</translation> +<translation id="3460458947710119567">{NUM_BOOKMARKS,plural, =1{1 బుక్మార్క్ తొలగించబడింది}other{# బుక్మార్క్లు తొలగించబడ్డాయి}}</translation> <translation id="3461766685318630278">అదనపు కంటైనర్లను క్రియేట్ చేయండి, తొలగించండి.</translation> <translation id="3462311546193741693">చాలా సైట్ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతాలో అలాగే సైన్ ఇన్ చేసి ఉంటారు, కనుక మీ సింక్ చేసిన డేటాను తీసివేయవచ్చు.</translation> <translation id="3462413494201477527">ఖాతా సెటప్ను రద్దు చేయాలా?</translation> @@ -3069,6 +3078,7 @@ <translation id="3764753550716962406">అందుబాటులో ఉన్న డిస్కౌంట్లను కనుగొనడానికి మీ కార్ట్ని ఉపయోగించడానికి Googleని అనుమతించాలా?</translation> <translation id="3764974059056958214">{COUNT,plural, =1{<ph name="DEVICE_NAME" />కి <ph name="ATTACHMENTS" /> పంపుతోంది}other{<ph name="DEVICE_NAME" />కి <ph name="ATTACHMENTS" /> పంపుతోంది}}</translation> <translation id="3765246971671567135">ఆఫ్లైన్ డెమో మోడ్ విధానాన్ని చదవడం సాధ్యపడలేదు.</translation> +<translation id="3765696567014520261">వివిధ సైట్లలో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి సైట్లు మీ కుక్కీలను ఉపయోగించలేవు, ఉదాహరణకు, యాడ్లను వ్యక్తిగతీకరించడం వంటివి. కొన్ని సైట్లలోని ఫీచర్లు పని చేయకపోవచ్చు</translation> <translation id="3766687283066842296">ఫోన్ హబ్ గురించి మరింత తెలుసుకోండి</translation> <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation> <translation id="377050016711188788">ఐస్క్రీమ్</translation> @@ -3121,6 +3131,7 @@ <translation id="3807747707162121253">&రద్దు</translation> <translation id="3808202562160426447">మసకబారిన బ్యాక్గ్రౌండ్ కంటెంట్</translation> <translation id="3808443763115411087">Crostini Android యాప్ డెవలప్మెంట్</translation> +<translation id="3808617121485025547">థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయడం గురించి మరింత సమాచారం</translation> <translation id="38089336910894858">⌘Qతో నిష్క్రమించడానికి ముందు హెచ్చరికను చూపు</translation> <translation id="3809272675881623365">కుందేలు</translation> <translation id="3809280248639369696">మూన్బీమ్</translation> @@ -3237,6 +3248,7 @@ <translation id="3903187154317825986">బిల్ట్-ఇన్ కీబోర్డ్</translation> <translation id="3904326018476041253">లొకేషన్ సర్వీస్లు</translation> <translation id="3905761538810670789">యాప్ను సరి చేయి</translation> +<translation id="3908288065506437185">అజ్ఞాత మోడ్లో థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> <translation id="3908501907586732282">ఎక్స్టెన్షన్ను ప్రారంభించండి</translation> <translation id="3909701002594999354">అన్ని కంట్రోల్లను చూడండి</translation> <translation id="3909791450649380159">క&త్తిరించు</translation> @@ -3528,6 +3540,7 @@ <translation id="4175737294868205930">నిరంతర నిల్వ</translation> <translation id="4176463684765177261">ఆపివేయబడింది</translation> <translation id="4176864026061939326">ఈ పరికరం మేనేజ్ చేయబడుతోంది. <ph name="USER_EMAIL_ADDRESS" /> ఖాతా కోసం మీ పరికర అడ్మినిస్ట్రేటర్కు ఒక కొత్త ప్రొఫైల్ అవసరం</translation> +<translation id="4177501066905053472">యాడ్ టాపిక్లు</translation> <translation id="4180788401304023883">CA ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />"ను తొలగించాలా?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">భాషలు</translation> @@ -4076,6 +4089,7 @@ <translation id="4683947955326903992"><ph name="PERCENTAGE" />% (డిఫాల్ట్)</translation> <translation id="4684427112815847243">అంతా సింక్ చేయండి</translation> <translation id="4687613760714619596">తెలియని పరికరం (<ph name="DEVICE_ID" />)</translation> +<translation id="4687718960473379118">సైట్ సూచించిన యాడ్లు</translation> <translation id="4688036121858134881">స్థానిక లాగ్ ID: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4688176403504673761"><ph name="MANAGER" />, ఈ పరికరాన్ని మునుపటి వెర్షన్కు మారుస్తున్నారు (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="4689235506267737042">మీ డెమో ప్రాధాన్యతలను ఎంచుకోండి</translation> @@ -4299,7 +4313,6 @@ <translation id="4893336867552636863">దీని వలన మీ బ్రౌజింగ్ డేటా ఈ పరికరం నుండి శాశ్వతంగా తొలగించబడుతుంది.</translation> <translation id="4893454800196085005">బావుంది - DVD</translation> <translation id="4893522937062257019">లాక్ స్క్రీన్పై</translation> -<translation id="4897496410259333978">మరింత సమాచారం కోసం, మీ అడ్మినిస్ట్రేటర్ను సంప్రదించండి.</translation> <translation id="4898011734382862273">ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />" ప్రమాణపత్రాలను మంజూరు చేసే సంస్థను సూచిస్తోంది</translation> <translation id="4899052647152077033">కలర్ మార్పిడి</translation> <translation id="4899696330053002588">యాడ్లను కలిగి ఉంది</translation> @@ -4402,6 +4415,7 @@ <translation id="4998430619171209993">ఆన్లో ఉంది</translation> <translation id="4999804342505941663">'అంతరాయం కలిగించవద్దు'ను ఆన్ చేయండి</translation> <translation id="5000922062037820727">బ్లాక్ చేయబడింది (సిఫార్సు చేయబడింది)</translation> +<translation id="5001526427543320409">థర్డ్-పార్టీ కుక్కీలు</translation> <translation id="5005498671520578047">పాస్వర్డ్ కాపీచేయడం</translation> <translation id="5006118752738286774">2 సంవత్సరాల క్రితం</translation> <translation id="5006218871145547804">Crostini Android యాప్ ADB</translation> @@ -5118,6 +5132,7 @@ <translation id="5683806393796685434">దయచేసి మీ యాక్టివేషన్ కోడ్ను ఎంటర్ చేయండి</translation> <translation id="5684181005476681636">Wi-Fi వివరాలు</translation> <translation id="5684661240348539843">అసెట్ ఐడెంటిఫైయర్</translation> +<translation id="5684950556880280580">మీ పాస్వర్డ్ అప్డేట్ చేయబడింది</translation> <translation id="5684969244627829799">దయచేసి యూజర్ ఖాతాకు సైన్ ఇన్ చేసి, మళ్లీ ట్రై చేయండి</translation> <translation id="5687326903064479980">సమయ మండలి</translation> <translation id="5687935527303996204">మీ పరికరం ప్లగ్-ఇన్ చేసి ఉందని నిర్ధారించుకోండి, అలాగే దాన్ని ఆఫ్ చేయకండి. ఇన్స్టాలేషన్కు 20 నిమిషాల వరకు సమయం పట్టవచ్చు. ఇన్స్టాలేషన్ పూర్తయిన తర్వాత మీ పరికరం ఆటోమేటిక్గా షట్ డౌన్ అవుతుంది.</translation> @@ -5159,6 +5174,7 @@ <translation id="572328651809341494">ఇటీవలి ట్యాబ్లు</translation> <translation id="5723508132121499792">నేపథ్య యాప్లు ఏవీ అమలులోలేవు</translation> <translation id="5723967018671998714">అజ్ఞాత మోడ్లో థర్డ్-పార్టీ కుక్కీలు బ్లాక్ చేయబడతాయి</translation> +<translation id="5724642200346111167">మీరు అన్ని విండోలను మూసివేసినప్పుడు మీ పరికరంలో సైట్ డేటా క్లియర్ చేయబడుతుంది</translation> <translation id="5727728807527375859">ఎక్స్టెన్షన్లు, యాప్లు మరియు థీమ్లు మీ కంప్యూటర్కు హాని కలిగించవచ్చు. మీరు కొనసాగించాలనుకుంటున్నారా?</translation> <translation id="5728450728039149624">స్మార్ట్ లాక్ స్క్రీన్ యొక్క లాక్ ఆప్షన్లు</translation> <translation id="5729712731028706266">&వీక్షణ</translation> @@ -5174,6 +5190,7 @@ <translation id="5739017626473506901"><ph name="USER_NAME" /> పాఠశాల ఖాతాను జోడించడంలో సహాయపడటానికి సైన్ ఇన్ చేయండి</translation> <translation id="5739235828260127894">ధృవీకరణ కోసం వేచి ఉంది. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> <translation id="5739458112391494395">చాలా పెద్దవిగా</translation> +<translation id="5740126560802162366">సైట్లు మీ పరికరంలో డేటాను సేవ్ చేయగలవు</translation> <translation id="5740328398383587084">సమీప షేరింగ్</translation> <translation id="5740709157181662145"><ph name="DEVICE_OS" /> హార్డ్వేర్ సపోర్ట్, స్థిరత్వం</translation> <translation id="574104302965107104">డిస్ప్లే మిర్రరింగ్</translation> @@ -5674,6 +5691,7 @@ <translation id="6200151268994853226">ఎక్స్టెన్షన్ను మేనేజ్ చేయండి</translation> <translation id="6201608810045805374">ఈ ఖాతాను తీసివేయాలా?</translation> <translation id="6202304368170870640">మీరు మీ పిన్ని ఉపయోగించి మీ పరికరంలో సైన్ ఇన్ చేయవచ్చు లేదా అన్లాక్ చేయవచ్చు.</translation> +<translation id="6205314730813004066">యాడ్ల గోప్యత</translation> <translation id="6206199626856438589">తెరిచిన ట్యాబ్లతో సహా ప్రదర్శించబడిన సైట్ల నుండి మీరు సైన్ అవుట్ చేయబడతారు</translation> <translation id="6206311232642889873">చిత్రాన్ని కా&పీ చేయండి</translation> <translation id="6206521455877863927">ఒకే డొమైన్కు సంబంధించిన సైట్లతో సహా, ఉదాహరణకు, google.com, mail.google.com. మీరు చూసే సైట్లు మీ పరికరంలో డేటాను సేవ్ చేయవచ్చు.</translation> @@ -5833,7 +5851,6 @@ <translation id="6347010704471250799">నోటిఫికేషన్ను చూడండి</translation> <translation id="6349101878882523185"><ph name="APP_NAME" />ను ఇన్స్టాల్ చేయండి</translation> <translation id="6354918092619878358">SECG దీర్ఘవృత్తాకార వక్రం secp256r1 (ANSI X9.62 prime256v1, NIST P-256గా కూడా పిలువబడతాయి)</translation> -<translation id="6355789186038748882">ప్రయోగాత్మకమైన (ఆల్ఫా-క్వాలిటీ) బ్రౌజర్! కొన్ని ఫీచర్లు అందుబాటులో లేవు లేదా పూర్తిగా లేవు. ఈ విధంగా సమస్యలను రిపోర్ట్ చేయండి: సహాయం > "సమస్యను రిపోర్ట్ చేయండి"ని ఎంచుకోండి...</translation> <translation id="635609604405270300">పరికరాన్ని ఆన్ చేసి ఉంచండి</translation> <translation id="63566973648609420">మీ రహస్య పదబంధాన్ని కలిగి ఉన్న వారు మాత్రమే మీ ఎన్క్రిప్ట్ చేసిన డేటాను చదవగలరు. రహస్య పదబంధం ఎవరికీ పంపబడదు లేదా Googleలో నిల్వ చేయబడదు. మీరు మీ రహస్య పదబంధాన్ని మర్చిపోతే లేదా ఈ సెట్టింగ్ను మార్చాలనుకుంటే, సింక్ను రీసెట్ చేయాల్సి ఉంటుంది. <ph name="BEGIN_LINK" />సింక్ను రీసెట్ చేయండి<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">కొన్ని సపోర్ట్ లింక్లు ఇప్పటికీ <ph name="APP_NAME" /> లేదా <ph name="APP_NAME_2" />లో తెరవబడతాయి.</translation> @@ -6291,6 +6308,7 @@ <translation id="6787839852456839824">కీబోర్డ్ షార్ట్కట్లు</translation> <translation id="6788210894632713004">ప్యాక్ చేయని ఎక్స్టెన్షన్</translation> <translation id="6789592661892473991">అడ్డంగా విభజించు</translation> +<translation id="6789834167207639931">తర్వాతి స్క్రీన్లో మీ Google ఖాతా పాస్వర్డ్ను మళ్లీ ఎంటర్ చేసి, రికవరీని పూర్తి చేయండి</translation> <translation id="6790428901817661496">ప్లే చేయి</translation> <translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> రిమోట్ విధానంలో జోడించబడింది</translation> <translation id="6790820461102226165">వ్యక్తిని జోడించండి...</translation> @@ -6936,6 +6954,7 @@ <translation id="7387273928653486359">ఆమోదించదగినది</translation> <translation id="7387951778417998929">ఆటోమేటిక్ సెర్చ్ ఇంజిన్ కాకుండా వేరొక సెర్చ్ ఇంజిన్ను ఉపయోగించాలంటే, అడ్రస్ బార్లో దాని షార్ట్కట్ను టైప్ చేసి, ఆ తర్వాత మీ ప్రాధాన్య కీబోర్డ్ షార్ట్కట్ను టైప్ చేయండి. మీరు ఇక్కడ మీ ఆటోమేటిక్ సెర్చ్ ఇంజిన్ను కూడా మార్చవచ్చు.</translation> <translation id="7388209873137778229">కేవలం సపోర్ట్ ఉన్న పరికరాలను మాత్రమే చూపుతుంది.</translation> +<translation id="7388615499319468910">యాడ్ల పనితీరు ఎలా ఉంది అనేది సైట్లు, అడ్వర్టయిజర్లు అర్థం చేసుకోగలరు. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="7392118418926456391">వైరస్ను స్కాన్ చేయడంలో విఫలమైంది</translation> <translation id="7392915005464253525">మూసివేయబడిన విండోను మ&ళ్లీ తెరువు</translation> <translation id="7393073300870882456">{COUNT,plural, =1{1 ఐటెమ్ కాపీ చేయబడింది}other{{COUNT} ఐటెమ్లు కాపీ చేయబడ్డాయి}}</translation> @@ -6992,7 +7011,6 @@ <translation id="7434757724413878233">మౌస్ యాక్సిలరేషన్</translation> <translation id="7434969625063495310">ప్రింట్ సర్వర్ని జోడించడం సాధ్యపడలేదు. దయచేసి సర్వర్ కాన్ఫిగరేషన్ చెక్ చేసుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="7436921188514130341">అయ్యో! పేరు మారుస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది.</translation> -<translation id="7438495332316988804">లాంచర్లో "Chrome" అని టైప్ చేయడం ద్వారా స్టాండర్డ్ బ్రౌజర్ను కనుగొనవచ్చు.</translation> <translation id="7439519621174723623">కొనసాగించడానికి, పరికరం పేరును జోడించండి</translation> <translation id="7441736921018636843">ఈ సెట్టింగ్ని మార్చడానికి, మీ సింక్ రహస్య పదబంధాన్ని తీసివేయడానికి <ph name="BEGIN_LINK" />సింక్ను రీసెట్ చేయండి<ph name="END_LINK" /></translation> <translation id="7441830548568730290">ఇతర వినియోగదారులు</translation> @@ -7011,6 +7029,7 @@ <translation id="7453467225369441013">దాదాపు అన్ని సైట్ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు.</translation> <translation id="7454548535253569100">పోర్టల్: <ph name="SUBFRAME_SITE" /></translation> <translation id="7455730275746867420">అదనపు కంటైనర్లను మేనేజ్ చేయండి</translation> +<translation id="7455988709578031708">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="7456142309650173560">డెవలపర్</translation> <translation id="7456774706094330779">పొడిగించిన ప్రీ - లోడింగ్</translation> <translation id="7456847797759667638">స్థానాన్ని తెరువు...</translation> @@ -7569,6 +7588,7 @@ <translation id="7952904276017482715">ఆశించిన ID "<ph name="EXPECTED_ID" />", కానీ ఉన్న ID "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">ఇన్పుట్లు</translation> <translation id="7953955868932471628">షార్ట్కట్లను నిర్వహించండి</translation> +<translation id="7955105108888461311">స్వయంగా అడగండి</translation> <translation id="7955177647836564772">Smart Lock ఆన్ చేసి, మీ ఫోన్ అన్లాక్ చేసి ఉన్నప్పుడు, మీరు పాస్వర్డ్ను లేదా ఫోన్ను ఎంటర్ చేయాల్సిన అవసరం లేదు</translation> <translation id="7956373551960864128">మీరు సేవ్ చేసిన ప్రింటర్లు</translation> <translation id="7957074856830851026">పరికరం క్రమ సంఖ్య లేదా అస్సెట్ ID వంటి పరికర సమాచారాన్ని చూడండి</translation> @@ -8066,6 +8086,7 @@ <translation id="8405046151008197676">తాజా అప్డేట్ నుండి హైలైట్లను పొందండి</translation> <translation id="8407199357649073301">లాగ్ స్థాయి:</translation> <translation id="8408270600235826886">Googleతో ఏ డేటా షేర్ చేయబడుతుందో మీరు కంట్రోల్ చేయవచ్చు. మీరు దీనిని సెట్టింగ్లలో ఎప్పుడైనా మార్చవచ్చు. <ph name="BEGIN_LINK" />Google గోప్యతా పాలసీకి<ph name="END_LINK" /> అనుగుణంగా డేటా ఉపయోగించబడుతుంది.</translation> +<translation id="84098433273647700">మీరు ఇన్స్టాల్ చేసిన ప్రస్తుత థీమ్.</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8412136526970428322"><ph name="PERMISSION" />, మరో <ph name="COUNT" /> అనుమతించబడ్డాయి</translation> <translation id="8413385045638830869">ముందుగా అడుగు (సిఫార్సు చేయబడింది)</translation> @@ -8227,6 +8248,7 @@ <translation id="8571687764447439720">Kerberos టిక్కెట్ను జోడించండి</translation> <translation id="8574990355410201600"><ph name="HOST" />లో ఎల్లప్పుడూ ధ్వనిని అనుమతించండి</translation> <translation id="8575286410928791436">నిష్క్రమించడానికి <ph name="KEY_EQUIVALENT" />ని పట్టుకొని ఉంచండి</translation> +<translation id="8576359558126669548">అజ్ఞాత మోడ్లో థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయడం గురించి మరింత సమాచారం</translation> <translation id="8576885347118332789">{NUM_TABS,plural, =1{చదవాల్సిన లిస్ట్కు ట్యాబ్ను జోడించండి}other{చదవాల్సిన లిస్ట్కు ట్యాబ్లను జోడించండి}}</translation> <translation id="8577052309681449949">ఆటోమేటిక్ క్లిక్లు, కర్సర్ సైజ్, కర్సర్ కలర్, మరెన్నో</translation> <translation id="8578639784464423491">99 అక్షరాలను మించకూడదు</translation> @@ -8817,11 +8839,14 @@ <translation id="9094859731829297286">మీరు ఖచ్చితంగా Linux కోసం ఒక స్థిర సైజ్ గల డిస్క్ను రిజర్వ్ చేయాలనుకుంటున్నారా?</translation> <translation id="9094982973264386462">తీసివేయండి</translation> <translation id="9095253524804455615">తీసివేయండి</translation> +<translation id="9095364055741191097">లోకల్ డైటాను రికవర్ చేయడంలో విఫలమైంది</translation> <translation id="909554839118732438">అజ్ఞాత విండోలన్నింటినీ మూసివేయండి</translation> +<translation id="9099220545925418560">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="9100416672768993722">చివరిగా ఉపయోగించిన ఇన్పుట్ విధానానికి స్విచ్ చేయడానికి, <ph name="BEGIN_SHORTCUT" /><ph name="BEGIN_CTRL" />Ctrl<ph name="END_CTRL" /><ph name="SEPARATOR" /><ph name="BEGIN_SPACE" />Space<ph name="END_SPACE" /><ph name="END_SHORTCUT" /> కీలను నొక్కండి</translation> <translation id="9100765901046053179">అధునాతన సెట్టింగ్లు</translation> <translation id="9101691533782776290">యాప్ను ప్రారంభించండి</translation> <translation id="9102610709270966160">ఎక్స్టెన్షన్ను ప్రారంభించండి</translation> +<translation id="9102864637938129124">యాడ్ల పనితీరు ఎలా ఉంది అనేది సైట్లు, అడ్వర్టయిజర్లు అర్థం చేసుకోగలరు. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="9103479157856427471">దగ్గరగా జూమ్ చేసిన స్క్రీన్ కీబోర్డ్ ఫోకస్ను ఫాలో చేస్తుంది</translation> <translation id="9103868373786083162">హిస్టరీని చూసేందుకు వెనుకకు వెళ్లు, సందర్భ మెనూ నొక్కండి</translation> <translation id="9108035152087032312">పేరు &విండో...</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index b28882b7..dffa819 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -60,6 +60,7 @@ <translation id="1054153489933238809">เ&ปิดภาพต้นฉบับในแท็บใหม่</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{อัปเดต <ph name="DEVICE_TYPE" /> ภายใน 1 สัปดาห์}other{อัปเดต <ph name="DEVICE_TYPE" /> ภายใน {NUM_WEEKS} สัปดาห์}}</translation> <translation id="1056898198331236512">คำเตือน</translation> +<translation id="1056980582064308040">การเปลี่ยนการตั้งค่าจะรีสตาร์ทฮอตสปอต อุปกรณ์ที่ใช้ฮอตสปอตจะขาดจากการเชื่อมต่อ</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{ป้อน PIN ใหม่ PIN ต้องยาวอย่างน้อย 1 อักขระ โดยอนุญาตให้ใช้ตัวอักษร ตัวเลข และอักขระอื่นๆ ได้}other{ป้อน PIN ใหม่ PIN ต้องยาวอย่างน้อย # อักขระ โดยอนุญาตให้ใช้ตัวอักษร ตัวเลข และอักขระอื่นๆ ได้}}</translation> <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">หยุด</translation> <translation id="1272508081857842302">การเปิด<ph name="BEGIN_LINK" />ลิงก์ที่รองรับ<ph name="END_LINK" /></translation> <translation id="1272978324304772054">บัญชีผู้ใช้นี้ไม่ได้อยู่ในโดเมนที่ลงทะเบียนอุปกรณ์ ถ้าคุณต้องการลงทะเบียนไปยังโดเมนอื่น คุณจะต้องกู้คืนอุปกรณ์ก่อน</translation> +<translation id="1273937721055267968">บล็อก <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">คุกกี้และข้อมูลอื่นของไซต์</translation> <translation id="1275718070701477396">เลือกแล้ว</translation> <translation id="1276994519141842946">ถอนการติดตั้ง <ph name="APP_NAME" /> ไม่ได้</translation> @@ -357,6 +359,7 @@ <translation id="1327495825214193325">หากต้องการเปิดใช้การแก้ไขข้อบกพร่อง ADB คุณต้องรีสตาร์ท <ph name="DEVICE_TYPE" /> เครื่องนี้ และต้องรีเซ็ตเป็นค่าเริ่มต้นจึงจะปิดใช้ได้</translation> <translation id="1327527584824210101">ใช้พาสคีย์ของคุณ</translation> <translation id="1327794256477341646">ฟีเจอร์ที่ต้องใช้ตำแหน่งของคุณจะไม่ทำงาน</translation> +<translation id="1329466763986822896">เพิ่มความเป็นส่วนตัวให้กับฮอตสปอตนี้</translation> <translation id="1331977651797684645">นี่คือฉันเอง</translation> <translation id="1333489022424033687">ฟีเจอร์บางอย่างใน <ph name="ORIGIN" /> อาจไม่ทำงานจนกว่าคุณจะล้างข้อมูลที่เว็บไซต์อื่นๆ จัดเก็บไว้ในอุปกรณ์ของคุณ</translation> <translation id="1333965224356556482">ไม่อนุญาตให้เว็บไซต์ดูตำแหน่งของคุณ</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{หน้าต่างที่ไม่ระบุตัวตนจะไม่เปิดขึ้นอีก}other{หน้าต่างที่ไม่ระบุตัวตนจำนวน # หน้าต่างจะไม่เปิดขึ้นอีก}}</translation> <translation id="1546280085599573572">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณคลิกปุ่มหน้าแรก</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ต้องการติดตั้ง <ph name="EXTENSION_TYPE" /> ที่ดำเนินการต่อไปนี้ได้</translation> +<translation id="1547123415014299762">อนุญาตคุกกี้ของบุคคลที่สาม</translation> <translation id="1547808936554660006">ฉันทราบดีว่าโปรไฟล์ eSIM ที่ติดตั้งไว้จะไม่ถูกนำออกโดยการทำ Powerwash</translation> <translation id="1547936895218027488">คลิกไอคอนแผงด้านข้างเพื่อเปิด</translation> <translation id="1549275686094429035">ARC เปิดใช้งานอยู่</translation> @@ -770,6 +774,7 @@ <translation id="168715261339224929">เปิดการซิงค์เพื่อรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่องของคุณ</translation> <translation id="1688867105868176567">ล้างข้อมูลเว็บไซต์ไหม</translation> <translation id="1688935057616748272">พิมพ์ตัวอักษร</translation> +<translation id="1689333818294560261">ชื่อเล่น</translation> <translation id="168991973552362966">เพิ่มเครื่องพิมพ์ใกล้เคียง</translation> <translation id="1689945336726856614">คัดลอก &URL</translation> <translation id="1692115862433274081">ใช้บัญชีอื่น</translation> @@ -1401,6 +1406,7 @@ <translation id="2247870315273396641">ฟังตัวอย่างเสียง</translation> <translation id="2249111429176737533">เปิดเป็นหน้าต่างแท็บ</translation> <translation id="2249605167705922988">เช่น 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">ปรับแต่งข้อมูลที่เว็บไซต์ใช้เพื่อแสดงโฆษณาแก่คุณ</translation> <translation id="2251218783371366160">เปิดด้วยเครื่องมือดูระบบ</translation> <translation id="225163402930830576">รีเฟรชเครือข่าย</translation> <translation id="2251809247798634662">หน้าต่างใหม่ที่ไม่ระบุตัวตน</translation> @@ -1515,7 +1521,6 @@ <translation id="2329597144923131178">ลงชื่อเข้าใช้เพื่อรับบุ๊กมาร์ก ประวัติ รหัสผ่าน และการตั้งค่าอื่นๆ ในอุปกรณ์ทั้งหมด</translation> <translation id="2332115969598251205">โหลดอุปกรณ์ที่บันทึกไว้ใน <ph name="PRIMARY_EMAIL" /> ไม่ได้ ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตแล้วลองอีกครั้ง</translation> <translation id="2332131598580221120">ดูในสโตร์</translation> -<translation id="2332192922827071008">เปิดค่ากำหนด</translation> <translation id="2332515770639153015">Google Safe Browsing เวอร์ชันปรับปรุงเปิดอยู่</translation> <translation id="2332742915001411729">รีเซ็ตเป็นค่าเริ่มต้น</translation> <translation id="2332948465534020594">เปิดใช้โหมดห้ามรบกวนแล้ว</translation> @@ -1790,6 +1795,7 @@ <translation id="2579596474754516455">สแกนรูปภาพที่เป็นไฟล์ PDF เพื่อแปลงข้อความสำหรับโปรแกรมอ่านหน้าจอเมื่อจำเป็น</translation> <translation id="2580889980133367162">อนุญาตให้ <ph name="HOST" /> ดาวน์โหลดไฟล์หลายไฟล์เสมอ</translation> <translation id="258095186877893873">ยาว</translation> +<translation id="2581455244799175627">ข้อมูลเพิ่มเติมเกี่ยวกับการอนุญาตคุกกี้ของบุคคลที่สาม</translation> <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (แพลตฟอร์ม <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation> <translation id="2584109212074498965">ดึงข้อมูลตั๋ว Kerberos ไม่สำเร็จ ลองอีกครั้ง หรือติดต่อผู้ดูแลระบบอุปกรณ์ขององค์กร (รหัสข้อผิดพลาด <ph name="ERROR_CODE" />)</translation> <translation id="2585724835339714757">แท็บนี้กำลังแชร์หน้าจอของคุณ</translation> @@ -1849,6 +1855,7 @@ <translation id="2640299212685523844">ใช้ GTK</translation> <translation id="264083724974021997">เชื่อมต่อโทรศัพท์ของคุณ - กล่องโต้ตอบ</translation> <translation id="2642111877055905627">ลูกฟุตบอล</translation> +<translation id="2643064289437760082">คุณลบข้อมูลการวัดผลโฆษณาได้ทุกเมื่อโดยการลบข้อมูลการท่องเว็บ</translation> <translation id="2643698698624765890">จัดการส่วนขยายของคุณโดยคลิกที่ "ส่วนขยาย" ในเมนู "หน้าต่าง"</translation> <translation id="2645047101481282803">อุปกรณ์ของคุณจัดการโดย <ph name="PROFILE_NAME" /></translation> <translation id="2645435784669275700">Chrome OS</translation> @@ -2308,6 +2315,7 @@ <translation id="3036327949511794916">เลยกำหนดเวลาส่งคืน <ph name="DEVICE_TYPE" /> เครื่องนี้แล้ว</translation> <translation id="3036546437875325427">เปิดใช้ Flash</translation> <translation id="3037754279345160234">แยกวิเคราะห์การกำหนดค่าเพื่อเข้าร่วมโดเมนไม่ได้ โปรดติดต่อผู้ดูแลระบบ</translation> +<translation id="3038272154009688107">ดูเว็บไซต์ทั้งหมด</translation> <translation id="3038612606416062604">เพิ่มเครื่องพิมพ์ด้วยตนเอง</translation> <translation id="3039491566278747710">ติดตั้งนโยบายออฟไลน์ในอุปกรณ์นี้ไม่สำเร็จ</translation> <translation id="3043016484125065343">ลงชื่อเข้าใช้เพื่อดูบุ๊กมาร์ก</translation> @@ -2351,6 +2359,7 @@ <translation id="3082780749197361769">แท็บนี้กำลังใช้กล้องถ่ายรูปหรือไมโครโฟนของคุณ</translation> <translation id="3083193146044397360">ถูกบล็อกชั่วคราวเพื่อรักษาความปลอดภัยให้คุณ</translation> <translation id="3083899879156272923">เลื่อนหน้าจอโดยให้เมาส์อยู่ตรงกลางหน้าจอเสมอ</translation> +<translation id="3083998949001524405">ได้รับอนุญาตให้ใช้คุกกี้ของบุคคลที่สาม</translation> <translation id="3084548735795614657">วางเพื่อติดตั้ง</translation> <translation id="3084771660770137092">ไม่ว่า Chrome จะมีหน่วยความจำไม่เพียงพอหรือกระบวนการของหน้าเว็บถูกยกเลิกด้วยเหตุใดก็ตาม หากต้องการดำเนินการต่อ ให้โหลดซ้ำหรือไปที่หน้าเว็บอื่น</translation> <translation id="3085412380278336437">เว็บไซต์ใช้กล้องของคุณได้</translation> @@ -2544,6 +2553,7 @@ <translation id="3289668031376215426">ปรับเป็นตัวพิมพ์ใหญ่อัตโนมัติ</translation> <translation id="3289856944988573801">ในการตรวจหาการอัปเดต โปรดใช้อีเทอร์เน็ตหรือ WiFi</translation> <translation id="3290249595466894471">รวมถึงส่งตัวอย่างส่วนเล็กๆ ของหน้าเว็บ การดาวน์โหลด กิจกรรมของส่วนขยาย และข้อมูลระบบเพื่อช่วยค้นหาภัยคุกคามใหม่ๆ</translation> +<translation id="3293181007446299124">ระบบจะจัดเก็บประวัติการท่องเว็บไว้เป็นส่วนตัวในอุปกรณ์ และจะส่งรายงานล่าช้าเพื่อปกป้องตัวตนของคุณ</translation> <translation id="3293644607209440645">ส่งหน้านี้</translation> <translation id="32939749466444286">คอนเทนเนอร์ Linux ไม่เริ่มทำงาน โปรดลองอีกครั้ง</translation> <translation id="3294437725009624529">ผู้มาเยือน</translation> @@ -3055,6 +3065,7 @@ <translation id="3764753550716962406">ให้ Google ใช้สินค้าในรถเข็นเพื่อหาส่วนลดที่ใช้ได้</translation> <translation id="3764974059056958214">{COUNT,plural, =1{กำลังส่ง <ph name="ATTACHMENTS" />ไปยัง <ph name="DEVICE_NAME" />}other{กำลังส่ง <ph name="ATTACHMENTS" />ไปยัง <ph name="DEVICE_NAME" />}}</translation> <translation id="3765246971671567135">อ่านนโยบายโหมดสาธิตออฟไลน์ไม่ได้</translation> +<translation id="3765696567014520261">เว็บไซต์จะไม่สามารถใช้คุกกี้เพื่อดูกิจกรรมการท่องเว็บของคุณในเว็บไซต์ต่างๆ สำหรับวัตถุประสงค์อย่างเช่นการปรับโฆษณาตามโปรไฟล์ของผู้ใช้ ฟีเจอร์ในบางเว็บไซต์อาจใช้งานไม่ได้</translation> <translation id="3766687283066842296">ดูข้อมูลเพิ่มเติมเกี่ยวกับฮับโทรศัพท์</translation> <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation> <translation id="377050016711188788">ไอศกรีม</translation> @@ -3107,6 +3118,7 @@ <translation id="3807747707162121253">&ยกเลิก</translation> <translation id="3808202562160426447">หรี่แสงเนื้อหาในพื้นหลัง</translation> <translation id="3808443763115411087">การพัฒนาแอป Android ใน Crostini</translation> +<translation id="3808617121485025547">ข้อมูลเพิ่มเติมเกี่ยวกับการบล็อกคุกกี้ของบุคคลที่สาม</translation> <translation id="38089336910894858">แสดงคำเตือนก่อนออกโดยกด ⌘Q</translation> <translation id="3809272675881623365">กระต่าย</translation> <translation id="3809280248639369696">มูนบีม</translation> @@ -3324,6 +3336,7 @@ <translation id="3984431586879874039">อนุญาตให้เว็บไซต์นี้ดูคีย์ความปลอดภัยของคุณไหม</translation> <translation id="398477389655464998">คัดลอกลิงก์ไปยังไฮไลต์</translation> <translation id="3984862166739904574">คำจำกัดความของคำตอบด่วน</translation> +<translation id="3985022125189960801">เพิ่มเว็บไซต์กลับหากต้องการรวมไว้ในกลุ่มเว็บไซต์ที่คาดเดาสิ่งที่คุณชอบได้</translation> <translation id="3987544746655539083">บล็อกเว็บไซต์นี้ไม่ให้เข้าถึงตำแหน่งของคุณต่อไป</translation> <translation id="3987938432087324095">ขออภัย ฉันไม่ค่อยเข้าใจ</translation> <translation id="3987993985790029246">คัดลอกลิงก์</translation> @@ -3702,6 +3715,7 @@ <translation id="4366138410738374926">เริ่มการพิมพ์แล้ว</translation> <translation id="4367513928820380646">ตรวจสอบสิทธิ์ที่นำออกแล้ว</translation> <translation id="4369215744064167350">คำขอเว็บไซต์ได้รับการอนุมัติแล้ว</translation> +<translation id="4369735607080757018">ระบบจะแชร์ข้อมูลแบบจำกัดระหว่างเว็บไซต์เพื่อวัดประสิทธิภาพของโฆษณา เช่น ช่วงเวลาของวันที่มีการแสดงโฆษณาแก่คุณ</translation> <translation id="4370975561335139969">อีเมลและรหัสผ่านที่คุณป้อนไม่ตรงกัน</translation> <translation id="4374831787438678295">โปรแกรมติดตั้ง Linux</translation> <translation id="4375035964737468845">เปิดไฟล์ที่ดาวน์โหลดมา</translation> @@ -3722,6 +3736,7 @@ <translation id="4385146930797718821">คัดลอกภาพหน้าจอไปยังคลิปบอร์ดแล้ว</translation> <translation id="4385905942116811558">กำลังค้นหาอุปกรณ์บลูทูธและอุปกรณ์ USB</translation> <translation id="4387890294700445764">รหัสผ่านที่ไม่รัดกุม</translation> +<translation id="4388650384344483842">ใช้อักขระอย่างน้อย 8 ตัว</translation> <translation id="4389091756366370506">ผู้ใช้ <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> และสวิตช์อื่นๆ อีก <ph name="NUMBER_OF_OTHER_SWITCHES" /> รายการ</translation> <translation id="439266289085815679">การกำหนดค่าบลูทูธควบคุมโดย <ph name="USER_EMAIL" /></translation> @@ -4043,6 +4058,7 @@ <translation id="4666472247053585787">ดูการแจ้งเตือนจากโทรศัพท์ใน <ph name="DEVICE_TYPE" /></translation> <translation id="4666911709726371538">แสดงแอปเพิ่มเติม</translation> <translation id="4667027203988048332">ข้อมูลที่ใช้</translation> +<translation id="4668279686271488041">ข้อมูลการวัดผลโฆษณาจะได้รับการลบออกจากอุปกรณ์เป็นระยะ</translation> <translation id="4672759829555593783">เปิด <ph name="FILE_NAME" /> เลย</translation> <translation id="46733273239502219">ระบบจะล้างข้อมูลออฟไลน์ในแอปที่ติดตั้งไว้ด้วย</translation> <translation id="4673442866648850031">เปิดเครื่องมือสไตลัสเมื่อมีการถอดสไตลัสออก</translation> @@ -4236,6 +4252,7 @@ <translation id="485480310608090163">การตั้งค่าและสิทธิ์อื่นๆ</translation> <translation id="4858913220355269194">ฟริทซ์</translation> <translation id="4862642413395066333">การเซ็นชื่อในการตอบสนอง OCSP</translation> +<translation id="4863702650881330715">เพิ่มความเข้ากันได้</translation> <translation id="4863769717153320198">ดูเหมือน <ph name="WIDTH" /> x <ph name="HEIGHT" /> (ค่าเริ่มต้น)</translation> <translation id="4864805589453749318">เลือกผู้ปกครองที่จะให้สิทธิ์ในการเพิ่มบัญชีโรงเรียน</translation> <translation id="486635084936119914">เปิดไฟล์บางประเภทโดยอัตโนมัติหลังจากที่ดาวน์โหลดมา</translation> @@ -4284,7 +4301,6 @@ <translation id="4893336867552636863">การดำเนินการนี้จะลบข้อมูลการท่องเว็บของคุณจากอุปกรณ์นี้อย่างถาวร</translation> <translation id="4893454800196085005">ดี - DVD</translation> <translation id="4893522937062257019">ในหน้าจอล็อก</translation> -<translation id="4897496410259333978">โปรดติดต่อผู้ดูแลระบบเพื่อสอบถามข้อมูลเพิ่มเติม</translation> <translation id="4898011734382862273">ใบรับรอง "<ph name="CERTIFICATE_NAME" />" แสดงถึงผู้ออกใบรับรอง</translation> <translation id="4899052647152077033">สลับสี</translation> <translation id="4899696330053002588">มีโฆษณา</translation> @@ -4482,6 +4498,7 @@ <translation id="5094721898978802975">สื่อสารกับแอปพลิเคชันการประสานงานที่มาพร้อมเครื่อง</translation> <translation id="5097002363526479830">ไม่สามารถเชื่อมต่อเครือข่าย "<ph name="NAME" />": <ph name="DETAILS" /></translation> <translation id="5097306410549350357">ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตำแหน่ง</translation> +<translation id="5097349930204431044">เว็บไซต์ที่คุณเข้าชมจะสามารถระบุสิ่งที่คุณชอบ จากนั้นจะแนะนำโฆษณาในขณะที่คุณท่องเว็บต่อไป</translation> <translation id="5097649414558628673">เครื่องมือ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation> <translation id="5101683448725092498">สำรองข้อมูล</translation> @@ -4567,7 +4584,7 @@ <translation id="5177549709747445269">คุณกำลังใช้ข้อมูลมือถือ</translation> <translation id="5178667623289523808">ค้นหาก่อนหน้านี้</translation> <translation id="5181140330217080051">กำลังดาวน์โหลด</translation> -<translation id="5181172023548002891">ที่เครื่องมือจัดการรหัสผ่านของ Google สำหรับ <ph name="ACCOUNT" /></translation> +<translation id="5181172023548002891">ที่ Google เครื่องมือจัดการรหัสผ่านสำหรับ <ph name="ACCOUNT" /></translation> <translation id="5184063094292164363">&คอนโซล JavaScript</translation> <translation id="5184209580557088469">มีตั๋วที่ใช้ชื่อผู้ใช้นี้แล้ว</translation> <translation id="5184662919967270437">กำลังอัปเดตอุปกรณ์</translation> @@ -4664,6 +4681,7 @@ <translation id="5275352920323889391">สุนัข</translation> <translation id="527605719918376753">ปิดเสียงแท็บ</translation> <translation id="527605982717517565">อนุญาตให้เรียกใช้ JavaScript บน <ph name="HOST" /> เสมอ</translation> +<translation id="5276357196618041410">ไม่สามารถบันทึกการกำหนดค่าโดยที่ไม่เข้าสู่ระบบ</translation> <translation id="5277127016695466621">แสดงแผงด้านข้าง</translation> <translation id="5278823018825269962">รหัสสถานะ</translation> <translation id="5279600392753459966">บล็อกทั้งหมด</translation> @@ -5815,7 +5833,6 @@ <translation id="6347010704471250799">แสดงการแจ้งเตือน</translation> <translation id="6349101878882523185">ติดตั้ง <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (เรียกอีกอย่างว่า ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">เบราว์เซอร์ทดลอง (คุณภาพระดับอัลฟ่า) บางฟีเจอร์อาจไม่มีหรือใช้งานได้ไม่สมบูรณ์ โปรดรายงานปัญหาโดยไปที่ความช่วยเหลือ > "รายงานปัญหา..."</translation> <translation id="635609604405270300">โปรดเปิดอุปกรณ์ไว้</translation> <translation id="63566973648609420">เฉพาะผู้ที่มีรหัสผ่านของคุณเท่านั้นจึงจะสามารถอ่านข้อมูลที่เข้ารหัสของคุณได้ Google จะไม่ส่งหรือจัดเก็บรหัสผ่านนี้ หากคุณลืมรหัสผ่านหรือต้องการเปลี่ยนการตั้งค่านี้ คุณจะต้อง<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" /></translation> <translation id="6357305427698525450">ลิงก์ที่รองรับบางลิงก์จะยังคงเปิดใน <ph name="APP_NAME" /> หรือ <ph name="APP_NAME_2" /></translation> @@ -6155,6 +6172,7 @@ <translation id="6670767097276846646">ส่วนขยายบางอย่างจะเพิ่มเครื่องมือค้นหาลงใน Chrome ได้</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 ที่อยู่}other{# ที่อยู่}}</translation> <translation id="6671497123040790595">กำลังตั้งค่าการจัดการโดย <ph name="MANAGER" /></translation> +<translation id="6672917148207387131">เพิ่ม <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">หากต้องการเริ่มต้นการซิงค์ ให้ป้อนรหัสผ่านของคุณ</translation> <translation id="6675665718701918026">เชื่อมต่ออุปกรณ์ชี้ตำแหน่งแล้ว</translation> @@ -6238,6 +6256,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (โหมดไม่ระบุตัวตน)</translation> <translation id="6756157672127672536">แอป Files ให้การเข้าถึงไฟล์ที่คุณบันทึกไว้ใน Google ไดรฟ์ ที่จัดเก็บข้อมูลภายนอก หรืออุปกรณ์ Chrome OS ของคุณอย่างรวดเร็ว</translation> <translation id="6756643207511618722">เครื่องมืออ่านออกเสียง</translation> +<translation id="6757431299485455321">ช่วยให้อุปกรณ์อื่นค้นพบฮอตสปอตนี้</translation> <translation id="6758056191028427665">แจ้งให้เราทราบถึงความพึงพอใจ</translation> <translation id="6759193508432371551">รีเซ็ตเป็นค่าเริ่มต้น</translation> <translation id="6761431452438552910">โปรดตรวจสอบว่าอุปกรณ์บลูทูธอยู่ในโหมดการจับคู่และอยู่ใกล้ จับคู่กับอุปกรณ์ที่คุณเชื่อถือเท่านั้น</translation> @@ -6337,6 +6356,7 @@ <translation id="6833479554815567477">แท็บถูกนำออกจากกลุ่ม <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">เปลี่ยนเป็นเบราว์เซอร์ที่มีประสิทธิภาพและปลอดภัย</translation> <translation id="6833996806551876956">ช่วงทดลองใช้ Privacy Sandbox</translation> +<translation id="6835712061486505758">สร้างฮอตสปอต Wi-Fi เพื่อแชร์อินเทอร์เน็ตให้อุปกรณ์อื่น <ph name="BEGIN_LINK_LEARN_MORE" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">โปรดเชื่อมต่ออินเทอร์เน็ตเพื่ออัปเดต <ph name="DEVICE_TYPE" /></translation> <translation id="6839225236531462745">ข้อผิดพลาดในการนำออกใบรับรอง</translation> <translation id="6839916869147598086">มีการเปลี่ยนแปลงการลงชื่อเข้าใช้</translation> @@ -6498,6 +6518,7 @@ <translation id="697508444536771064">ปิด Linux</translation> <translation id="6975361011348772931">ได้ขออ่านและเปลี่ยนแปลง</translation> <translation id="6978121630131642226">เครื่องมือค้นหา</translation> +<translation id="6978717888677691380">เว็บไซต์ที่คุณบล็อก</translation> <translation id="6979041727349121225">โหมดประหยัดพลังงาน</translation> <translation id="6979044105893951891">เปิดและออกจากเซสชันผู้เยี่ยมชมที่มีการจัดการ</translation> <translation id="6979440798594660689">ปิดเสียง (ค่าเริ่มต้น)</translation> @@ -6589,6 +6610,7 @@ <translation id="7047059339731138197">เลือกพื้นหลัง</translation> <translation id="7048457618657122233">แชร์ลิงก์ใน <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">เก็บไฟล์ไว้ไหม</translation> +<translation id="7050037487872780845">การกำหนดค่าฮอตสปอตไม่ถูกต้อง</translation> <translation id="7052237160939977163">ส่งข้อมูลการติดตามผลการปฏิบัติงาน</translation> <translation id="7053983685419859001">บล็อก</translation> <translation id="7055152154916055070">การเปลี่ยนเส้นทางถูกบล็อก</translation> @@ -6793,6 +6815,7 @@ <translation id="7258192266780953209">Transformations</translation> <translation id="7258225044283673131">แอปพลิเคชันไม่ตอบสนอง เลือก "บังคับปิด" เพื่อปิดแอป</translation> <translation id="7260186537988033909">ลงทะเบียนอุปกรณ์คีออสก์และป้ายเสร็จสมบูรณ์</translation> +<translation id="7260367682327802201">อุปกรณ์ Android อาจมีการตั้งค่าที่คล้ายกัน หากเปิดใช้การวัดผลโฆษณาใน Chrome และบนอุปกรณ์ Android บริษัทอาจสามารถวัดประสิทธิภาพของโฆษณาในเว็บไซต์ต่างๆ ที่คุณเข้าชมและแอปที่คุณใช้</translation> <translation id="7262004276116528033">บริการลงชื่อเข้าใช้นี้โฮสต์โดย <ph name="SAML_DOMAIN" /></translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{นำสิทธิ์สำหรับ 1 เว็บไซต์ออกแล้ว}other{นำสิทธิ์สำหรับ {NUM_SITES} เว็บไซต์ออกแล้ว}}</translation> <translation id="7264695323040866038">ใช้แอป <ph name="APP" /> เพื่อเปิดลิงก์เว็บที่รองรับทุกครั้งไหม</translation> @@ -6936,6 +6959,7 @@ <translation id="7406912950279255498">โหมดการกลับสี</translation> <translation id="7407430846095439694">นำเข้าและเชื่อมโยง</translation> <translation id="7407504355934009739">คนส่วนใหญ่บล็อกการแจ้งเตือนจากเว็บไซต์นี้</translation> +<translation id="7408080603962564527">ผู้อื่นจะมองเห็นข้อมูลนี้</translation> <translation id="740810853557944681">เพิ่มเซิร์ฟเวอร์การพิมพ์</translation> <translation id="7409549334477097887">ใหญ่พิเศษ</translation> <translation id="7409599290172516453">รูปภาพล่าสุด</translation> @@ -6974,7 +6998,6 @@ <translation id="7434757724413878233">การเร่งความเร็วเมาส์</translation> <translation id="7434969625063495310">เพิ่มเซิร์ฟเวอร์การพิมพ์ไม่ได้ โปรดตรวจสอบการกำหนดค่าของเซิร์ฟเวอร์แล้วลองอีกครั้ง</translation> <translation id="7436921188514130341">แย่จัง! เกิดข้อผิดพลาดในระหว่างการตั้งชื่อ</translation> -<translation id="7438495332316988804">คุณค้นหาเบราว์เซอร์มาตรฐานได้โดยพิมพ์ "Chrome" ลงใน Launcher</translation> <translation id="7439519621174723623">เพิ่มชื่ออุปกรณ์เพื่อดำเนินการต่อ</translation> <translation id="7441736921018636843">หากต้องการเปลี่ยนการตั้งค่านี้ ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" />เพื่อนำรหัสผ่านการซิงค์ออก</translation> <translation id="7441830548568730290">ผู้ใช้รายอื่น</translation> @@ -7226,7 +7249,7 @@ <translation id="766635563210446220">นำเข้ารหัสผ่านไม่ได้ ตรวจสอบ <ph name="FILENAME" /> ว่าอยู่ในรูปแบบที่ถูกต้อง <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation> <translation id="7666531788977935712">ปุ่มดําเนินการต่อเปิดอยู่</translation> <translation id="7668002322287525834">{NUM_WEEKS,plural, =1{ส่งคืน <ph name="DEVICE_TYPE" /> ภายใน {NUM_WEEKS} สัปดาห์}other{ส่งคืน <ph name="DEVICE_TYPE" /> ภายใน {NUM_WEEKS} สัปดาห์}}</translation> -<translation id="7668423670802040666">ในเครื่องมือจัดการรหัสผ่านของ Google สำหรับ <ph name="ACCOUNT" /></translation> +<translation id="7668423670802040666">ใน Google เครื่องมือจัดการรหัสผ่านสำหรับ <ph name="ACCOUNT" /></translation> <translation id="7668648754769651616">ฟีเจอร์การช่วยเหลือพิเศษจะช่วยให้อุปกรณ์ใช้งานง่ายยิ่งขึ้น หากต้องการเข้าถึงการตั้งค่าด่วน ให้เลือกเวลาที่ด้านล่างของหน้าจอ</translation> <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{PIN ไม่ถูกต้อง คุณป้อน PIN ได้อีก 1 ครั้ง}other{PIN ไม่ถูกต้อง คุณป้อน PIN ได้อีก # ครั้ง}}</translation> <translation id="7670434942695515800">อัปเกรดเป็นเวอร์ชันล่าสุดเพื่อประสิทธิภาพการทำงานที่ดีที่สุด ขอแนะนำให้สำรองไฟล์ไว้เผื่อในกรณีที่อัปเกรดไม่สำเร็จ เมื่อการอัปเกรดเริ่มต้น Linux จะหยุดทำงาน บันทึกไฟล์ที่เปิดไว้ก่อนที่จะดำเนินการต่อ <ph name="LINK_START" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation> @@ -7251,6 +7274,7 @@ <translation id="7684718995427157417">หากต้องการสร้างและทดสอบแอป ให้เปิดใช้ Android Debug Bridge (ADB) โปรดทราบว่าการดำเนินการนี้จะอนุญาตให้ติดตั้งแอป Android ที่ยังไม่ได้รับการยืนยันจาก Google และต้องรีเซ็ตเป็นค่าเริ่มต้นเพื่อปิดใช้</translation> <translation id="7685049629764448582">หน่วยความจำ JavaScript</translation> <translation id="7685087414635069102">ต้องระบุ PIN</translation> +<translation id="7686086654630106285">ข้อมูลเพิ่มเติมเกี่ยวกับโฆษณาที่เว็บไซต์แนะนำ</translation> <translation id="7686581688229391955">เลือกเพื่ออนุญาตส่วนขยายในเว็บไซต์นี้</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">ยืนยันรหัสผ่านใหม่</translation> @@ -7272,6 +7296,7 @@ <translation id="7704317875155739195">เติมข้อความค้นหาและ URL อัตโนมัติ</translation> <translation id="7704521324619958564">เปิด Play Store</translation> <translation id="7705276765467986571">ไม่สามารถโหลดรูปแบบบุ๊กมาร์ก</translation> +<translation id="7705334495398865155">สุ่มรหัสของฮาร์ดแวร์ (BSSID) เพื่อป้องกันไม่ให้ผู้อื่นติดตามอุปกรณ์นี้</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">เว็บไซต์นี้ถูกบล็อกไม่ให้ใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว</translation> <translation id="7707922173985738739">ใช้เน็ตมือถือ</translation> @@ -7465,6 +7490,7 @@ <translation id="7881483672146086348">ดูบัญชี</translation> <translation id="7883792253546618164">ยกเลิกการรับข่าวสารได้ทุกเมื่อ</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{ตรวจสอบ 1 เว็บไซต์ที่ส่งการแจ้งเตือนจำนวนมาก}other{ตรวจสอบ {NUM_SITES} เว็บไซต์ที่ส่งการแจ้งเตือนจำนวนมาก}}</translation> +<translation id="7884446017008693258">การตั้งค่าฮอตสปอต</translation> <translation id="788453346724465748">กำลังโหลดข้อมูลบัญชี...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 รายการ}other{# รายการ}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7552,6 +7578,7 @@ <translation id="7952904276017482715">คาดการณ์ ID "<ph name="EXPECTED_ID" />" แต่ ID ที่แจ้งคือ "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">การป้อนข้อมูล</translation> <translation id="7953955868932471628">จัดการทางลัด</translation> +<translation id="7955105108888461311">ถามด้วยตนเอง</translation> <translation id="7955177647836564772">หากเปิด Smart Lock ไว้และโทรศัพท์ปลดล็อกแล้ว คุณไม่จําเป็นต้องป้อนรหัสผ่านหรือ PIN</translation> <translation id="7956373551960864128">เครื่องพิมพ์ที่คุณบันทึกไว้</translation> <translation id="7957074856830851026">ดูข้อมูลอุปกรณ์ เช่น หมายเลขซีเรียลหรือรหัสเนื้อหา</translation> @@ -7690,6 +7717,7 @@ <ph name="BEGIN_PARAGRAPH3" />คุณปิดบริการนี้ได้ในการตั้งค่า<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">แท็บ</translation> <translation id="8076835018653442223">ผู้ดูแลระบบปิดการเข้าถึงไฟล์ในอุปกรณ์ของคุณ</translation> +<translation id="8077120325605624147">เว็บไซต์ที่คุณเข้าชมจะแสดงโฆษณาต่อคุณได้</translation> <translation id="80798452873915119">เว็บไซต์ขอจัดการหน้าต่างบนจอแสดงผลทั้งหมดได้</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289"><ph name="MANAGER_NAME" /> เป็นผู้จัดการเซสชันของคุณ ผู้ดูแลระบบจะลบโปรไฟล์ รวมทั้งตรวจสอบการจราจรของข้อมูลในเครือข่ายได้</translation> @@ -8052,6 +8080,7 @@ <translation id="8405046151008197676">ดูไฮไลต์จากอัปเดตล่าสุด</translation> <translation id="8407199357649073301">ระดับบันทึก:</translation> <translation id="8408270600235826886">คุณควบคุมข้อมูลที่จะแชร์กับ Google ได้ คุณเปลี่ยนการตั้งค่านี้ได้ทุกเมื่อในการตั้งค่า ทั้งนี้จะมีการนำข้อมูลไปใช้ตาม<ph name="BEGIN_LINK" />นโยบายความเป็นส่วนตัว<ph name="END_LINK" />ของ Google</translation> +<translation id="84098433273647700">ธีมปัจจุบันที่คุณติดตั้ง</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8412136526970428322">อนุญาตให้เข้าถึง<ph name="PERMISSION" />และอีก <ph name="COUNT" /> รายการ</translation> <translation id="8413385045638830869">ถามก่อน (แนะนำ)</translation> @@ -8202,6 +8231,7 @@ <translation id="8557180006508471423">เปิด "Google Chrome" ใน Location Services ของ Mac</translation> <translation id="8557856025359704738">ดาวน์โหลดครั้งถัดไปในวันที่ <ph name="NEXT_DATE_DOWNLOAD" /></translation> <translation id="8559858985063901027">พาสคีย์</translation> +<translation id="8559961053328923750">Chrome จำกัดปริมาณข้อมูลทั้งหมดที่เว็บไซต์สามารถแชร์ผ่านเบราว์เซอร์เพื่อวัดประสิทธิภาพโฆษณา</translation> <translation id="8560327176991673955">{COUNT,plural, =0{เปิดทั้งหมดใน&หน้าต่างใหม่}=1{เปิดใน&หน้าต่างใหม่}other{เปิดทั้งหมด ({COUNT}) ใน&หน้าต่างใหม่}}</translation> <translation id="8561206103590473338">ช้าง</translation> <translation id="8561565784790166472">โปรดดำเนินการด้วยความระมัดระวัง</translation> @@ -8213,6 +8243,7 @@ <translation id="8571687764447439720">เพิ่มตั๋ว Kerberos</translation> <translation id="8574990355410201600">อนุญาตให้เปิดเสียงใน <ph name="HOST" /> เสมอ</translation> <translation id="8575286410928791436">กด <ph name="KEY_EQUIVALENT" /> ค้างไว้เพื่อออก</translation> +<translation id="8576359558126669548">ข้อมูลเพิ่มเติมเกี่ยวกับการบล็อกคุกกี้ของบุคคลที่สามในโหมดไม่ระบุตัวตน</translation> <translation id="8576885347118332789">{NUM_TABS,plural, =1{เพิ่มแท็บไปยังเรื่องรออ่าน}other{เพิ่มหลายแท็บไปยังเรื่องรออ่าน}}</translation> <translation id="8577052309681449949">การคลิกอัตโนมัติ ขนาดของเคอร์เซอร์ สีของเคอร์เซอร์ และอื่นๆ</translation> <translation id="8578639784464423491">ต้องไม่เกิน 99 ตัวอักษร</translation> @@ -8344,6 +8375,7 @@ <translation id="8678933587484842200">คุณต้องการเปิดแอปพลิเคชันนี้ด้วยวิธีใด</translation> <translation id="8680251145628383637">ลงชื่อเข้าใช้เพื่อดึงบุ๊กมาร์ก ประวัติ รหัสผ่าน และการตั้งค่าอื่นๆ บนอุปกรณ์ทุกเครื่องของคุณ ทั้งนี้ ระบบจะลงชื่อเข้าใช้บริการต่างๆ ของ Google ให้คุณโดยอัตโนมัติ</translation> <translation id="8681614230122836773">Chrome พบซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์ของคุณ</translation> +<translation id="8681886425883659911">โฆษณาถูกบล็อกในเว็บไซต์ที่ทราบว่าแสดงโฆษณาที่รบกวนหรือทำให้เข้าใจผิด</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> เชื่อมต่อแล้วและพร้อมทำงาน</translation> <translation id="8687103160920393343">ยกเลิก <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">มีอยู่</translation> @@ -8714,6 +8746,7 @@ <translation id="9021662811137657072">ตรวจพบไวรัส</translation> <translation id="902236149563113779">โดยปกติแล้วเว็บไซต์จะติดตามตำแหน่งกล้องของคุณเพื่อดำเนินการตามฟีเจอร์ต่างๆ ของ AR เช่น เกมหรือการแจ้งทิศทางล่วงหน้า</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ใช้บัญชีนี้บนคอมพิวเตอร์เครื่องนี้แล้ว</translation> +<translation id="9022871169049522985">เว็บไซต์และผู้ลงโฆษณาสามารถวัดประสิทธิภาพโฆษณาของตน</translation> <translation id="9023015617655685412">บุ๊กมาร์กแท็บนี้...</translation> <translation id="9023909777842748145">การปิดฟีเจอร์นี้จะไม่ส่งผลต่อความสามารถของอุปกรณ์ในการส่งข้อมูลที่จำเป็นต่อบริการสำคัญ เช่น การอัปเดตระบบและการรักษาความปลอดภัย</translation> <translation id="9024127637873500333">&เปิดในแท็บใหม่</translation> @@ -8843,6 +8876,7 @@ <translation id="9128335130883257666">เปิดหน้าการตั้งค่าของ<ph name="INPUT_METHOD_NAME" /></translation> <translation id="9128870381267983090">เชื่อมต่อกับเครือข่าย</translation> <translation id="9130015405878219958">โหมดที่ป้อนไม่ถูกต้อง</translation> +<translation id="9131209053278896908">เว็บไซต์ที่บล็อกจะปรากฏที่นี่</translation> <translation id="9131487537093447019">ส่งข้อความถึงและรับข้อความจากอุปกรณ์บลูทูธ</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{บุ๊กมาร์ก 1 รายการ}other{บุ๊กมาร์ก # รายการ}}</translation> <translation id="9134066738478820307">เว็บไซต์ใช้ตัวระบุเพื่อเล่นเนื้อหาที่มีการคุ้มครองได้</translation> @@ -8896,6 +8930,7 @@ <translation id="9180281769944411366">ขั้นตอนนี้อาจใช้เวลาสักครู่ กำลังเริ่มคอนเทนเนอร์ Linux</translation> <translation id="9180380851667544951">เว็บไซต์แชร์หน้าจอของคุณได้</translation> <translation id="9182556968660520230">ไม่อนุญาตให้เว็บไซต์เล่นเนื้อหาที่มีการคุมครอง</translation> +<translation id="9183331776983279456">Chrome จะลบข้อมูลเว็บไซต์ที่นานเกิน 4 สัปดาห์โดยอัตโนมัติ เว็บไซต์ที่คุณเข้าชมอีกครั้งอาจกลับมาปรากฏในรายการอีก หากไม่ต้องการ คุณอาจบล็อกเว็บไซต์ไม่ให้แนะนำโฆษณาก็ได้</translation> <translation id="918352324374649435">{COUNT,plural, =1{แอป}other{# แอป}}</translation> <translation id="9186963452600581158">ลงชื่อเข้าใช้ด้วยบัญชี Google ของบุตรหลาน</translation> <translation id="9187967020623675250">แป้นไม่ตรงกัน กดแป้นใดก็ได้เพื่อ<ph name="RESPONSE" /></translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index ce2dbb16..9c58010 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">Orijinal &Resmi Yeni Sekmede Aç</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{<ph name="DEVICE_TYPE" /> cihazı, 1 hafta içinde güncelleyin}other{<ph name="DEVICE_TYPE" /> cihazı, {NUM_WEEKS} hafta içinde güncelleyin}}</translation> <translation id="1056898198331236512">Uyarı</translation> +<translation id="1056980582064308040">Ayarlar değiştirildiğinde hotspot yeniden başlatılır. Bu durumda, hotspot kullanan cihazların bağlantısı kesilir.</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{Yeni PIN'inizi girin. PIN en az bir karakter uzunluğunda olmalıdır ve harflerle rakamların yanı sıra diğer karakterleri içerebilir.}other{Yeni PIN'inizi girin. PIN en az # karakter uzunluğunda olmalıdır ve harflerle rakamların yanı sıra diğer karakterleri içerebilir.}}</translation> <translation id="1059484610606223931">HyperText Aktarım Protokolü (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">Durdur</translation> <translation id="1272508081857842302"><ph name="BEGIN_LINK" />Desteklenen bağlantıların<ph name="END_LINK" /> açılması</translation> <translation id="1272978324304772054">Bu kullanıcı hesabı, cihazın kaydedildiği alan adına ait değil. Farklı bir alan adına kaydolmak istiyorsanız, öncelikle cihaz kurtarma işlemini tamamlamanız gerekir.</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> sitesini engelle</translation> <translation id="1274997165432133392">Çerezler ve diğer site verileri</translation> <translation id="1275718070701477396">Seçildi</translation> <translation id="1276994519141842946"><ph name="APP_NAME" /> kaldırılamadı</translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">ADB hata ayıklama işlevini etkinleştirmek için bu <ph name="DEVICE_TYPE" /> cihazının yeniden başlatılması gerekir. Bu işlevi devre dışı bırakmak fabrika ayarlarına sıfırlama yapılmasını gerektirir.</translation> <translation id="1327527584824210101">Şifre anahtarınızı kullanın</translation> <translation id="1327794256477341646">Konumunuza erişilmesini gerektiren özellikler çalışmaz</translation> +<translation id="1329466763986822896">Bu hotspot'un gizliliğini iyileştirin</translation> <translation id="1331977651797684645">Bu kişi bendim.</translation> <translation id="1333489022424033687">Diğer sitelerin cihazınızda depoladığı veriler temizlenmeden, bazı <ph name="ORIGIN" /> özellikleri düzgün bir şekilde çalışmayabilir</translation> <translation id="1333965224356556482">Sitelerin konumumu görmesine izin verme</translation> @@ -593,6 +596,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{Gizli pencereniz yeniden açılmayacak.}other{# gizli pencereniz yeniden açılmayacak.}}</translation> <translation id="1546280085599573572">Bu uzantı, Ana Sayfa düğmesini tıkladığınızda gösterilecek sayfayı değiştirdi.</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" />, aşağıdakileri yapabilecek bir <ph name="EXTENSION_TYPE" /> yüklemek istiyor:</translation> +<translation id="1547123415014299762">Üçüncü taraf çerezlerine izin verilir</translation> <translation id="1547808936554660006">Yüklenen eSIM profillerinin Powerwash işlemiyle kaldırılmayacağını anladım</translation> <translation id="1547936895218027488">Açmak için yan panel simgesini tıklayın</translation> <translation id="1549275686094429035">ARC Etkinleştirildi</translation> @@ -766,6 +770,7 @@ <translation id="168715261339224929">Yer işaretlerinize tüm cihazlarınızda ulaşmak için senkronizasyonu açın.</translation> <translation id="1688867105868176567">Site verileri temizlensin mi?</translation> <translation id="1688935057616748272">Bir harf yazın</translation> +<translation id="1689333818294560261">Takma ad</translation> <translation id="168991973552362966">Yakındaki bir yazıcıyı ekleyin</translation> <translation id="1689945336726856614">&URL'yi Kopyala</translation> <translation id="1692115862433274081">Başka bir hesap kullan</translation> @@ -1395,6 +1400,7 @@ <translation id="2247870315273396641">Ses önizlemesi</translation> <translation id="2249111429176737533">Sekmeli pencere olarak aç</translation> <translation id="2249605167705922988">ör. 1-5, 8, 11-13</translation> +<translation id="2249635629516220541">Sitelerin size reklam göstermek için kullandığı bilgileri özelleştirin</translation> <translation id="2251218783371366160">Sistem görüntüleyici ile aç</translation> <translation id="225163402930830576">Ağları Yenile</translation> <translation id="2251809247798634662">Yeni Gizli pencere</translation> @@ -1508,7 +1514,6 @@ <translation id="2329597144923131178">Yer işaretlerinize, geçmişinize ve diğer ayarlarınıza tüm cihazlarınızdan erişmek için oturum açın.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> adresine kaydedilen cihazlar yüklenemiyor. İnternet bağlantınızı kontrol edip tekrar deneyin.</translation> <translation id="2332131598580221120">Mağazada görüntüle</translation> -<translation id="2332192922827071008">Tercihleri Aç</translation> <translation id="2332515770639153015">Gelişmiş Güvenli Tarama açık</translation> <translation id="2332742915001411729">Varsayılana sıfırla</translation> <translation id="2332948465534020594">Rahatsız etmeyin modu etkin</translation> @@ -1842,6 +1847,7 @@ <translation id="2640299212685523844">GTK temasını kullan</translation> <translation id="264083724974021997">Telefonunuza bağlama - İletişim kutusu</translation> <translation id="2642111877055905627">Futbol topu</translation> +<translation id="2643064289437760082">Tarama verilerini silerek reklam ölçümü verilerini istediğiniz zaman silebilirsiniz</translation> <translation id="2643698698624765890">Pencere menüsünden Uzantılar'ı tıklayarak uzantılarınızı yönetin.</translation> <translation id="2645047101481282803">Cihazınız <ph name="PROFILE_NAME" /> tarafından yönetiliyor</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2301,6 +2307,7 @@ <translation id="3036327949511794916">Bu <ph name="DEVICE_TYPE" /> cihazı iade etmek için son tarih geçti.</translation> <translation id="3036546437875325427">Flash'ı etkinleştir</translation> <translation id="3037754279345160234">Alana katılmak için yapılandırma ayrıştırılamıyor. Lütfen yöneticinizle iletişime geçin.</translation> +<translation id="3038272154009688107">Tüm siteleri göster</translation> <translation id="3038612606416062604">Manuel olarak yazıcı ekleyin</translation> <translation id="3039491566278747710">Çevrimdışı politika cihaza yüklenemedi.</translation> <translation id="3043016484125065343">Yer işaretlerinizi görmek için oturum açın</translation> @@ -2537,6 +2544,7 @@ <translation id="3289668031376215426">Otomatik büyük harf yap</translation> <translation id="3289856944988573801">Güncellemeleri kontrol etmek için lütfen Ethernet veya Kablosuz kullanın.</translation> <translation id="3290249595466894471">Ayrıca yeni tehditlerin keşfedilmesine yardımcı olmak için sayfalar, indirmeler, uzantı etkinliği ve sistem bilgilerinden küçük bir örnek gönderir.</translation> +<translation id="3293181007446299124">Tarama geçmişiniz cihazınızda gizli tutulur ve raporlar, kimliğinizin korunması için gecikmeli olarak gönderilir</translation> <translation id="3293644607209440645">Bu sayfayı gönder</translation> <translation id="32939749466444286">Linux kapsayıcısı başlamadı. Lütfen tekrar deneyin.</translation> <translation id="3294437725009624529">Misafir</translation> @@ -3317,6 +3325,7 @@ <translation id="3984431586879874039">Bu sitenin güvenlik anahtarınızı görmesine izin verilsin mi?</translation> <translation id="398477389655464998">Seçili Metin Bağlantısını Kopyala</translation> <translation id="3984862166739904574">Bil bakalım tanımı</translation> +<translation id="3985022125189960801">Nelerden hoşlandığınızı tahmin eden siteler havuzunda görmek istediğiniz bir siteyi tekrar ekleyin</translation> <translation id="3987544746655539083">Bu sitenin konumuma erişmesini engellemeye devam et</translation> <translation id="3987938432087324095">Pardon, anlaşılmadı.</translation> <translation id="3987993985790029246">Bağlantıyı kopyala</translation> @@ -3694,6 +3703,7 @@ <translation id="4366138410738374926">Yazdırma başladı</translation> <translation id="4367513928820380646">Kaldırılan izinleri incele</translation> <translation id="4369215744064167350">Web sitesi isteği onaylandı</translation> +<translation id="4369735607080757018">Reklamlarının performansını ölçmek isteyen siteler arasında, bir reklamın size gösterildiği saat gibi sınırlı veri türleri paylaşılır</translation> <translation id="4370975561335139969">Girdiğiniz e-posta ve şifre eşleşmiyor</translation> <translation id="4374831787438678295">Linux yükleyici</translation> <translation id="4375035964737468845">İndirilen dosyaları açma</translation> @@ -3714,6 +3724,7 @@ <translation id="4385146930797718821">Ekran görüntüsü panoya kopyalandı</translation> <translation id="4385905942116811558">Bluetooth ve USB cihazları aranıyor</translation> <translation id="4387890294700445764">Güvenliği ihlal edilmiş şifreler</translation> +<translation id="4388650384344483842">En az 8 karakter kullanın</translation> <translation id="4389091756366370506">Kullanıcı <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ve <ph name="NUMBER_OF_OTHER_SWITCHES" /> düğme tuşu daha</translation> <translation id="439266289085815679">Bluetooth yapılandırması <ph name="USER_EMAIL" /> tarafından kontrol ediliyor.</translation> @@ -4035,6 +4046,7 @@ <translation id="4666472247053585787">Telefonunuzdaki bildirimleri <ph name="DEVICE_TYPE" /> cihazınızda görüntüleyin</translation> <translation id="4666911709726371538">Diğer uygulamalar</translation> <translation id="4667027203988048332">Hangi veriler kullanılır?</translation> +<translation id="4668279686271488041">Reklam ölçümü verileri cihazınızdan düzenli olarak silinir</translation> <translation id="4672759829555593783"><ph name="FILE_NAME" /> dosyasını şimdi aç</translation> <translation id="46733273239502219">Yüklü uygulamalardaki çevrimdışı veriler de temizlenecek</translation> <translation id="4673442866648850031">Ekran kalemi yerinden çıkarıldığında ekran kalemi araçlarını aç</translation> @@ -4228,6 +4240,7 @@ <translation id="485480310608090163">Diğer ayarlar ve izinler</translation> <translation id="4858913220355269194">Futbolcu</translation> <translation id="4862642413395066333">İmza OCSP Yanıtları</translation> +<translation id="4863702650881330715">Uyumluluğu genişlet</translation> <translation id="4863769717153320198"><ph name="WIDTH" /> x <ph name="HEIGHT" /> şeklinde görünür (Varsayılan)</translation> <translation id="4864805589453749318">Okul hesabı eklenmesine izin veren ebeveyni seçin.</translation> <translation id="486635084936119914">Belirli türdeki dosyaları indirildikten sonra otomatik olarak aç</translation> @@ -4276,7 +4289,6 @@ <translation id="4893336867552636863">Bu işlem, tarama verilerinizi bu cihazdan kalıcı olarak silecektir.</translation> <translation id="4893454800196085005">İyi-DVD</translation> <translation id="4893522937062257019">Kilit ekranında</translation> -<translation id="4897496410259333978">Daha fazla bilgi edinmek için yöneticinizle iletişim kurun.</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" sertifikası bir Sertifika Yetkilisi'ni temsil ediyor.</translation> <translation id="4899052647152077033">Renkleri çevir</translation> <translation id="4899696330053002588">Reklam içerir</translation> @@ -4474,6 +4486,7 @@ <translation id="5094721898978802975">İşbirliği yapan yerel uygulamalarla iletişim kurma</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation> <translation id="5097306410549350357">Konum kullanma hakkında daha fazla bilgi edinin</translation> +<translation id="5097349930204431044">Ziyaret ettiğiniz siteler nelerden hoşlandığınızı belirleyip siz internette gezinmeye devam ederken reklam önerebilir</translation> <translation id="5097649414558628673">Araç: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">İmleç durduğunda otomatik olarak tıkla</translation> <translation id="5101683448725092498">Bilgilerinizi yedekleyin</translation> @@ -4656,6 +4669,7 @@ <translation id="5275352920323889391">Köpek</translation> <translation id="527605719918376753">Sekmenin sesini kapat</translation> <translation id="527605982717517565"><ph name="HOST" /> sitesinde JavaScript'e her zaman izin ver</translation> +<translation id="5276357196618041410">Yapılandırma, giriş yapmadan kaydedilemez</translation> <translation id="5277127016695466621">Yan paneli göster</translation> <translation id="5278823018825269962">Durum kimliği</translation> <translation id="5279600392753459966">Tümünü engelle</translation> @@ -5811,7 +5825,6 @@ <translation id="6347010704471250799">Bildirimi göster</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> uygulamasını yükle</translation> <translation id="6354918092619878358">SECG eliptik eğri secp256r1 (önceki adları ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Deneysel (alfa kalite) tarayıcı Bazı özellikler eksik Sorunları Yardım > "Sorun bildir..." bölümünden bildirin.</translation> <translation id="635609604405270300">Cihazı kapatmayın</translation> <translation id="63566973648609420">Yalnızca parolanızı bilen biri, şifrelenmiş verilerinizi okuyabilir. Parola Google'a gönderilmez veya Google tarafından saklanmaz. Parolanızı unutursanız veya bu ayarı değiştirmek isterseniz <ph name="BEGIN_LINK" />senkronizasyonu sıfırlamanız<ph name="END_LINK" /> gerekir.</translation> <translation id="6357305427698525450">Bazı desteklenen bağlantılar <ph name="APP_NAME" /> veya <ph name="APP_NAME_2" /> uygulamalarında açılmaya devam eder.</translation> @@ -6151,6 +6164,7 @@ <translation id="6670767097276846646">Bazı uzantılar Chrome'a arama motoru ekleyebilir</translation> <translation id="6671320560732140690">{COUNT,plural, =1{bir adres}other{# adres}}</translation> <translation id="6671497123040790595"><ph name="MANAGER" /> denetimi kuruluyor</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ekle</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">Senkronizasyonu başlatmak için parolanızı girin</translation> <translation id="6675665718701918026">İşaretleme cihazı bağlı</translation> @@ -6234,6 +6248,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Gizli mod)</translation> <translation id="6756157672127672536">Dosyalar uygulaması; Google Drive'a, harici depolama birimine veya ChromeOS cihazınıza kaydettiğiniz dosyalara hızlı bir şekilde erişebilmenizi sağlar.</translation> <translation id="6756643207511618722">Konuşma motorları</translation> +<translation id="6757431299485455321">Diğer cihazların bu hotspot'u bulmasına yardımcı olun.</translation> <translation id="6758056191028427665">Bizimle ilgili görüşünüzü bildirin.</translation> <translation id="6759193508432371551">Fabrika ayarlarına sıfırlama</translation> <translation id="6761431452438552910">Bluetooth cihazınızın eşleme modunda ve yakında olduğundan emin olun. Yalnızca güvendiğiniz cihazlarla eşleme yapın.</translation> @@ -6333,6 +6348,7 @@ <translation id="6833479554815567477">Sekme, <ph name="GROUP_NAME" /> adlı gruptan kaldırıldı - <ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">Akıllı ve güvenli bir tarayıcıya geç</translation> <translation id="6833996806551876956">Privacy Sandbox denemesi</translation> +<translation id="6835712061486505758">Diğer cihazlara internet bağlantısı sağlamak için kablosuz hotspot oluşturun. <ph name="BEGIN_LINK_LEARN_MORE" />Daha fazla bilgi<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563"><ph name="DEVICE_TYPE" /> cihazınızı güncellemek için lütfen İnternet'e bağlanın.</translation> <translation id="6839225236531462745">Sertifika Silme Hatası</translation> <translation id="6839916869147598086">Oturum açma değişti</translation> @@ -6494,6 +6510,7 @@ <translation id="697508444536771064">Linux'u kapat</translation> <translation id="6975361011348772931">Okuyup değiştirme izni istedi</translation> <translation id="6978121630131642226">Arama Motorları</translation> +<translation id="6978717888677691380">Engellediğiniz siteler</translation> <translation id="6979041727349121225">Enerji Tasarrufu</translation> <translation id="6979044105893951891">Yönetilen misafir oturumunlarını başlatma ve oturumlardan çıkma</translation> <translation id="6979440798594660689">Sesi kapat (varsayılan)</translation> @@ -6585,6 +6602,7 @@ <translation id="7047059339731138197">Bir arka plan seçin</translation> <translation id="7048457618657122233">Bağlantıyı <ph name="SHARE_TARGET" /> ile paylaş</translation> <translation id="7049293980323620022">Dosya tutulsun mu?</translation> +<translation id="7050037487872780845">Geçersiz hotspot yapılandırması</translation> <translation id="7052237160939977163">Performans izleme verilerini gönder</translation> <translation id="7053983685419859001">Engelle</translation> <translation id="7055152154916055070">Yönlendirme engellendi:</translation> @@ -6789,6 +6807,7 @@ <translation id="7258192266780953209">Dönüşümler</translation> <translation id="7258225044283673131">Uygulama yanıt vermiyor. Uygulamayı kapatmak için "Uygulamayı kapat"ı seçin.</translation> <translation id="7260186537988033909">Kiosk ve tabela cihaz kaydı tamamlandı</translation> +<translation id="7260367682327802201">Android cihazınızda benzer bir ayar olabilir. Chrome'da ve Android cihazınızda reklam ölçümü etkinse bir şirket, ziyaret ettiğiniz web siteleri ve kullandığınız uygulamalardaki reklamların etkinliğini ölçebilir.</translation> <translation id="7262004276116528033">Bu oturum açma hizmeti, <ph name="SAML_DOMAIN" /> tarafından barındırılıyor.</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{1 sitenin izinleri kaldırıldı}other{{NUM_SITES} sitenin izinleri kaldırıldı}}</translation> <translation id="7264695323040866038">Desteklenen web bağlantılarını açmak için her zaman <ph name="APP" /> uygulaması kullanılsın mı?</translation> @@ -6932,6 +6951,7 @@ <translation id="7406912950279255498">Rengi ters çevirme modu</translation> <translation id="7407430846095439694">İçe Aktar ve Bağla</translation> <translation id="7407504355934009739">Çoğu kullanıcı bu siteden gelen bildirimleri engelliyor</translation> +<translation id="7408080603962564527">Bu adı diğer kullanıcılar görebilir</translation> <translation id="740810853557944681">Yazdırma sunucusu ekleyin</translation> <translation id="7409549334477097887">Çok büyük</translation> <translation id="7409599290172516453">Yeni Eklenen Fotoğraflar</translation> @@ -6970,7 +6990,6 @@ <translation id="7434757724413878233">Fare hızlandırması</translation> <translation id="7434969625063495310">Yazdırma sunucusu eklenemedi. Lütfen sunucunun yapılandırmasını kontrol edip tekrar deneyin.</translation> <translation id="7436921188514130341">Hay aksi! Yeniden adlandırma sırasında bir hata oluştu.</translation> -<translation id="7438495332316988804">Standart tarayıcıyı bulmak için Başlatıcıya "Chrome" yazabilirsiniz.</translation> <translation id="7439519621174723623">Devam etmek için bir cihaz adı ekleyin</translation> <translation id="7441736921018636843">Bu ayarı değiştirmek için <ph name="BEGIN_LINK" />senkronizasyonu sıfırlayarak<ph name="END_LINK" /> senkronizasyon parolanızı kaldırın</translation> <translation id="7441830548568730290">Diğer kullanıcılar</translation> @@ -7247,6 +7266,7 @@ <translation id="7684718995427157417">Uygulama oluşturup test etmek için Android Debug Bridge'i (ADB) etkinleştirin. Bu işlemin Google tarafından doğrulanmamış Android uygulamasının yüklenmesine izin verdiğini ve devre dışı bırakmak için fabrika ayarlarına sıfırlama işlemi yapılması gerektirdiğini unutmayın.</translation> <translation id="7685049629764448582">JavaScript belleği</translation> <translation id="7685087414635069102">PIN gerekli</translation> +<translation id="7686086654630106285">Site tarafından önerilen reklamlar hakkında daha fazla bilgi</translation> <translation id="7686581688229391955">Bu sitede uzantılara izin vermek için seçin</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">Yeni şifreyi doğrula</translation> @@ -7268,6 +7288,7 @@ <translation id="7704317875155739195">Aramaları ve URL'leri otomatik tamamla</translation> <translation id="7704521324619958564">Play Store'u aç</translation> <translation id="7705276765467986571">Yer işareti modeli yüklenemedi.</translation> +<translation id="7705334495398865155">Başkalarının bu cihazı izlemesini önlemek için donanımınızın kimliğini (BSSID) rastgele hale getirin.</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">Bu sitenin, hareket sensörlerini kullanması engellenmiştir.</translation> <translation id="7707922173985738739">Mobil veri kullanın</translation> @@ -7461,6 +7482,7 @@ <translation id="7881483672146086348">Hesabı Görüntüle</translation> <translation id="7883792253546618164">İstediğiniz zaman aboneliğinizi iptal edebilirsiniz.</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{Son zamanlarda çok fazla bildirim gönderen 1 siteyi inceleyin}other{Son zamanlarda çok fazla bildirim gönderen {NUM_SITES} siteyi inceleyin}}</translation> +<translation id="7884446017008693258">Hotspot Ayarları</translation> <translation id="788453346724465748">Hesap bilgileri yükleniyor...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{bir öğe}other{# öğe}}</translation> <translation id="7886605625338676841">eSIM</translation> @@ -7548,6 +7570,7 @@ <translation id="7952904276017482715">Beklenen Kimlik "<ph name="EXPECTED_ID" />" idi, ancak "<ph name="NEW_ID" />" kimliği belirlendi</translation> <translation id="7953669802889559161">Girişler</translation> <translation id="7953955868932471628">Kısayolları yönet</translation> +<translation id="7955105108888461311">Şahsen sor</translation> <translation id="7955177647836564772">Smart Lock açıksa ve telefonunuzun da kilidi açıksa şifre ya da PIN girmeniz gerekmez</translation> <translation id="7956373551960864128">Kayıtlı yazıcılarınız</translation> <translation id="7957074856830851026">Seri numarası veya öğe kimliği gibi cihaz bilgilerini görüntüleyin</translation> @@ -7686,6 +7709,7 @@ <ph name="BEGIN_PARAGRAPH3" />Bu hizmeti Ayarlar'dan kapatabilirsiniz.<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">Sekmeler</translation> <translation id="8076835018653442223">Cihazınızdaki yerel dosyalara erişim, yöneticiniz tarafından devre dışı bırakıldı</translation> +<translation id="8077120325605624147">Ziyaret ettiğiniz herhangi bir site size reklam gösterebilir</translation> <translation id="80798452873915119">Siteler tüm ekranlarımda pencereleri yönetme izni isteyebilir</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">Oturumunuz <ph name="MANAGER_NAME" /> tarafından yönetiliyor. Yöneticiler profilinizi silebilir ve ayrıca ağ trafiğinizi izleyebilir.</translation> @@ -8198,6 +8222,7 @@ <translation id="8557180006508471423">Mac'inizdeki Konum Hizmetlerinde "Google Chrome"u açın</translation> <translation id="8557856025359704738">Sonraki indirme işlemi <ph name="NEXT_DATE_DOWNLOAD" /> tarihinde gerçekleşecek.</translation> <translation id="8559858985063901027">Şifre anahtarları</translation> +<translation id="8559961053328923750">Chrome, reklam performansını ölçmek için sitelerin tarayıcı aracılığıyla paylaşabileceği toplam veri miktarını sınırlar</translation> <translation id="8560327176991673955">{COUNT,plural, =0{Tümünü &Yeni Pencerede Aç}=1{&Yeni Pencerede Aç}other{Tümünü ({COUNT}) &Yeni Pencerede Aç}}</translation> <translation id="8561206103590473338">Fil</translation> <translation id="8561565784790166472">Dikkatli bir şekilde ilerleyin</translation> @@ -8339,6 +8364,7 @@ <translation id="8678933587484842200">Bu uygulamanın nasıl başlatılmasını istersiniz?</translation> <translation id="8680251145628383637">Tüm cihazlarınızdaki sekmeleri, geçmişi ve diğer ayarları almak için oturum açın. Google hizmetlerinizde de otomatik olarak oturum açarsınız.</translation> <translation id="8681614230122836773">Chrome, bilgisayarınızda zararlı yazılım buldu</translation> +<translation id="8681886425883659911">Araya giren veya yanıltıcı reklamlar gösterdiği bilinen sitelerdeki reklamlar engellenir</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> bağlandı ve hazır</translation> <translation id="8687103160920393343"><ph name="FILE_NAME" /> dosyasını iptal et</translation> <translation id="8688672835843460752">Kullanılabilir</translation> @@ -8709,6 +8735,7 @@ <translation id="9021662811137657072">Virüs algılandı</translation> <translation id="902236149563113779">Siteler; oyunlar veya uyarı yönlendirmeleri gibi artırılmış gerçeklik özelliklerinin kullanılması için genellikle kamera konumunuzu izler</translation> <translation id="9022847679183471841">Bu hesap bu bilgisayarda <ph name="AVATAR_NAME" /> tarafından zaten kullanılıyor.</translation> +<translation id="9022871169049522985">Siteler ve reklamverenler, reklamlarının performansını ölçebilir</translation> <translation id="9023015617655685412">Bu sekmeye yer işareti koy...</translation> <translation id="9023909777842748145">Bu özelliğin kapatılması cihazınızın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.</translation> <translation id="9024127637873500333">&Yeni Sekmede Aç</translation> @@ -8838,6 +8865,7 @@ <translation id="9128335130883257666"><ph name="INPUT_METHOD_NAME" /> için ayarlar sayfasını aç</translation> <translation id="9128870381267983090">Ağa bağlan</translation> <translation id="9130015405878219958">Geçersiz mod girildi</translation> +<translation id="9131209053278896908">Engellenen siteler burada gösterilir</translation> <translation id="9131487537093447019">Bluetooth cihazlarına ileti gönderme ve Bluetooth cihazlarından gelen iletileri alma.</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 yer işareti}other{# yer işareti}}</translation> <translation id="9134066738478820307">Siteler, korumalı içeriği oynatmak için kimlik kullanabilir</translation> @@ -8891,6 +8919,7 @@ <translation id="9180281769944411366">Bu işlem birkaç dakika sürebilir. Linux kapsayıcısı başlatılıyor.</translation> <translation id="9180380851667544951">Site, ekranınızı paylaşabilir</translation> <translation id="9182556968660520230">Sitelerin korumalı içeriği oynatmasına izin verme</translation> +<translation id="9183331776983279456">Chrome, 4 haftadan daha uzun süre önce ziyaret edilmiş siteleri otomatik olarak siler. Tekrar ziyaret ettiğiniz siteler yine listede görünebilir. Alternatif olarak bir sitenin size reklam önermesini de engelleyebilirsiniz.</translation> <translation id="918352324374649435">{COUNT,plural, =1{Uygulama}other{# uygulama}}</translation> <translation id="9186963452600581158">Çocuğunuzun Google Hesabıyla oturum açın</translation> <translation id="9187967020623675250">Tuşlar eşleşmiyor. <ph name="RESPONSE" /> için herhangi bir tuşa basın.</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 3986593..6a5332c 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -772,6 +772,7 @@ <translation id="168715261339224929">Щоб мати доступ до закладок на всіх своїх пристроях, увімкніть синхронізацію.</translation> <translation id="1688867105868176567">Очистити дані сайту?</translation> <translation id="1688935057616748272">Введіть символ</translation> +<translation id="1689333818294560261">Псевдонім</translation> <translation id="168991973552362966">Додати принтер поблизу</translation> <translation id="1689945336726856614">Скопіювати &URL-адресу</translation> <translation id="1692115862433274081">Інший обліковий запис</translation> @@ -1528,7 +1529,6 @@ <translation id="2329597144923131178">Увійдіть, щоб мати доступ до закладок, історії, паролів та інших налаштувань на всіх своїх пристроях.</translation> <translation id="2332115969598251205">Не вдалося завантажити список пристроїв, збережених в обліковому записі <ph name="PRIMARY_EMAIL" />. Перевірте інтернет-з’єднання й повторіть спробу.</translation> <translation id="2332131598580221120">Переглянути в магазині</translation> -<translation id="2332192922827071008">Відкрити налаштування</translation> <translation id="2332515770639153015">Безпечний перегляд із розширеним захистом увімкнено</translation> <translation id="2332742915001411729">Відновити тему за умовчанням</translation> <translation id="2332948465534020594">Режим "Не турбувати" ввімкнено</translation> @@ -2970,7 +2970,7 @@ <translation id="3677959414150797585">Зокрема, додатки, веб-сторінки й інше. Надсилає статистику, щоб покращувати пропозиції, лише якщо ви погодилися ділитися даними про використання.</translation> <translation id="3678156199662914018">Розширення: <ph name="EXTENSION_NAME" /></translation> <translation id="3678188444105291936">Сторінки, які ви переглядаєте в цьому вікні, не записуватимуться в історію веб-перегляду, а після вашого виходу не залишать на комп'ютері інших слідів (на зразок файлів cookie). Завантажені вами файли та створені закладки не зберігатимуться.</translation> -<translation id="368019053277764111">Відкрийте інструменти пошуку на бічній панелі</translation> +<translation id="368019053277764111">Відкрити інструменти пошуку на бічній панелі</translation> <translation id="3680683624079082902">Голос синтезу мовлення</translation> <translation id="3681311097828166361">Дякуємо за відгук. Звіт буде надіслано пізніше, оскільки зараз ви офлайн.</translation> <translation id="3681548574519135185">Виділення об’єкта через клавіатуру</translation> @@ -4297,7 +4297,6 @@ <translation id="4893336867552636863">Дані веб-перегляду буде видалено з цього пристрою назавжди.</translation> <translation id="4893454800196085005">Хороша – DVD</translation> <translation id="4893522937062257019">На екрані блокування</translation> -<translation id="4897496410259333978">Щоб дізнатися більше, зв’яжіться зі своїм адміністратором.</translation> <translation id="4898011734382862273">Сертифікат "<ph name="CERTIFICATE_NAME" />" представляє Центр сертифікації</translation> <translation id="4899052647152077033">Інвертовані кольори</translation> <translation id="4899696330053002588">Містить рекламу</translation> @@ -5828,7 +5827,6 @@ <translation id="6347010704471250799">Показувати сповіщення</translation> <translation id="6349101878882523185">Установіть додаток <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Еліптична крива SECG secp256r1 (також відома як ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Експериментальний веб-переглядач (альфа-версія). Деякі функції відсутні або неповні. Щоб повідомити про проблему, натисніть "Довідка" > "Повідомити про проблему…".</translation> <translation id="635609604405270300">Не вимикайте пристрій</translation> <translation id="63566973648609420">Ваші зашифровані дані можуть переглядати лише користувачі, які знають вашу парольну фразу. Парольна фраза не надсилається й не зберігається в Google. Якщо ви забули її або хочете змінити це налаштування, <ph name="BEGIN_LINK" />скиньте синхронізацію<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Деякі підтримувані посилання все ще відкриватимуться в додатку <ph name="APP_NAME" /> або <ph name="APP_NAME_2" />.</translation> @@ -6993,7 +6991,6 @@ <translation id="7434757724413878233">Прискорення миші</translation> <translation id="7434969625063495310">Не вдалося додати сервер для друку. Перевірте його налаштування й повторіть спробу.</translation> <translation id="7436921188514130341">От халепа! Сталася помилка під час перейменування.</translation> -<translation id="7438495332316988804">Щоб знайти стандартний веб-переглядач, введіть запит "Chrome" на панелі запуску.</translation> <translation id="7439519621174723623">Щоб продовжити, додайте назву пристрою</translation> <translation id="7441736921018636843">Щоб змінити це налаштування, видаліть парольну фразу для синхронізації, <ph name="BEGIN_LINK" />скинувши параметри синхронізації<ph name="END_LINK" /></translation> <translation id="7441830548568730290">Інші користувачі</translation> @@ -7571,6 +7568,7 @@ <translation id="7952904276017482715">Очікувався ідентифікатор <ph name="EXPECTED_ID" />, але отримано <ph name="NEW_ID" /></translation> <translation id="7953669802889559161">Методи введення</translation> <translation id="7953955868932471628">Керувати комбінаціями клавіш</translation> +<translation id="7955105108888461311">Запитати особисто</translation> <translation id="7955177647836564772">Якщо Smart Lock увімкнено й телефон розблоковано, PIN-код або пароль вводити не потрібно</translation> <translation id="7956373551960864128">Збережені принтери</translation> <translation id="7957074856830851026">Переглядати інформацію з пристрою, наприклад серійний номер або ідентифікатор об'єкта</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index b73a706..5cec914 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -770,6 +770,7 @@ <translation id="168715261339224929">اپنے تمام آلات پر اپنے بُک مارکس حاصل کرنے کیلئے، مطابقت پذیری آن کریں۔</translation> <translation id="1688867105868176567">سائٹ کا ڈیٹا صاف کریں؟</translation> <translation id="1688935057616748272">ایک حرف ٹائپ کریں</translation> +<translation id="1689333818294560261">عرفی نام</translation> <translation id="168991973552362966">قریبی پرنٹر شامل کریں</translation> <translation id="1689945336726856614">URL& کاپی کریں</translation> <translation id="1692115862433274081">کوئی دوسرا اکاؤنٹ استعمال کریں</translation> @@ -1517,7 +1518,6 @@ <translation id="2329597144923131178">اپنے سبھی آلات پر اپنے بُک مارکس، سرگزشت، پاس ورڈز اور دیگر ترتیبات حاصل کرنے کیلئے سائن ان کریں۔</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> میں محفوظ کردہ آلات کو لوڈ نہیں کیا جا سکا۔ اپنا انٹرنیٹ کنکشن چیک کریں اور دوبارہ کوشش کریں۔</translation> <translation id="2332131598580221120">اسٹور میں دیکھیں</translation> -<translation id="2332192922827071008">ترجیحات کھولیں</translation> <translation id="2332515770639153015">بہتر کردہ محفوظ براؤزنگ آن ہے</translation> <translation id="2332742915001411729">ڈیفالٹ پر دوبارہ ترتیب دیں</translation> <translation id="2332948465534020594">ڈسٹرب نہ کریں کو فعال کیا گیا</translation> @@ -4293,7 +4293,6 @@ <translation id="4893336867552636863">یہ اس آلہ سے آپ کے براؤزنگ ڈیٹا کو مستقل طور پر حذف کر دے گا۔</translation> <translation id="4893454800196085005">اچھی - DVD</translation> <translation id="4893522937062257019">مقفل اسکرین پر</translation> -<translation id="4897496410259333978">مزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔</translation> <translation id="4898011734382862273">سرٹیفیکیٹ "<ph name="CERTIFICATE_NAME" />" ایک سرٹیفیکیشن ادارہ کی نمائندگی کرتی ہے</translation> <translation id="4899052647152077033">رنگوں کو الٹ کریں</translation> <translation id="4899696330053002588">اشتہارات پر مشتمل ہے</translation> @@ -5828,7 +5827,6 @@ <translation id="6347010704471250799">اطلاع دکھائیں</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> انسٹال کریں</translation> <translation id="6354918092619878358">SECG elliptic curve secp256r1 (المعروف ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">تجرباتی (الفا کوالٹی) براؤزر! کچھ خصوصیات غائب یا نامکمل ہیں۔ مسئلے کی اطلاع یہاں دیں: مدد > "مسئلہ کی اطلاع دیں..."۔</translation> <translation id="635609604405270300">آلے کو آن رکھیں</translation> <translation id="63566973648609420">صرف وہ شخص جس کے پاس آپ کا پاس فریز ہے آپ کے مرموز کردہ ڈیٹا کو پڑھ سکتا ہے۔ پاس فریز Google کو نہیں بھیجا جاتا یا اس کے ذریعے اسٹور نہیں کیا جاتا ہے۔ اگر آپ اپنا پاس فریز بھول جاتے ہیں یا اس ترتیب کو تبدیل کرنا چاہتے ہیں تو آپ کو <ph name="BEGIN_LINK" />مطابقت پذیری دوبارہ ترتیب دینے<ph name="END_LINK" /> کی ضرورت ہوگی۔</translation> <translation id="6357305427698525450">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" /> یا <ph name="APP_NAME_2" /> میں کھلیں گے۔</translation> @@ -6994,7 +6992,6 @@ <translation id="7434757724413878233">ماؤس کا ایکسیلریشن</translation> <translation id="7434969625063495310">پرنٹ سرور شامل نہیں کر سکا۔ براہ کرم سرور کی کنفیگریشن کو چیک کریں اور دوبارہ کوشش کریں۔</translation> <translation id="7436921188514130341">افوہ! نام کی تبدیلی کے دوران ایک خرابی تھی۔</translation> -<translation id="7438495332316988804">لانچر میں "Chrome" ٹائپ کر کے معیاری براؤزر تلاش کیا جا سکتا ہے۔</translation> <translation id="7439519621174723623">جاری رکھنے کیلئے ایک آلے کا نام شامل کریں</translation> <translation id="7441736921018636843">اس ترتیب کو تبدیل کرنے کے لیے، اپنی مطابقت پذیری کے پاس فریز کو ہٹانے کے لیے <ph name="BEGIN_LINK" />مطابقت پذیری کو ری سیٹ کریں<ph name="END_LINK" /></translation> <translation id="7441830548568730290">دیگر صارفین</translation> @@ -7575,6 +7572,7 @@ <translation id="7952904276017482715">متوقع ID "<ph name="EXPECTED_ID" />"، لیکن ID تھی "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">ان پٹس</translation> <translation id="7953955868932471628">شارٹ کٹس کا نظم کریں</translation> +<translation id="7955105108888461311">ذاتی طور پر پوچھیں</translation> <translation id="7955177647836564772">Smart Lock کے آن ہونے اور آپ کے فون کے غیر مقفل ہونے پر آپ کو پاس ورڈ یا PIN درج کرنے کی ضرورت نہیں ہے</translation> <translation id="7956373551960864128">آپ کے محفوظ کردہ پرنٹرز</translation> <translation id="7957074856830851026">آلہ کی معلومات دیکھیں، جیسے اس کا نمبر شمار یا اثاثہ ID</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 3fba2ee5..d437266 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -764,6 +764,7 @@ <translation id="168715261339224929">Brauzer varaqlarini barcha qurilmalaringizda ko‘rish uchun sinxronizatsiyani yoqing.</translation> <translation id="1688867105868176567">Sayt ma’lumotlari tozalansinmi?</translation> <translation id="1688935057616748272">Harf kiriting</translation> +<translation id="1689333818294560261">Nik</translation> <translation id="168991973552362966">Yaqin-atrofdagi printerni qo‘shish</translation> <translation id="1689945336726856614">&URLdan nusxa olish</translation> <translation id="1692115862433274081">Boshqa hisobdan foydalanish</translation> @@ -1512,7 +1513,6 @@ <translation id="2329597144923131178">Xatcho‘plar, tarix, parollar va boshqa sozlamalarni barcha qurilmalaringizda sinxronlash uchun hisobingizga kiring.</translation> <translation id="2332115969598251205"><ph name="PRIMARY_EMAIL" /> hisobiga saqlangan qurilmalar yuklanmadi. Internetni tekshiring va qayta urining.</translation> <translation id="2332131598580221120">Internet-do‘konda ochish</translation> -<translation id="2332192922827071008">Parametrlarni ochish</translation> <translation id="2332515770639153015">Saytlarni kuchaytirilgan rejimda xavfsiz kezish rejimi yoniq</translation> <translation id="2332742915001411729">Standart masshtab</translation> <translation id="2332948465534020594">Bezovta qilinmasin rejimi yoqildi</translation> @@ -4281,7 +4281,6 @@ <translation id="4893336867552636863">Ushbu qurilmadagi brauzer faoliyati haqidagi ma’lumotlar butunlay o‘chiriladi.</translation> <translation id="4893454800196085005">Yaxshi – DVD</translation> <translation id="4893522937062257019">Qulflangan ekranda</translation> -<translation id="4897496410259333978">Batafsil axborot uchun administratorga murojaat qiling.</translation> <translation id="4898011734382862273">“<ph name="CERTIFICATE_NAME" />” sertifikati Sertifikatlash markazi tomonidan berilgan</translation> <translation id="4899052647152077033">Teskari ranglar</translation> <translation id="4899696330053002588">Reklama mavjud</translation> @@ -5815,7 +5814,6 @@ <translation id="6347010704471250799">Bildirishnoma chiqarish</translation> <translation id="6349101878882523185"><ph name="APP_NAME" /> ilovasini oʻrnatish</translation> <translation id="6354918092619878358">SECG elliptik egri chiziqli secp256r1 (ANSI X9.62 prime256v1, NIST P-256) ochiq kalit algoritmi</translation> -<translation id="6355789186038748882">Tajribaviy (alfa nashrdagi) brauzer! Ayrim funksiyalar ishlamasligi yoki mavjud boʻlmasligi mumkin. Muammolar yuzasidan Yordam > “Muammo haqida xabar berish” orqali murojaat qiling.</translation> <translation id="635609604405270300">Qurilma yoniq tursin</translation> <translation id="63566973648609420">Shifrlangan ma’lumotlaringizni faqat kodli iborani biladiganlar ko‘ra oladi. Bu iborani Google bilmaydi va o‘z serverlarida saqlamaydi. Agar kodli iborani unutsangiz yoki bu sozlamani o‘zgaritrmoqchi bo‘lsangiz <ph name="BEGIN_LINK" />sinxronizatsiya sozlamalarini qayta tiklashingiz<ph name="END_LINK" /> lozim.</translation> <translation id="6357305427698525450">Ayrim tegishli havolalar <ph name="APP_NAME" /> yoki <ph name="APP_NAME_2" /> ilovalarida ochilaveradi.</translation> @@ -6974,7 +6972,6 @@ <translation id="7434757724413878233">Sichqonchani tezlatish</translation> <translation id="7434969625063495310">Bosma server kiritilmadi. Server sozlamalarini tekshiring va qaytadan urining.</translation> <translation id="7436921188514130341">Ana xolos! Nomni o‘zgartirishda xatolik yuz berdi.</translation> -<translation id="7438495332316988804">Standart brauzerni ochish uchun Launcherga “Chrome” deb yozing.</translation> <translation id="7439519621174723623">Davom etish uchun qurilma kiriting</translation> <translation id="7441736921018636843">Bu sozlamani o‘zgartirish uchun, avval, <ph name="BEGIN_LINK" />sinxronizatsiyani tiklang<ph name="END_LINK" /> va parolini olib tashlang</translation> <translation id="7441830548568730290">Boshqa foydalanuvchilar</translation> @@ -7551,6 +7548,7 @@ <translation id="7952904276017482715">Kutilgan identifikator: “<ph name="EXPECTED_ID" />”, qabul qilingan identifikator: “<ph name="NEW_ID" />”</translation> <translation id="7953669802889559161">Manbalar</translation> <translation id="7953955868932471628">Yorliqlarni boshqarish</translation> +<translation id="7955105108888461311">Shaxsan soʻrash</translation> <translation id="7955177647836564772">Smart Lock yoqilgan va telefoningiz qulfdan chiqarilgan boʻlsa, parol yoki PIN kodni kiritishingiz shart emas</translation> <translation id="7956373551960864128">Saqlangan printerlar</translation> <translation id="7957074856830851026">Seriya raqami va obyekt identifikatori kabi qurilma axborotini koʻrish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index ff101bc..92c1e9e 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -777,6 +777,7 @@ <translation id="168715261339224929">Để sử dụng dấu trang trên tất cả các thiết bị của bạn, hãy bật đồng bộ hóa.</translation> <translation id="1688867105868176567">Xóa dữ liệu trang web?</translation> <translation id="1688935057616748272">Nhập một chữ cái</translation> +<translation id="1689333818294560261">Biệt hiệu</translation> <translation id="168991973552362966">Thêm máy in ở gần</translation> <translation id="1689945336726856614">Sao chép &URL</translation> <translation id="1692115862433274081">Sử dụng một tài khoản khác</translation> @@ -1535,7 +1536,6 @@ <translation id="2329597144923131178">Đăng nhập để sử dụng dấu trang, lịch sử hoạt động, mật khẩu và các tùy chọn cài đặt khác trên tất cả thiết bị của bạn.</translation> <translation id="2332115969598251205">Không thể tải thiết bị đã được lưu vào <ph name="PRIMARY_EMAIL" />. Hãy kiểm tra kết nối Internet rồi thử lại.</translation> <translation id="2332131598580221120">Xem trong cửa hàng</translation> -<translation id="2332192922827071008">Mở Tùy chọn</translation> <translation id="2332515770639153015">Tính năng Duyệt web an toàn có tăng cường bảo vệ đang bật</translation> <translation id="2332742915001411729">Đặt lại về mặc định</translation> <translation id="2332948465534020594">Đã bật chế độ Không làm phiền</translation> @@ -1810,6 +1810,7 @@ <translation id="2579596474754516455">Quét hình ảnh PDF để chuyển đổi văn bản cho trình đọc màn hình khi cần</translation> <translation id="2580889980133367162">Luôn cho phép <ph name="HOST" /> tải xuống nhiều tệp</translation> <translation id="258095186877893873">Lâu</translation> +<translation id="2581455244799175627">Tìm hiểu thêm về việc cho phép cookie của bên thứ ba</translation> <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Nền tảng <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation> <translation id="2584109212074498965">Không tìm thấy vé Kerberos. Hãy thử lại hoặc liên hệ với quản trị viên thiết bị của tổ chức bạn. (Mã lỗi <ph name="ERROR_CODE" />).</translation> <translation id="2585724835339714757">Thẻ này đang chia sẻ màn hình của bạn.</translation> @@ -2373,6 +2374,7 @@ <translation id="3082780749197361769">Thẻ này đang sử dụng máy ảnh hoặc micrô của bạn.</translation> <translation id="3083193146044397360">Tạm thời bị chặn để bảo vệ an toàn của bạn</translation> <translation id="3083899879156272923">Di chuyển màn hình trong khi giữ chuột ở giữa màn hình</translation> +<translation id="3083998949001524405">Được phép sử dụng cookie của bên thứ ba</translation> <translation id="3084548735795614657">Thả để cài đặt</translation> <translation id="3084771660770137092">Hoặc Chrome đã hết bộ nhớ hoặc việc xử lý trang web đã bị chấm dứt vì lý do nào đó khác. Để tiếp tục, hãy tải lại hoặc truy cập vào trang khác.</translation> <translation id="3085412380278336437">Trang web có thể sử dụng máy ảnh của bạn</translation> @@ -3078,6 +3080,7 @@ <translation id="3764753550716962406">Cho phép Google sử dụng giỏ hàng của bạn để tìm chiết khấu?</translation> <translation id="3764974059056958214">{COUNT,plural, =1{Đang gửi <ph name="ATTACHMENTS" /> tới thiết bị <ph name="DEVICE_NAME" />}other{Đang gửi <ph name="ATTACHMENTS" /> tới thiết bị <ph name="DEVICE_NAME" />}}</translation> <translation id="3765246971671567135">Không thể đọc chính sách về chế độ minh họa ngoại tuyến.</translation> +<translation id="3765696567014520261">Các trang web không thể dùng cookie để giám sát hoạt động duyệt web của bạn trên nhiều trang web, chẳng hạn như để điều chỉnh quảng cáo cho phù hợp với bạn. Các tính năng trên một số trang web có thể không hoạt động</translation> <translation id="3766687283066842296">Tìm hiểu thêm về Trung tâm điều khiển điện thoại</translation> <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation> <translation id="377050016711188788">Kem</translation> @@ -3130,6 +3133,7 @@ <translation id="3807747707162121253">&Huỷ</translation> <translation id="3808202562160426447">Làm mờ nội dung trong nền</translation> <translation id="3808443763115411087">Phát triển ứng dụng Android cho Crostini</translation> +<translation id="3808617121485025547">Tìm hiểu thêm về việc chặn cookie của bên thứ ba</translation> <translation id="38089336910894858">Hiển thị cảnh báo trước khi thoát bằng ⌘Q</translation> <translation id="3809272675881623365">Con thỏ</translation> <translation id="3809280248639369696">Ánh trăng</translation> @@ -4313,7 +4317,6 @@ <translation id="4893336867552636863">Thao tác này sẽ xóa vĩnh viễn dữ liệu duyệt web của bạn khỏi thiết bị này.</translation> <translation id="4893454800196085005">Tốt – DVD</translation> <translation id="4893522937062257019">Trên màn hình khóa</translation> -<translation id="4897496410259333978">Để biết thêm thông tin, hãy liên hệ với quản trị viên của bạn.</translation> <translation id="4898011734382862273">Chứng chỉ "<ph name="CERTIFICATE_NAME" />" đại diện cho một tổ chức phát hành chứng chỉ</translation> <translation id="4899052647152077033">Đảo ngược màu</translation> <translation id="4899696330053002588">Chứa quảng cáo</translation> @@ -5849,7 +5852,6 @@ <translation id="6347010704471250799">Hiện thông báo</translation> <translation id="6349101878882523185">Cài đặt <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">Đường cong elip SECG secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">Trình duyệt thử nghiệm (phiên bản alpha)! Một số tính năng bị thiếu hoặc không đầy đủ. Vui lòng báo cáo sự cố tại phần: Trợ giúp > "Báo cáo sự cố...".</translation> <translation id="635609604405270300">Luôn bật thiết bị</translation> <translation id="63566973648609420">Chỉ người có cụm mật khẩu mới có thể đọc dữ liệu được mã hóa của bạn. Cụm mật khẩu không được gửi tới hoặc được lưu trữ bởi Google. Nếu bạn quên cụm mật khẩu hoặc muốn thay đổi cài đặt này, bạn sẽ cần <ph name="BEGIN_LINK" />đặt lại đồng bộ hóa<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" /> hoặc <ph name="APP_NAME_2" />.</translation> @@ -7015,7 +7017,6 @@ <translation id="7434757724413878233">Tăng tốc chuột</translation> <translation id="7434969625063495310">Không thể thêm máy chủ máy in. Vui lòng kiểm tra cấu hình của máy chủ rồi thử lại.</translation> <translation id="7436921188514130341">Ôi, hỏng! Đã xảy ra lỗi trong khi đổi tên.</translation> -<translation id="7438495332316988804">Bạn có thể tìm thấy trình duyệt thông thường bằng cách nhập "Chrome" vào Trình chạy.</translation> <translation id="7439519621174723623">Hãy thêm tên thiết bị để tiếp tục</translation> <translation id="7441736921018636843">Để thay đổi mục cài đặt này, hãy <ph name="BEGIN_LINK" />đặt lại tính năng đồng bộ hóa<ph name="END_LINK" /> để xóa cụm mật khẩu đồng bộ hóa của bạn</translation> <translation id="7441830548568730290">Người dùng khác</translation> @@ -7596,6 +7597,7 @@ <translation id="7952904276017482715">ID mong muốn "<ph name="EXPECTED_ID" />", nhưng ID phát hiện là "<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Phương thức nhập</translation> <translation id="7953955868932471628">Quản lý lối tắt</translation> +<translation id="7955105108888461311">Hỏi trực tiếp</translation> <translation id="7955177647836564772">Nếu bật Smart Lock và mở khoá điện thoại, bạn sẽ không cần nhập mật khẩu hoặc mã PIN</translation> <translation id="7956373551960864128">Các máy in bạn đã lưu</translation> <translation id="7957074856830851026">Xem thông tin thiết bị, chẳng hạn như số sê-ri hoặc mã tài sản</translation> @@ -8097,6 +8099,7 @@ <translation id="8405046151008197676">Xem những điểm nổi bật của bản cập nhật mới nhất</translation> <translation id="8407199357649073301">Cấp độ nhật ký:</translation> <translation id="8408270600235826886">Bạn có thể kiểm soát những dữ liệu nào được chia sẻ với Google. Bạn có thể thay đổi lựa chọn này bất cứ lúc nào trong phần Cài đặt. <ph name="BEGIN_LINK" />Chính sách quyền riêng tư<ph name="END_LINK" /> của Google chi phối việc dùng dữ liệu.</translation> +<translation id="84098433273647700">Giao diện hiện tại mà bạn đã cài đặt.</translation> <translation id="8410775397654368139">Google Play</translation> <translation id="8412136526970428322">Đã cho phép <ph name="PERMISSION" /> và <ph name="COUNT" /> quyền khác</translation> <translation id="8413385045638830869">Hỏi trước (khuyên dùng)</translation> @@ -8259,6 +8262,7 @@ <translation id="8571687764447439720">Thêm vé Kerberos</translation> <translation id="8574990355410201600">Luôn cho phép phát âm thanh trên <ph name="HOST" /></translation> <translation id="8575286410928791436">Giữ phím <ph name="KEY_EQUIVALENT" /> để thoát</translation> +<translation id="8576359558126669548">Tìm hiểu thêm về việc chặn cookie của bên thứ ba ở Chế độ ẩn danh</translation> <translation id="8576885347118332789">{NUM_TABS,plural, =1{Thêm thẻ vào danh sách đọc}other{Thêm các thẻ vào danh sách đọc}}</translation> <translation id="8577052309681449949">Tự động nhấp, kích thước con trỏ, màu con trỏ và nhiều tính năng khác</translation> <translation id="8578639784464423491">Không được vượt quá 99 chữ cái</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 4a30750..2205826 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">在新标签页中打开原始图片(&I)</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{请在 1 周内更新 <ph name="DEVICE_TYPE" />}other{请在 {NUM_WEEKS} 周内更新 <ph name="DEVICE_TYPE" />}}</translation> <translation id="1056898198331236512">警告</translation> +<translation id="1056980582064308040">更改设置会重启此热点。使用此热点的设备将断开连接。</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{请输入您的新 PIN 码。PIN 码必须包含至少 1 个字符,且可以包含字母、数字和其他字符。}other{请输入您的新 PIN 码。PIN 码必须包含至少 # 个字符,且可以包含字母、数字和其他字符。}}</translation> <translation id="1059484610606223931">超文本传输协议 (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272508081857842302">如何打开<ph name="BEGIN_LINK" />支持的链接<ph name="END_LINK" /></translation> <translation id="1272978324304772054">此用户帐号不属于设备所注册的域。如果想注册其他域,那么您首先需要执行设备恢复。</translation> +<translation id="1273937721055267968">屏蔽 <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookie 及其他网站数据</translation> <translation id="1275718070701477396">已选择</translation> <translation id="1276994519141842946">无法卸载 <ph name="APP_NAME" /></translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">要启用 ADB 调试,您必须重启此<ph name="DEVICE_TYPE" />。要停用它,则必须将此设备恢复出厂设置。</translation> <translation id="1327527584824210101">使用通行密钥</translation> <translation id="1327794256477341646">所有需要使用您的位置信息的功能都将无法正常运行</translation> +<translation id="1329466763986822896">加强对此热点的隐私保护</translation> <translation id="1331977651797684645">是我本人。</translation> <translation id="1333489022424033687">请清除您设备上存储的其他网站的数据,否则 <ph name="ORIGIN" /> 上的某些功能可能无法正常运行</translation> <translation id="1333965224356556482">不允许网站查看您所在的位置</translation> @@ -588,6 +591,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{您的无痕式窗口不会重新打开。}other{您的 # 个无痕式窗口不会重新打开。}}</translation> <translation id="1546280085599573572">此扩展程序更改了您点击“主页”按钮后系统显示的页面。</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" />想安装一款能够执行以下操作的<ph name="EXTENSION_TYPE" />:</translation> +<translation id="1547123415014299762">允许使用第三方 Cookie</translation> <translation id="1547808936554660006">我已知悉,执行 Powerwash 不会移除已安装的 eSIM 卡配置文件</translation> <translation id="1547936895218027488">点击侧边栏图标即可打开侧边栏</translation> <translation id="1549275686094429035">已启用 ARC</translation> @@ -761,6 +765,7 @@ <translation id="168715261339224929">要想将您的书签同步到您的所有设备上,请开启同步功能。</translation> <translation id="1688867105868176567">要清除网站数据吗?</translation> <translation id="1688935057616748272">请输入一个字母</translation> +<translation id="1689333818294560261">昵称</translation> <translation id="168991973552362966">添加附近的打印机</translation> <translation id="1689945336726856614">复制网址(&U)</translation> <translation id="1692115862433274081">使用其他帐号</translation> @@ -1389,6 +1394,7 @@ <translation id="2247870315273396641">语音试听</translation> <translation id="2249111429176737533">在标签页窗口中打开</translation> <translation id="2249605167705922988">例如:1-5、8、11-13</translation> +<translation id="2249635629516220541">自定义要让网站使用什么信息向您展示广告</translation> <translation id="2251218783371366160">使用系统查看器打开</translation> <translation id="225163402930830576">刷新网络</translation> <translation id="2251809247798634662">打开新的无痕式窗口</translation> @@ -1503,7 +1509,6 @@ <translation id="2329597144923131178">登录后可获取您所有设备上保存的书签、历史记录、密码和其他设置。</translation> <translation id="2332115969598251205">无法加载已保存到 <ph name="PRIMARY_EMAIL" /> 的设备。请检查互联网连接情况,然后再试一次。</translation> <translation id="2332131598580221120">在应用店中查看</translation> -<translation id="2332192922827071008">打开偏好设置</translation> <translation id="2332515770639153015">“增强型安全浏览”已开启</translation> <translation id="2332742915001411729">重置为默认设置</translation> <translation id="2332948465534020594">已启用“勿扰”模式</translation> @@ -1836,6 +1841,7 @@ <translation id="2640299212685523844">使用 GTK</translation> <translation id="264083724974021997">连接到您的手机 - 对话框</translation> <translation id="2642111877055905627">足球</translation> +<translation id="2643064289437760082">您可随时通过删除浏览数据来删除广告衡量数据</translation> <translation id="2643698698624765890">您可以通过点击“窗口”菜单中的“扩展程序”,管理您的扩展程序。</translation> <translation id="2645047101481282803">您的设备由 <ph name="PROFILE_NAME" /> 管理</translation> <translation id="2645435784669275700">Chrome 操作系统</translation> @@ -2295,6 +2301,7 @@ <translation id="3036327949511794916">退还此 <ph name="DEVICE_TYPE" /> 的截止日期已过。</translation> <translation id="3036546437875325427">启用 Flash</translation> <translation id="3037754279345160234">无法对加入网域的配置进行解析,请与您的管理员联系。</translation> +<translation id="3038272154009688107">查看所有网站</translation> <translation id="3038612606416062604">手动添加打印机</translation> <translation id="3039491566278747710">未能在此设备上安装离线政策。</translation> <translation id="3043016484125065343">登录即可查看您的书签</translation> @@ -2531,6 +2538,7 @@ <translation id="3289668031376215426">自动大写</translation> <translation id="3289856944988573801">要检查是否有更新,请使用以太网或 WLAN。</translation> <translation id="3290249595466894471">还会发送网页、下载内容、扩展程序活动和系统信息的少量样本,以帮助发现新威胁</translation> +<translation id="3293181007446299124">您的浏览记录会被私密地保留在您的设备上,并且系统会延迟发送报告以保护您的身份信息</translation> <translation id="3293644607209440645">发送此页面</translation> <translation id="32939749466444286">无法启动 Linux 容器。请重试。</translation> <translation id="3294437725009624529">访客</translation> @@ -3310,6 +3318,7 @@ <translation id="3984431586879874039">允许此网站查看您的安全密钥?</translation> <translation id="398477389655464998">复制指向突出显示的内容的链接</translation> <translation id="3984862166739904574">快速解答定义</translation> +<translation id="3985022125189960801">若要允许该网站推测您的喜好,请将其重新添加到网站列表中</translation> <translation id="3987544746655539083">继续禁止此网站使用您的位置信息</translation> <translation id="3987938432087324095">抱歉,没听清。</translation> <translation id="3987993985790029246">复制链接</translation> @@ -3685,6 +3694,7 @@ <translation id="4366138410738374926">已开始打印</translation> <translation id="4367513928820380646">查看已撤消的权限</translation> <translation id="4369215744064167350">网站请求已获批准</translation> +<translation id="4369735607080757018">为了衡量各自的广告效果,网站之间会分享有限类型的数据,例如一天当中向您展示广告的时段</translation> <translation id="4370975561335139969">您输入的电子邮件地址和密码不匹配。</translation> <translation id="4374831787438678295">Linux 安装程序</translation> <translation id="4375035964737468845">打开已下载的文件</translation> @@ -3705,6 +3715,7 @@ <translation id="4385146930797718821">屏幕截图已复制到剪贴板</translation> <translation id="4385905942116811558">正在搜索蓝牙设备和 USB 设备</translation> <translation id="4387890294700445764">已泄露的密码</translation> +<translation id="4388650384344483842">请输入至少 8 个字符</translation> <translation id="4389091756366370506">用户 <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />、<ph name="SECOND_SWITCH" />、<ph name="THIRD_SWITCH" /> 和另外 <ph name="NUMBER_OF_OTHER_SWITCHES" /> 个开关键</translation> <translation id="439266289085815679">蓝牙配置由 <ph name="USER_EMAIL" /> 控制。</translation> @@ -4026,6 +4037,7 @@ <translation id="4666472247053585787">在 <ph name="DEVICE_TYPE" /> 上查看手机中的通知</translation> <translation id="4666911709726371538">更多应用</translation> <translation id="4667027203988048332">我们会使用哪些数据:</translation> +<translation id="4668279686271488041">系统会定期从您的设备中删除广告衡量数据</translation> <translation id="4672759829555593783">立即打开“<ph name="FILE_NAME" />”文件</translation> <translation id="46733273239502219">已安装应用中的离线数据也会被清除</translation> <translation id="4673442866648850031">取出触控笔时打开触控笔工具</translation> @@ -4219,6 +4231,7 @@ <translation id="485480310608090163">更多设置和权限</translation> <translation id="4858913220355269194">足球</translation> <translation id="4862642413395066333">签名 OCSP 响应</translation> +<translation id="4863702650881330715">扩展兼容性</translation> <translation id="4863769717153320198">有效分辨率:<ph name="WIDTH" /> x <ph name="HEIGHT" />(默认)</translation> <translation id="4864805589453749318">请选择让哪位家长授权您添加学校帐号。</translation> <translation id="486635084936119914">下载特定类型的文件后自动将其打开</translation> @@ -4267,7 +4280,6 @@ <translation id="4893336867552636863">这会将您的浏览数据从这台设备上永久删除。</translation> <translation id="4893454800196085005">良好 - DVD</translation> <translation id="4893522937062257019">屏幕锁定时</translation> -<translation id="4897496410259333978">如需了解详情,请与您的管理员联系。</translation> <translation id="4898011734382862273">证书“<ph name="CERTIFICATE_NAME" />”代表一个证书授权中心</translation> <translation id="4899052647152077033">反色</translation> <translation id="4899696330053002588">包含广告</translation> @@ -4465,6 +4477,7 @@ <translation id="5094721898978802975">与协作的本机应用通信</translation> <translation id="5097002363526479830">无法连接到网络“<ph name="NAME" />”:<ph name="DETAILS" /></translation> <translation id="5097306410549350357">详细了解如何使用位置信息</translation> +<translation id="5097349930204431044">您访问的网站能推测您的喜好,然后在您继续浏览时向您展示建议的广告</translation> <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">光标停止移动时自动点击</translation> <translation id="5101683448725092498">备份您的资料</translation> @@ -4647,6 +4660,7 @@ <translation id="5275352920323889391">狗</translation> <translation id="527605719918376753">将此标签页静音</translation> <translation id="527605982717517565">始终允许使用 <ph name="HOST" /> 上的 JavaScript</translation> +<translation id="5276357196618041410">登录后才能保存配置</translation> <translation id="5277127016695466621">显示侧边栏</translation> <translation id="5278823018825269962">状态 ID</translation> <translation id="5279600392753459966">阻止所有插件</translation> @@ -5798,7 +5812,6 @@ <translation id="6347010704471250799">显示通知</translation> <translation id="6349101878882523185">安装“<ph name="APP_NAME" />”</translation> <translation id="6354918092619878358">SECG 椭圆曲线 secp256r1(又称 ANSI X9.62 prime256v1 或 NIST P-256)</translation> -<translation id="6355789186038748882">实验性(Alpha 版)浏览器!部分功能缺失或不完整。若要报告问题,请使用“帮助”>“报告问题…”。</translation> <translation id="635609604405270300">请勿关闭设备</translation> <translation id="63566973648609420">只有知道您密码的人才能读取您的已加密数据。系统不会将该密码发送给 Google,Google 也不会存储该密码。如果您忘记了密码或想更改此设置,则需<ph name="BEGIN_LINK" />重置同步<ph name="END_LINK" />。</translation> <translation id="6357305427698525450">部分受支持的链接仍会在“<ph name="APP_NAME" />”或“<ph name="APP_NAME_2" />”中打开。</translation> @@ -6138,6 +6151,7 @@ <translation id="6670767097276846646">某些扩展程序可以向 Chrome 添加搜索引擎</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 个地址}other{# 个地址}}</translation> <translation id="6671497123040790595">正在设置为受 <ph name="MANAGER" /> 管理</translation> +<translation id="6672917148207387131">添加 <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">若要开始同步,请输入您的密码</translation> <translation id="6675665718701918026">已连接指针设备</translation> @@ -6221,6 +6235,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" />(无痕)</translation> <translation id="6756157672127672536">通过“文件”应用,您可以快速访问自己保存在 Google 云端硬盘、外部存储空间或 Chrome 操作系统设备上的文件。</translation> <translation id="6756643207511618722">语音引擎</translation> +<translation id="6757431299485455321">有助于其他设备发现此热点。</translation> <translation id="6758056191028427665">让我们知道您的满意度。</translation> <translation id="6759193508432371551">恢复出厂设置</translation> <translation id="6761431452438552910">请确保您的蓝牙设备处于配对模式且就在附近。应仅与您信任的设备配对。</translation> @@ -6320,6 +6335,7 @@ <translation id="6833479554815567477">此标签页已从“<ph name="GROUP_NAME" />”组中移除 - 该组包含<ph name="GROUP_CONTENTS" /></translation> <translation id="683373380308365518">改用智能且安全的浏览器</translation> <translation id="6833996806551876956">隐私沙盒试用</translation> +<translation id="6835712061486505758">创建 WLAN 热点,以便向其他设备提供互联网连接。<ph name="BEGIN_LINK_LEARN_MORE" />了解详情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">请连接到互联网,以便更新您的<ph name="DEVICE_TYPE" />。</translation> <translation id="6839225236531462745">证书删除错误</translation> <translation id="6839916869147598086">登录发生变化</translation> @@ -6481,6 +6497,7 @@ <translation id="697508444536771064">关闭 Linux</translation> <translation id="6975361011348772931">已请求读取和更改</translation> <translation id="6978121630131642226">搜索引擎</translation> +<translation id="6978717888677691380">您已屏蔽的网站</translation> <translation id="6979041727349121225">节能模式</translation> <translation id="6979044105893951891">启动和退出受管理访客会话</translation> <translation id="6979440798594660689">静音(默认)</translation> @@ -6572,6 +6589,7 @@ <translation id="7047059339731138197">选择背景</translation> <translation id="7048457618657122233">将链接分享给<ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">要保留文件吗?</translation> +<translation id="7050037487872780845">热点配置无效</translation> <translation id="7052237160939977163">发送性能跟踪数据</translation> <translation id="7053983685419859001">禁止</translation> <translation id="7055152154916055070">已禁止重定向:</translation> @@ -6776,6 +6794,7 @@ <translation id="7258192266780953209">转换</translation> <translation id="7258225044283673131">此应用无响应。请选择“强制关闭”以关闭此应用。</translation> <translation id="7260186537988033909">自助服务终端和数字标牌设备注册已完成</translation> +<translation id="7260367682327802201">您的 Android 设备可能包含类似的设置。如果您在 Chrome 中和 Android 设备上开启了“广告衡量”,相关公司或许就能对在您访问的网站和使用的应用中投放的广告进行效果衡量。</translation> <translation id="7262004276116528033">此登录服务由 <ph name="SAML_DOMAIN" /> 托管</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{已撤消 1 个网站的权限}other{已撤消 {NUM_SITES} 个网站的权限}}</translation> <translation id="7264695323040866038">始终使用<ph name="APP" />应用打开受支持的网站链接?</translation> @@ -6919,6 +6938,7 @@ <translation id="7406912950279255498">颜色反转模式</translation> <translation id="7407430846095439694">导入并绑定</translation> <translation id="7407504355934009739">多数人会屏蔽来自此网站的通知</translation> +<translation id="7408080603962564527">他人将能看到此热点</translation> <translation id="740810853557944681">添加打印服务器</translation> <translation id="7409549334477097887">特大</translation> <translation id="7409599290172516453">近期照片</translation> @@ -6957,7 +6977,6 @@ <translation id="7434757724413878233">鼠标加速</translation> <translation id="7434969625063495310">无法添加打印服务器。请检查服务器的配置,然后重试。</translation> <translation id="7436921188514130341">糟糕!重命名过程中出错了。</translation> -<translation id="7438495332316988804">您可通过在启动器中输入“Chrome”来找到标准浏览器。</translation> <translation id="7439519621174723623">您必须添加设备名称才能继续操作</translation> <translation id="7441736921018636843">要更改此设置,请<ph name="BEGIN_LINK" />重置同步功能<ph name="END_LINK" />以移除同步密码</translation> <translation id="7441830548568730290">其他用户</translation> @@ -7234,6 +7253,7 @@ <translation id="7684718995427157417">要创建和测试您的应用,请启用 Android 调试桥 (ADB)。请注意,此操作会允许安装未经 Google 验证的 Android 应用,而且您会需要将设备恢复出厂设置才能停用 ADB。</translation> <translation id="7685049629764448582">JavaScript 使用的内存</translation> <translation id="7685087414635069102">必须输入 PIN 码</translation> +<translation id="7686086654630106285">详细了解网站建议的广告</translation> <translation id="7686581688229391955">选择关闭可允许在此网站上使用扩展程序</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">再次输入新密码</translation> @@ -7255,6 +7275,7 @@ <translation id="7704317875155739195">自动补全搜索字词和网址</translation> <translation id="7704521324619958564">打开 Play 商店</translation> <translation id="7705276765467986571">无法加载书签模型。</translation> +<translation id="7705334495398865155">随机分配硬件 ID (BSSID) 可防止他人跟踪此设备。</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">此网站已被禁止使用移动传感器。</translation> <translation id="7707922173985738739">使用移动数据</translation> @@ -7448,6 +7469,7 @@ <translation id="7881483672146086348">查看帐号</translation> <translation id="7883792253546618164">可随时退订。</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{查看 1 个发送了很多通知的网站}other{查看 {NUM_SITES} 个发送了很多通知的网站}}</translation> +<translation id="7884446017008693258">热点设置</translation> <translation id="788453346724465748">正在加载帐号信息…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 项内容}other{# 项内容}}</translation> <translation id="7886605625338676841">eSIM 卡</translation> @@ -7535,6 +7557,7 @@ <translation id="7952904276017482715">预期 ID 是“<ph name="EXPECTED_ID" />”,但实际 ID 是“<ph name="NEW_ID" />”</translation> <translation id="7953669802889559161">输入法</translation> <translation id="7953955868932471628">管理快捷方式</translation> +<translation id="7955105108888461311">当面申请</translation> <translation id="7955177647836564772">如果 Smart Lock 已开启且您的手机处于未锁定状态,您无需输入密码或 PIN 码</translation> <translation id="7956373551960864128">已保存的打印机</translation> <translation id="7957074856830851026">查看设备信息,例如设备的序列号或资产 ID</translation> @@ -7673,6 +7696,7 @@ <ph name="BEGIN_PARAGRAPH3" />您可在“设置”部分中关闭此服务。<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">标签页</translation> <translation id="8076835018653442223">您的管理员已禁止访问您设备上的本地文件</translation> +<translation id="8077120325605624147">您访问的任何网站都可向您展示任何广告</translation> <translation id="80798452873915119">网站可以询问能否管理您的所有显示屏上的窗口</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">您的会话由 <ph name="MANAGER_NAME" /> 管理。管理员可以删除您的个人资料和监控您的网络流量。</translation> @@ -8185,6 +8209,7 @@ <translation id="8557180006508471423">在 Mac 上的“定位服务”中开启“Google Chrome”</translation> <translation id="8557856025359704738">下次下载将于 <ph name="NEXT_DATE_DOWNLOAD" />进行。</translation> <translation id="8559858985063901027">密钥</translation> +<translation id="8559961053328923750">Chrome 会限制网站为衡量广告效果而通过浏览器分享的数据总量</translation> <translation id="8560327176991673955">{COUNT,plural, =0{在新窗口中打开全部书签(&N)}=1{在新窗口中打开(&N)}other{在新窗口中打开全部({COUNT} 个)书签(&N)}}</translation> <translation id="8561206103590473338">大象</translation> <translation id="8561565784790166472">继续操作有风险,请三思</translation> @@ -8326,6 +8351,7 @@ <translation id="8678933587484842200">您希望通过何种方式启动此应用?</translation> <translation id="8680251145628383637">登录后即可在您的任何设备上获取自己的书签、历史记录、密码和其他设置。此外,您还会自动登录到 Google 服务。</translation> <translation id="8681614230122836773">Chrome 在您的计算机上发现了有害软件</translation> +<translation id="8681886425883659911">在已知会展示侵扰性或误导性广告的网站上屏蔽广告</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> 已连接且已准备就绪</translation> <translation id="8687103160920393343">取消下载 <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">可用</translation> @@ -8696,6 +8722,7 @@ <translation id="9021662811137657072">检测到病毒</translation> <translation id="902236149563113779">网站通常会跟踪您的摄像头位置以实现 AR 功能(例如游戏或方向提醒)</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在此计算机上使用该帐号。</translation> +<translation id="9022871169049522985">网站和广告主可以衡量其广告的效果</translation> <translation id="9023015617655685412">为此标签页添加书签…</translation> <translation id="9023909777842748145">关闭这项功能,设备仍然可以发送基本服务(例如系统更新和安全服务)所需的信息。</translation> <translation id="9024127637873500333">在新标签页中打开(&O)</translation> @@ -8825,6 +8852,7 @@ <translation id="9128335130883257666">打开<ph name="INPUT_METHOD_NAME" />的“设置”页面</translation> <translation id="9128870381267983090">连接到网络</translation> <translation id="9130015405878219958">输入的模式无效。</translation> +<translation id="9131209053278896908">已屏蔽的网站会显示在这里</translation> <translation id="9131487537093447019">向蓝牙设备发送消息,以及接收来自蓝牙设备的消息。</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 个书签}other{# 个书签}}</translation> <translation id="9134066738478820307">网站可以使用标识符来播放受保护内容</translation> @@ -8878,6 +8906,7 @@ <translation id="9180281769944411366">此过程可能需要几分钟的时间。正在启动 Linux 容器。</translation> <translation id="9180380851667544951">该网站可能会共享您的屏幕</translation> <translation id="9182556968660520230">不允许网站播放受保护内容</translation> +<translation id="9183331776983279456">Chrome 会自动删除保留时长超过 4 周的网站。再次访问的网站可能会重新出现在列表中。您也可屏蔽某个网站,拒绝其展示建议的广告。</translation> <translation id="918352324374649435">{COUNT,plural, =1{应用}other{# 个应用}}</translation> <translation id="9186963452600581158">使用孩子的 Google 帐号登录</translation> <translation id="9187967020623675250">按的键不匹配。按任意键即可<ph name="RESPONSE" />。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 22415b6..976937a 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">在新分頁中開啟原始圖片(&I)</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{請在 1 星期內更新 <ph name="DEVICE_TYPE" />}other{請在 {NUM_WEEKS} 星期內更新 <ph name="DEVICE_TYPE" />}}</translation> <translation id="1056898198331236512">警告</translation> +<translation id="1056980582064308040">如果變更設定,系統將重新啟動熱點,屆時裝置與熱點的連線將會解除連結。</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{請輸入新 PIN。PIN 必須包含至少一個字元,可以使用字母、數字和其他字元。}other{請輸入新 PIN。PIN 必須包含至少 # 個字元,可以使用字母、數字和其他字元。}}</translation> <translation id="1059484610606223931">超文本傳輸協定 (HTTPS)</translation> @@ -305,6 +306,7 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272508081857842302">開啟<ph name="BEGIN_LINK" />支援的連結<ph name="END_LINK" /></translation> <translation id="1272978324304772054">裝置註冊的網域中沒有這個使用者帳戶。如果您要使用其他網域進行註冊,必須先完成裝置修復操作。</translation> +<translation id="1273937721055267968">封鎖 <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookie 和其他網站數據</translation> <translation id="1275718070701477396">已選取</translation> <translation id="1276994519141842946">無法解除安裝 <ph name="APP_NAME" /></translation> @@ -356,6 +358,7 @@ <translation id="1327495825214193325">必須重新啟動 <ph name="DEVICE_TYPE" /> 才能啟用 ADB 偵錯。如要停用 ADB 偵錯,則需要將裝置回復原廠設定。</translation> <translation id="1327527584824210101">使用您的密鑰</translation> <translation id="1327794256477341646">需要所在位置的功能將無法運作</translation> +<translation id="1329466763986822896">改善此熱點的私隱</translation> <translation id="1331977651797684645">這是我本人。</translation> <translation id="1333489022424033687">如不清除其他網站在裝置上儲存的資料,<ph name="ORIGIN" /> 的部分功能可能無法正常運作</translation> <translation id="1333965224356556482">不允許網站查看您的位置</translation> @@ -596,6 +599,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{您的無痕式視窗不會重新開啟。}other{您的 # 個無痕式視窗不會重新開啟。}}</translation> <translation id="1546280085599573572">擴充功能已變更您按下 [主頁] 按鈕時所顯示的網頁。</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" />要求安裝具有下列功能的<ph name="EXTENSION_TYPE" />:</translation> +<translation id="1547123415014299762">已允許第三方 Cookie</translation> <translation id="1547808936554660006">我瞭解執行 Powerwash 將不會移除已安裝的 eSIM 卡設定檔</translation> <translation id="1547936895218027488">按一下側面板圖示即可開啟</translation> <translation id="1549275686094429035">已啟用 ARC</translation> @@ -769,6 +773,7 @@ <translation id="168715261339224929">如要將書籤同步到所有裝置,請開啟同步處理功能。</translation> <translation id="1688867105868176567">要清除網站資料嗎?</translation> <translation id="1688935057616748272">請輸入一個字母</translation> +<translation id="1689333818294560261">暱稱</translation> <translation id="168991973552362966">新增附近的打印機</translation> <translation id="1689945336726856614">複製網址(&U)</translation> <translation id="1692115862433274081">使用其他帳戶</translation> @@ -1408,6 +1413,7 @@ <translation id="2247870315273396641">語音預覽</translation> <translation id="2249111429176737533">在分頁視窗中開啟</translation> <translation id="2249605167705922988">例如:1-5、8、11-13</translation> +<translation id="2249635629516220541">自訂網站可用來顯示廣告的資料</translation> <translation id="2251218783371366160">使用系統檢視器開啟</translation> <translation id="225163402930830576">重新整理網絡</translation> <translation id="2251809247798634662">新無痕式視窗</translation> @@ -1525,7 +1531,6 @@ <translation id="2329597144923131178">登入後可從任何裝置取得自己的書籤、記錄、密碼和其他設定。</translation> <translation id="2332115969598251205">無法載入已儲存至 <ph name="PRIMARY_EMAIL" /> 的裝置。請檢查您的互聯網連線,然後再試一次。</translation> <translation id="2332131598580221120">前往商店檢視</translation> -<translation id="2332192922827071008">開啟偏好設定</translation> <translation id="2332515770639153015">已啟用「強化安全瀏覽」功能</translation> <translation id="2332742915001411729">重設為預設值</translation> <translation id="2332948465534020594">已啟用「請勿騷擾」</translation> @@ -1860,6 +1865,7 @@ <translation id="2640299212685523844">使用 GTK</translation> <translation id="264083724974021997">連接去你部手機 - 對話框</translation> <translation id="2642111877055905627">足球</translation> +<translation id="2643064289437760082">只要刪除瀏覽資料,即可隨時刪除廣告評估資料</translation> <translation id="2643698698624765890">如要管理擴充功能,只需按一下 [視窗] 選單中的 [擴充功能] 即可。</translation> <translation id="2645047101481282803">您的裝置由 <ph name="PROFILE_NAME" /> 管理</translation> <translation id="2645435784669275700">Chrome OS</translation> @@ -2319,6 +2325,7 @@ <translation id="3036327949511794916">此 <ph name="DEVICE_TYPE" /> 的退貨期限已過。</translation> <translation id="3036546437875325427">啟用 Flash</translation> <translation id="3037754279345160234">無法剖析設定以加入網域,請與管理員聯絡。</translation> +<translation id="3038272154009688107">查看所有網站</translation> <translation id="3038612606416062604">手動新增打印機</translation> <translation id="3039491566278747710">無法在裝置上安裝離線政策。</translation> <translation id="3043016484125065343">登入即可查看書籤</translation> @@ -2556,6 +2563,7 @@ <translation id="3289668031376215426">自動大寫</translation> <translation id="3289856944988573801">如要檢查更新,請使用以太網絡或 Wi-Fi。</translation> <translation id="3290249595466894471">同時傳送網頁、下載檔案、擴充程式活動及系統資料的少量抽樣資料,以協助發現新威脅</translation> +<translation id="3293181007446299124">您的瀏覽記錄會保留在裝置上,絕不會外洩。系統亦會延遲傳送報告,從而保護您的身分</translation> <translation id="3293644607209440645">傳送此頁面</translation> <translation id="32939749466444286">Linux 容器無法啟動。請再試一次。</translation> <translation id="3294437725009624529">訪客</translation> @@ -3338,6 +3346,7 @@ <translation id="3984431586879874039">要允許此網站查看您的安全密鑰嗎?</translation> <translation id="398477389655464998">複製突顯文字的連結</translation> <translation id="3984862166739904574">快速解答的定義</translation> +<translation id="3985022125189960801">您重新新增的網站可再次猜測您的興趣。</translation> <translation id="3987544746655539083">繼續禁止此網站存取您的位置</translation> <translation id="3987938432087324095">很抱歉,無法辨識您的語音指令。</translation> <translation id="3987993985790029246">複製連結</translation> @@ -3715,6 +3724,7 @@ <translation id="4366138410738374926">列印已開始</translation> <translation id="4367513928820380646">審核移除咗嘅權限</translation> <translation id="4369215744064167350">已核准網站要求</translation> +<translation id="4369735607080757018">網站之間會分享有限種類的資料 (例如系統向您顯示廣告的時段),以評估廣告的效益</translation> <translation id="4370975561335139969">您所輸入的電郵與密碼不符</translation> <translation id="4374831787438678295">Linux 安裝程式</translation> <translation id="4375035964737468845">開啟已下載的檔案</translation> @@ -3735,6 +3745,7 @@ <translation id="4385146930797718821">已將螢幕截圖複製到剪貼簿</translation> <translation id="4385905942116811558">搜尋藍牙裝置和 USB 裝置</translation> <translation id="4387890294700445764">被盜用的密碼</translation> +<translation id="4388650384344483842">請至少使用 8 個字元</translation> <translation id="4389091756366370506">使用者 <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />、<ph name="SECOND_SWITCH" />、<ph name="THIRD_SWITCH" /> 以及另外 <ph name="NUMBER_OF_OTHER_SWITCHES" /> 個按鈕裝置</translation> <translation id="439266289085815679">藍牙設定由 <ph name="USER_EMAIL" /> 控制。</translation> @@ -4057,6 +4068,7 @@ <translation id="4666472247053585787">在 <ph name="DEVICE_TYPE" /> 上查看手機的通知</translation> <translation id="4666911709726371538">更多應用程式</translation> <translation id="4667027203988048332">我們會使用哪些資料:</translation> +<translation id="4668279686271488041">系統會定期從裝置刪除廣告評估資料</translation> <translation id="4672759829555593783">立即開啟 <ph name="FILE_NAME" /></translation> <translation id="46733273239502219">系統亦會清除已安裝應用程式的離線資料。</translation> <translation id="4673442866648850031">拔出觸控筆後開啟觸控筆工具</translation> @@ -4250,6 +4262,7 @@ <translation id="485480310608090163">更多設定和權限</translation> <translation id="4858913220355269194">飛球</translation> <translation id="4862642413395066333">簽署 OCSP 回應</translation> +<translation id="4863702650881330715">擴展兼容性</translation> <translation id="4863769717153320198">解像度:<ph name="WIDTH" /> x <ph name="HEIGHT" /> (預設)</translation> <translation id="4864805589453749318">請選取要授予新增學校帳戶權限的家長。</translation> <translation id="486635084936119914">下載特定類型的檔案後自動開啟</translation> @@ -4298,7 +4311,6 @@ <translation id="4893336867552636863">這會永久刪除此裝置上的瀏覽資料。</translation> <translation id="4893454800196085005">良好 - DVD</translation> <translation id="4893522937062257019">螢幕上鎖時</translation> -<translation id="4897496410259333978">如需更多資訊,請聯絡您的管理員。</translation> <translation id="4898011734382862273">憑證「<ph name="CERTIFICATE_NAME" />」代表憑證授權單位</translation> <translation id="4899052647152077033">反轉顏色</translation> <translation id="4899696330053002588">包含廣告</translation> @@ -4496,6 +4508,7 @@ <translation id="5094721898978802975">與合作內置應用程式通訊</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> <translation id="5097306410549350357">進一步瞭解如何使用位置設定</translation> +<translation id="5097349930204431044">您瀏覽的網站可判斷您喜愛的內容,然後在您繼續瀏覽時建議廣告</translation> <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">游標停止時自動點擊</translation> <translation id="5101683448725092498">備份資料</translation> @@ -4678,6 +4691,7 @@ <translation id="5275352920323889391">狗</translation> <translation id="527605719918376753">將分頁設為靜音</translation> <translation id="527605982717517565">永遠允許在 <ph name="HOST" /> 執行 JavaScript</translation> +<translation id="5276357196618041410">請先登入才能儲存設定</translation> <translation id="5277127016695466621">顯示側面板</translation> <translation id="5278823018825269962">狀態 ID</translation> <translation id="5279600392753459966">全部封鎖</translation> @@ -5830,7 +5844,6 @@ <translation id="6347010704471250799">顯示通知</translation> <translation id="6349101878882523185">安裝「<ph name="APP_NAME" />」</translation> <translation id="6354918092619878358">SECG 橢圓曲線 secp256r1 (亦稱為 ANSI X9.62 prime256v1、NIST P-256)</translation> -<translation id="6355789186038748882">這是實驗性質 (Alpha 版) 的瀏覽器!部分功能可能遺失或不完整。請按一下 [說明] > [報告問題…] 以報告問題。</translation> <translation id="635609604405270300">保持裝置開啟</translation> <translation id="63566973648609420">只有知道密碼短語的使用者才能讀取您的加密資料。系統不會將密碼短語傳送給 Google,Google 也不會儲存密碼短語。如果您忘記自己的密碼短語,或希望變更這項設定,則必須<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />。</translation> <translation id="6357305427698525450">部分支援連結將仍會在 <ph name="APP_NAME" /> 或 <ph name="APP_NAME_2" /> 中開啟。</translation> @@ -6170,6 +6183,7 @@ <translation id="6670767097276846646">部分擴充程式可以將搜尋引擎新增至 Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 個地址}other{# 個地址}}</translation> <translation id="6671497123040790595">正在設定由 <ph name="MANAGER" /> 進行管理</translation> +<translation id="6672917148207387131">新增 <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation> <translation id="6675665718701918026">已連接指標裝置</translation> @@ -6253,6 +6267,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (無痕模式)</translation> <translation id="6756157672127672536">「檔案」應用程式可讓您快速存取存放在 Google 雲端硬碟、外部儲存空間或 Chrome OS 裝置中的檔案。</translation> <translation id="6756643207511618722">語音引擎</translation> +<translation id="6757431299485455321">協助其他裝置尋找此熱點。</translation> <translation id="6758056191028427665">請讓我們瞭解您的滿意度。</translation> <translation id="6759193508432371551">恢復原廠設定</translation> <translation id="6761431452438552910">請確保藍牙裝置在附近,且已處於配對模式。請只與您信任的裝置配對。</translation> @@ -6352,6 +6367,7 @@ <translation id="6833479554815567477">分頁已經由包含「<ph name="GROUP_CONTENTS" />」嘅「<ph name="GROUP_NAME" />」群組度移除</translation> <translation id="683373380308365518">改用智能且安全的瀏覽器</translation> <translation id="6833996806551876956">私隱沙箱試用</translation> +<translation id="6835712061486505758">建立 Wi-Fi 熱點,為其他裝置提供互聯網連線。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">請連接互聯網以更新 <ph name="DEVICE_TYPE" />。</translation> <translation id="6839225236531462745">憑證刪除錯誤</translation> <translation id="6839916869147598086">登入方式已變更</translation> @@ -6513,6 +6529,7 @@ <translation id="697508444536771064">關閉 Linux</translation> <translation id="6975361011348772931">已要求讀取並變更</translation> <translation id="6978121630131642226">搜尋引擎</translation> +<translation id="6978717888677691380">您已封鎖的網站</translation> <translation id="6979041727349121225">省電模式</translation> <translation id="6979044105893951891">啟動及結束受管理的訪客工作階段</translation> <translation id="6979440798594660689">靜音 (預設)</translation> @@ -6604,6 +6621,7 @@ <translation id="7047059339731138197">選擇背景</translation> <translation id="7048457618657122233">將連結分享去 <ph name="SHARE_TARGET" /></translation> <translation id="7049293980323620022">要保留檔案嗎?</translation> +<translation id="7050037487872780845">無效的熱點設定</translation> <translation id="7052237160939977163">傳送效能追蹤數據</translation> <translation id="7053983685419859001">封鎖</translation> <translation id="7055152154916055070">已禁止重新導向:</translation> @@ -6808,6 +6826,7 @@ <translation id="7258192266780953209">變形</translation> <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation> <translation id="7260186537988033909">Kiosk 和標牌裝置註冊完成</translation> +<translation id="7260367682327802201">Android 裝置可能會有類似的設定。如果 Chrome 和 Android 裝置已開啟廣告評估設定,廣告商或者就能在您瀏覽的網站和使用的應用程式上評估廣告成效。</translation> <translation id="7262004276116528033">此登入服務是由 <ph name="SAML_DOMAIN" /> 代管</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{已移除 1 個網站的權限}other{已移除 {NUM_SITES} 個網站的權限}}</translation> <translation id="7264695323040866038">一律使用「<ph name="APP" />」開啟支援的網頁連結嗎?</translation> @@ -6951,6 +6970,7 @@ <translation id="7406912950279255498">色彩反轉模式</translation> <translation id="7407430846095439694">匯入並繫結</translation> <translation id="7407504355934009739">大多數使用者封鎖了此網站傳送的通知</translation> +<translation id="7408080603962564527">其他人將可看到此名稱</translation> <translation id="740810853557944681">新增列印伺服器</translation> <translation id="7409549334477097887">較大</translation> <translation id="7409599290172516453">最近的相片</translation> @@ -6989,7 +7009,6 @@ <translation id="7434757724413878233">滑鼠加速</translation> <translation id="7434969625063495310">無法新增列印伺服器。請檢查伺服器設定,然後再試一次。</translation> <translation id="7436921188514130341">很抱歉!重新命名過程中發生錯誤。</translation> -<translation id="7438495332316988804">在啟動器中輸入「Chrome」即可找到標準瀏覽器。</translation> <translation id="7439519621174723623">新增裝置名稱以繼續</translation> <translation id="7441736921018636843">如要變更此設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步密碼短語</translation> <translation id="7441830548568730290">其他使用者</translation> @@ -7266,6 +7285,7 @@ <translation id="7684718995427157417">如要建立並測試您的應用程式,請啟用「Android 偵錯橋接器」(ADB)。請注意,此操作允許安裝未經 Google 驗證的 Android 應用程式,並且需要恢復原廠設定才能停用。</translation> <translation id="7685049629764448582">JavaScript 記憶體使用量</translation> <translation id="7685087414635069102">必須提供 PIN</translation> +<translation id="7686086654630106285">進一步瞭解網站建議的廣告</translation> <translation id="7686581688229391955">揀嚟允許呢個網站上嘅擴充程式</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">確認新密碼</translation> @@ -7287,6 +7307,7 @@ <translation id="7704317875155739195">自動完成搜尋和網址</translation> <translation id="7704521324619958564">開啟 Play 商店</translation> <translation id="7705276765467986571">無法載入書籤模型。</translation> +<translation id="7705334495398865155">隨機處理硬件 ID (BSSID),避免其他人追蹤此裝置。</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">系統已封鎖此網站使用動作感應器。</translation> <translation id="7707922173985738739">使用流動數據</translation> @@ -7480,6 +7501,7 @@ <translation id="7881483672146086348">檢視帳戶</translation> <translation id="7883792253546618164">您可隨時取消訂閱。</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{審核曾傳送大量通知的 1 個網站}other{審核曾傳送大量通知的 {NUM_SITES} 個網站}}</translation> +<translation id="7884446017008693258">熱點設定</translation> <translation id="788453346724465748">正在載入帳戶資料…</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 個項目}other{# 個項目}}</translation> <translation id="7886605625338676841">eSIM 卡</translation> @@ -7567,6 +7589,7 @@ <translation id="7952904276017482715">預期 ID 為「<ph name="EXPECTED_ID" />」,但實際為「<ph name="NEW_ID" />」</translation> <translation id="7953669802889559161">輸入方法</translation> <translation id="7953955868932471628">管理快速鍵</translation> +<translation id="7955105108888461311">要求存取權</translation> <translation id="7955177647836564772">如果 Smart Lock 已開啟,且手機已解鎖,您將不需要輸入密碼或 PIN</translation> <translation id="7956373551960864128">已儲存的打印機</translation> <translation id="7957074856830851026">查看裝置資料,例如序號或資產 ID</translation> @@ -7705,6 +7728,7 @@ <ph name="BEGIN_PARAGRAPH3" />您可在「設定」中關閉此服務。<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">分頁</translation> <translation id="8076835018653442223">管理員已停用裝置的本機檔案存取權</translation> +<translation id="8077120325605624147">您瀏覽的網站都可向您顯示所有廣告</translation> <translation id="80798452873915119">網站可以要求在您所有的顯示屏上管理視窗</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">工作階段由 <ph name="MANAGER_NAME" /> 管理。管理員可刪除設定檔並監察網絡流量。</translation> @@ -8218,6 +8242,7 @@ <translation id="8557180006508471423">請在 Mac 上的「定位服務」中開啟「Google Chrome」</translation> <translation id="8557856025359704738">下次下載日期為 <ph name="NEXT_DATE_DOWNLOAD" />。</translation> <translation id="8559858985063901027">密鑰</translation> +<translation id="8559961053328923750">Chrome 會限制網站為評估廣告成效而透過瀏覽器分享的總資料量</translation> <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有書籤(&N)}=1{在新視窗中開啟書籤(&N)}other{在新視窗中開啟全部 {COUNT} 個書籤(&N)}}</translation> <translation id="8561206103590473338">大象</translation> <translation id="8561565784790166472">執行時請特別注意</translation> @@ -8360,6 +8385,7 @@ <translation id="8678933587484842200">您想如何啟動此應用程式?</translation> <translation id="8680251145628383637">登入即可從任何裝置取得自己的書籤、記錄、密碼和其他設定。您亦會自動登入至各種 Google 服務。</translation> <translation id="8681614230122836773">Chrome 在您的電腦上發現了有害軟件</translation> +<translation id="8681886425883659911">已在網站上封鎖已知的滋擾性或誤導廣告。</translation> <translation id="8682730193597992579">已連接 <ph name="PRINTER_NAME" /> 並準備就緒</translation> <translation id="8687103160920393343">取消下載 <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">可用</translation> @@ -8730,6 +8756,7 @@ <translation id="9021662811137657072">系統偵測到病毒</translation> <translation id="902236149563113779">網站通常會追蹤攝錄機位置以提供 AR 功能,例如遊戲或注意方向</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在這部電腦上使用這個帳戶。</translation> +<translation id="9022871169049522985">網站和廣告客戶可評估廣告的效益</translation> <translation id="9023015617655685412">將此分頁加入書籤…</translation> <translation id="9023909777842748145">即使關閉此功能,您的裝置仍然可以傳送基本服務 (例如系統更新與安全性) 所需的資料。</translation> <translation id="9024127637873500333">在新分頁中開啟(&O)</translation> @@ -8859,6 +8886,7 @@ <translation id="9128335130883257666">打開<ph name="INPUT_METHOD_NAME" />嘅設定頁面</translation> <translation id="9128870381267983090">連接網絡</translation> <translation id="9130015405878219958">輸入的模式無效。</translation> +<translation id="9131209053278896908">已封鎖的網站會在此顯示</translation> <translation id="9131487537093447019">透過藍牙裝置傳送及接收訊息。</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 個書籤}other{# 個書籤}}</translation> <translation id="9134066738478820307">網站可使用識別碼來播放受保護的內容</translation> @@ -8912,6 +8940,7 @@ <translation id="9180281769944411366">此程序可能需時幾分鐘。正在啟動 Linux 容器。</translation> <translation id="9180380851667544951">網站可以分享您的螢幕畫面</translation> <translation id="9182556968660520230">不允許網站播放受保護的內容</translation> +<translation id="9183331776983279456">Chrome 會自動刪除超過 4 星期的網站。您再次瀏覽的網頁可能會再次在清單中顯示。您亦可封鎖網站,讓該網站無法為您提供建議廣告。</translation> <translation id="918352324374649435">{COUNT,plural, =1{應用程式}other{# 個應用程式}}</translation> <translation id="9186963452600581158">使用子女的 Google 帳戶登入</translation> <translation id="9187967020623675250">按鍵不符。按下任意鍵即可<ph name="RESPONSE" />。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 503e603..74599ae 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -59,6 +59,7 @@ <translation id="1054153489933238809">在新分頁中開啟原始圖片(&I)</translation> <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{請在 1 週內更新 <ph name="DEVICE_TYPE" />}other{請在 {NUM_WEEKS} 週內更新 <ph name="DEVICE_TYPE" />}}</translation> <translation id="1056898198331236512">警告</translation> +<translation id="1056980582064308040">如果變更設定,系統將重新啟動無線基地台,屆時裝置與無線基地台的連線就會中斷。</translation> <translation id="1058262162121953039">PUK</translation> <translation id="1059065096897445832">{MIN_PIN_LENGTH,plural, =1{請輸入新的 PIN 碼。PIN 碼必須包含至少一個字元,可以使用英文字母、數字和其他字元。}other{請輸入新的 PIN 碼。PIN 碼必須包含至少 # 個字元,可以使用英文字母、數字和其他字元。}}</translation> <translation id="1059484610606223931">超文字安全傳輸通訊協定 (HTTPS)</translation> @@ -303,6 +304,7 @@ <translation id="1272079795634619415">停止</translation> <translation id="1272508081857842302">開啟<ph name="BEGIN_LINK" />支援的連結<ph name="END_LINK" /></translation> <translation id="1272978324304772054">裝置註冊的網域中沒有這個使用者帳戶。如果你要使用其他網域進行註冊,必須先完成裝置修復作業。</translation> +<translation id="1273937721055267968">封鎖 <ph name="DOMAIN" /></translation> <translation id="1274997165432133392">Cookie 和其他網站資料</translation> <translation id="1275718070701477396">已選取</translation> <translation id="1276994519141842946">無法解除安裝「<ph name="APP_NAME" />」</translation> @@ -354,6 +356,7 @@ <translation id="1327495825214193325">如要啟用 ADB 偵錯,必須重新啟動這部 <ph name="DEVICE_TYPE" />。如要停用 ADB 偵錯,必須將裝置恢復原廠設定。</translation> <translation id="1327527584824210101">使用密碼金鑰</translation> <translation id="1327794256477341646">需要位置資訊的功能將無法運作</translation> +<translation id="1329466763986822896">改善這個無線基地台的隱私防護</translation> <translation id="1331977651797684645">這是我。</translation> <translation id="1333489022424033687">在你清除裝置上其他網站所儲存的資料之前,<ph name="ORIGIN" /> 上的部分功能可能無法正常運作</translation> <translation id="1333965224356556482">禁止網站查看你的位置資訊</translation> @@ -593,6 +596,7 @@ <translation id="1546031833947068368">{COUNT,plural, =1{你的無痕式視窗不會重新開啟。}other{你的 # 個無痕式視窗不會重新開啟。}}</translation> <translation id="1546280085599573572">這個擴充功能已變更您點選 [首頁] 按鈕時所顯示的網頁。</translation> <translation id="1546452108651444655"><ph name="CHILD_NAME" /> 要求安裝具有下列功能的<ph name="EXTENSION_TYPE" />:</translation> +<translation id="1547123415014299762">已允許第三方 Cookie</translation> <translation id="1547808936554660006">我瞭解執行 Powerwash 將不會移除已安裝的 eSIM 卡設定檔</translation> <translation id="1547936895218027488">按一下側邊面板圖示即可開啟</translation> <translation id="1549275686094429035">已啟用 ARC</translation> @@ -766,6 +770,7 @@ <translation id="168715261339224929">如要將書籤同步到所有裝置,請開啟同步處理功能。</translation> <translation id="1688867105868176567">要清除網站資料嗎?</translation> <translation id="1688935057616748272">請輸入英文字母</translation> +<translation id="1689333818294560261">暱稱</translation> <translation id="168991973552362966">新增鄰近印表機</translation> <translation id="1689945336726856614">複製網址(&U)</translation> <translation id="1692115862433274081">使用其他帳戶</translation> @@ -1396,6 +1401,7 @@ <translation id="2247870315273396641">預先聆聽語音</translation> <translation id="2249111429176737533">在分頁視窗中開啟</translation> <translation id="2249605167705922988">例如:1-5、8、11-13</translation> +<translation id="2249635629516220541">自訂網站可用來顯示廣告的資訊</translation> <translation id="2251218783371366160">使用系統檢視器開啟</translation> <translation id="225163402930830576">重新整理網路</translation> <translation id="2251809247798634662">新增無痕式視窗</translation> @@ -1510,7 +1516,6 @@ <translation id="2329597144923131178">登入後,即可從您使用的任何裝置取得自己的書籤、歷史記錄、密碼和其他設定。</translation> <translation id="2332115969598251205">無法載入已儲存到 <ph name="PRIMARY_EMAIL" /> 的裝置,請檢查網際網路連線,然後再試一次。</translation> <translation id="2332131598580221120">前往商店查看</translation> -<translation id="2332192922827071008">開啟偏好設定</translation> <translation id="2332515770639153015">已啟用安全瀏覽強化防護功能</translation> <translation id="2332742915001411729">重設為預設值</translation> <translation id="2332948465534020594">已啟用「零打擾」</translation> @@ -1844,6 +1849,7 @@ <translation id="2640299212685523844">使用 GTK</translation> <translation id="264083724974021997">連線至你的手機 - 對話方塊</translation> <translation id="2642111877055905627">足球</translation> +<translation id="2643064289437760082">刪除瀏覽資料即可刪除廣告評估資料</translation> <translation id="2643698698624765890">如要管理擴充功能,只要按一下 [視窗] 選單裡的 [擴充功能] 即可。</translation> <translation id="2645047101481282803">你的裝置是由 <ph name="PROFILE_NAME" /> 管理</translation> <translation id="2645435784669275700">ChromeOS</translation> @@ -2303,6 +2309,7 @@ <translation id="3036327949511794916">這部「<ph name="DEVICE_TYPE" />」的退貨期限已過。</translation> <translation id="3036546437875325427">啟用 Flash</translation> <translation id="3037754279345160234">無法對加入網域的設定進行剖析,請與你的管理員聯絡。</translation> +<translation id="3038272154009688107">查看所有網站</translation> <translation id="3038612606416062604">手動新增印表機</translation> <translation id="3039491566278747710">無法在裝置上安裝離線政策。</translation> <translation id="3043016484125065343">登入即可查看書籤</translation> @@ -2539,6 +2546,7 @@ <translation id="3289668031376215426">自動大寫</translation> <translation id="3289856944988573801">如要檢查更新,請使用乙太網路或 Wi-Fi。</translation> <translation id="3290249595466894471">另外也會傳送少量網頁、下載內容、擴充功能活動和系統資訊,協助找出新的威脅</translation> +<translation id="3293181007446299124">在裝置端保留瀏覽記錄,僅供你本人存取。系統會延遲一段時間才傳送報告,保護你的身分</translation> <translation id="3293644607209440645">傳送這個頁面</translation> <translation id="32939749466444286">無法啟動 Linux 容器,請再試一次。</translation> <translation id="3294437725009624529">訪客</translation> @@ -3318,6 +3326,7 @@ <translation id="3984431586879874039">要允許這個網站查看你的安全金鑰嗎?</translation> <translation id="398477389655464998">複製醒目顯示文字的連結</translation> <translation id="3984862166739904574">快速解答功能的定義</translation> +<translation id="3985022125189960801">你重新新增的網站可再次推斷你的興趣喜好</translation> <translation id="3987544746655539083">繼續禁止這個網站存取你的位置資訊</translation> <translation id="3987938432087324095">很抱歉,系統無法辨識你的語音指令。</translation> <translation id="3987993985790029246">複製連結</translation> @@ -3695,6 +3704,7 @@ <translation id="4366138410738374926">已開始列印</translation> <translation id="4367513928820380646">查看已移除的權限</translation> <translation id="4369215744064167350">已核准網站要求</translation> +<translation id="4369735607080757018">在網站間分享少數類型的資料,以評估廣告成效,例如你在哪個時段看到廣告</translation> <translation id="4370975561335139969">您所輸入的電子郵件和密碼不相符</translation> <translation id="4374831787438678295">Linux 安裝程式</translation> <translation id="4375035964737468845">開啟已下載的檔案。</translation> @@ -3715,6 +3725,7 @@ <translation id="4385146930797718821">已將螢幕截圖複製到剪貼簿</translation> <translation id="4385905942116811558">搜尋藍牙裝置和 USB 裝置</translation> <translation id="4387890294700445764">遭外洩的密碼</translation> +<translation id="4388650384344483842">請至少輸入 8 個半形字元</translation> <translation id="4389091756366370506">使用者 <ph name="VALUE" /></translation> <translation id="4390396490617716185"><ph name="FIRST_SWITCH" />、<ph name="SECOND_SWITCH" />、<ph name="THIRD_SWITCH" />,以及另外 <ph name="NUMBER_OF_OTHER_SWITCHES" /> 個按鍵</translation> <translation id="439266289085815679">藍牙設定由 <ph name="USER_EMAIL" /> 控制。</translation> @@ -4036,6 +4047,7 @@ <translation id="4666472247053585787">在 <ph name="DEVICE_TYPE" /> 上查看手機的通知</translation> <translation id="4666911709726371538">更多應用程式</translation> <translation id="4667027203988048332">我們會使用哪些資料:</translation> +<translation id="4668279686271488041">定期刪除裝置上的廣告評估資料</translation> <translation id="4672759829555593783">立即開啟「<ph name="FILE_NAME" />」</translation> <translation id="46733273239502219">已安裝應用程式中的離線資料也將遭到清除</translation> <translation id="4673442866648850031">移除觸控筆時取出觸控筆工具</translation> @@ -4229,6 +4241,7 @@ <translation id="485480310608090163">更多設定和權限</translation> <translation id="4858913220355269194">飛球</translation> <translation id="4862642413395066333">簽署 OCSP 回應</translation> +<translation id="4863702650881330715">擴充相容性</translation> <translation id="4863769717153320198">螢幕解析度:<ph name="WIDTH" /> x <ph name="HEIGHT" /> (預設)</translation> <translation id="4864805589453749318">請選取要授予新增學校帳戶權限的家長。</translation> <translation id="486635084936119914">下載特定類型的檔案後自動開啟</translation> @@ -4277,7 +4290,6 @@ <translation id="4893336867552636863">這會將您的瀏覽資料從這個裝置上永久刪除。</translation> <translation id="4893454800196085005">良好 - DVD</translation> <translation id="4893522937062257019">螢幕鎖定時</translation> -<translation id="4897496410259333978">如需詳細資訊,請與管理員聯絡。</translation> <translation id="4898011734382862273">憑證「<ph name="CERTIFICATE_NAME" />」代表憑證授權單位</translation> <translation id="4899052647152077033">反轉顏色</translation> <translation id="4899696330053002588">含廣告內容</translation> @@ -4475,6 +4487,7 @@ <translation id="5094721898978802975">與合作原生應用程式建立連線</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> <translation id="5097306410549350357">進一步瞭解如何使用位置資訊設定</translation> +<translation id="5097349930204431044">你造訪的網站可以判斷你喜愛的內容,並在接下來的瀏覽過程中顯示建議廣告</translation> <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">游標停止時自動點擊</translation> <translation id="5101683448725092498">備份資料</translation> @@ -4657,6 +4670,7 @@ <translation id="5275352920323889391">狗</translation> <translation id="527605719918376753">關閉分頁音訊</translation> <translation id="527605982717517565">永遠允許在 <ph name="HOST" /> 執行 JavaScript</translation> +<translation id="5276357196618041410">請先登入才能儲存設定</translation> <translation id="5277127016695466621">顯示側邊面板</translation> <translation id="5278823018825269962">狀態 ID</translation> <translation id="5279600392753459966">全部封鎖</translation> @@ -5808,7 +5822,6 @@ <translation id="6347010704471250799">顯示通知</translation> <translation id="6349101878882523185">安裝 <ph name="APP_NAME" /></translation> <translation id="6354918092619878358">SECG 橢圓曲線 secp256r1 (亦稱為 ANSI X9.62 prime256v1、NIST P-256)</translation> -<translation id="6355789186038748882">這是實驗性質 (Alpha 版) 的瀏覽器!部分功能可能遺失或不完整。如有問題,請依序按一下 [說明] > [回報問題…] 進行回報。</translation> <translation id="635609604405270300">請讓裝置保持開啟</translation> <translation id="63566973648609420">只有知道通關密語的使用者可以讀取你的加密資料。系統不會將通關密語傳送給 Google,Google 也不會儲存通關密語。如果你忘記自己的通關密語,或是想變更這項設定,則必須<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />。</translation> <translation id="6357305427698525450">某些支援連結仍會在「<ph name="APP_NAME" />」或「<ph name="APP_NAME_2" />」中開啟。</translation> @@ -6148,6 +6161,7 @@ <translation id="6670767097276846646">部分擴充功能可以將搜尋引擎新增至 Chrome</translation> <translation id="6671320560732140690">{COUNT,plural, =1{1 個地址}other{# 個地址}}</translation> <translation id="6671497123040790595">正在配置由 <ph name="MANAGER" /> 管理的設定</translation> +<translation id="6672917148207387131">新增 <ph name="DOMAIN" /></translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> <translation id="6674571176963658787">如要開始同步處理,請輸入通關密語</translation> <translation id="6675665718701918026">已連上指標裝置</translation> @@ -6196,7 +6210,7 @@ <translation id="671619610707606484">這會清除網站儲存的資料,共 <ph name="TOTAL_USAGE" /></translation> <translation id="6716798148881908873">網路連線已中斷。請檢查網路連線,或改用其他 Wi-Fi 網路。</translation> <translation id="671928215901716392">鎖定螢幕</translation> -<translation id="6721744718589119342">我們可能會透過電子郵件提供更新資訊或要求你提供更多資訊</translation> +<translation id="6721744718589119342">我們可能會透過電子郵件要求提供更多資訊,或告知最新消息</translation> <translation id="6721972322305477112">檔案(&F)</translation> <translation id="672208878794563299">這個網站下次會再詢問你。</translation> <translation id="6723661294526996303">匯入書籤和設定...</translation> @@ -6231,6 +6245,7 @@ <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (無痕模式)</translation> <translation id="6756157672127672536">「檔案」應用程式可讓你快速存取儲存在 Google 雲端硬碟、外部儲存空間或 Chrome OS 裝置中的檔案。</translation> <translation id="6756643207511618722">語音引擎</translation> +<translation id="6757431299485455321">協助其他裝置找到這個無線基地台。</translation> <translation id="6758056191028427665">請讓我們瞭解你的滿意度。</translation> <translation id="6759193508432371551">恢復原廠設定</translation> <translation id="6761431452438552910">請確認你的藍牙裝置放在附近,且處於配對模式。只配對你信任的裝置。</translation> @@ -6330,6 +6345,7 @@ <translation id="6833479554815567477">分頁已從包含「<ph name="GROUP_CONTENTS" />」的「<ph name="GROUP_NAME" />」群組中移除</translation> <translation id="683373380308365518">改用智慧又安全的瀏覽器</translation> <translation id="6833996806551876956">Privacy Sandbox 試用期</translation> +<translation id="6835712061486505758">建立 Wi-Fi 無線基地台,為其他裝置提供網際網路連線。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="6835762382653651563">請連線至網際網路,以更新您的 <ph name="DEVICE_TYPE" />。</translation> <translation id="6839225236531462745">憑證刪除錯誤</translation> <translation id="6839916869147598086">登入方式已變更</translation> @@ -6491,6 +6507,7 @@ <translation id="697508444536771064">關閉 Linux</translation> <translation id="6975361011348772931">已要求讀取及變更</translation> <translation id="6978121630131642226">搜尋引擎</translation> +<translation id="6978717888677691380">你封鎖的網站</translation> <translation id="6979041727349121225">節能模式</translation> <translation id="6979044105893951891">啟動及結束受管理的訪客工作階段</translation> <translation id="6979440798594660689">靜音 (預設)</translation> @@ -6582,6 +6599,7 @@ <translation id="7047059339731138197">選擇背景</translation> <translation id="7048457618657122233">將連結分享至「<ph name="SHARE_TARGET" />」</translation> <translation id="7049293980323620022">要保留檔案嗎?</translation> +<translation id="7050037487872780845">無效的無線基地台設定</translation> <translation id="7052237160939977163">傳送效能追蹤資料</translation> <translation id="7053983685419859001">封鎖</translation> <translation id="7055152154916055070">已禁止重新導向:</translation> @@ -6786,6 +6804,7 @@ <translation id="7258192266780953209">轉換</translation> <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation> <translation id="7260186537988033909">資訊站和看板裝置註冊完成</translation> +<translation id="7260367682327802201">Android 裝置可能會有類似的設定。如果 Chrome 和 Android 裝置開啟了廣告評估設定,廣告技術公司或許就能在你造訪的網站和使用的應用程式上評估廣告成效。</translation> <translation id="7262004276116528033">這是由 <ph name="SAML_DOMAIN" /> 代管的登入服務。</translation> <translation id="7263162347647986485">{NUM_SITES,plural, =1{已移除 1 個網站的權限}other{已移除 {NUM_SITES} 個網站的權限}}</translation> <translation id="7264695323040866038">一律使用 <ph name="APP" /> 應用程式開啟支援的網頁連結嗎?</translation> @@ -6929,6 +6948,7 @@ <translation id="7406912950279255498">色彩反轉模式</translation> <translation id="7407430846095439694">匯入和繫結</translation> <translation id="7407504355934009739">大多數使用者封鎖了這個網站傳送的通知</translation> +<translation id="7408080603962564527">其他人將可看到這個名稱</translation> <translation id="740810853557944681">新增列印伺服器</translation> <translation id="7409549334477097887">特大</translation> <translation id="7409599290172516453">最近的相片</translation> @@ -6967,7 +6987,6 @@ <translation id="7434757724413878233">滑鼠加速</translation> <translation id="7434969625063495310">無法新增列印伺服器。請檢查伺服器設定,然後再試一次。</translation> <translation id="7436921188514130341">糟糕!重新命名過程中發生錯誤。</translation> -<translation id="7438495332316988804">在啟動器中輸入「Chrome」即可找到標準瀏覽器。</translation> <translation id="7439519621174723623">新增裝置名稱即可繼續</translation> <translation id="7441736921018636843">如要變更這項設定,請<ph name="BEGIN_LINK" />重設同步處理功能<ph name="END_LINK" />以移除同步處理通關密語</translation> <translation id="7441830548568730290">其他使用者</translation> @@ -7244,6 +7263,7 @@ <translation id="7684718995427157417">如要建立並測試你的應用程式,請啟用 Android Debug Bridge (ADB)。請注意,這項操作會允許你安裝未經 Google 驗證的 Android 應用程式,而且需要將裝置恢復原廠設定才能停用。</translation> <translation id="7685049629764448582">JavaScript 記憶體使用量</translation> <translation id="7685087414635069102">請輸入 PIN 碼</translation> +<translation id="7686086654630106285">進一步瞭解網站建議廣告</translation> <translation id="7686581688229391955">選擇允許執行這個網站的擴充功能</translation> <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation> <translation id="7690294790491645610">確認新密碼</translation> @@ -7265,6 +7285,7 @@ <translation id="7704317875155739195">自動完成搜尋字詞與網址</translation> <translation id="7704521324619958564">開啟 Play 商店</translation> <translation id="7705276765467986571">無法載入書籤模型。</translation> +<translation id="7705334495398865155">隨機設定硬體 ID (BSSID),避免其他人追蹤這部裝置。</translation> <translation id="7705524343798198388">VPN</translation> <translation id="7707108266051544351">這個網站無法使用動作感應器。</translation> <translation id="7707922173985738739">使用行動數據</translation> @@ -7458,6 +7479,7 @@ <translation id="7881483672146086348">查看帳戶</translation> <translation id="7883792253546618164">你隨時可以取消訂閱。</translation> <translation id="7884372232153418877">{NUM_SITES,plural, =1{查看傳送大量通知的網站 (1 個)}other{查看傳送大量通知的網站 ({NUM_SITES} 個)}}</translation> +<translation id="7884446017008693258">無線基地台設定</translation> <translation id="788453346724465748">正在載入帳戶資訊...</translation> <translation id="7886279613512920452">{COUNT,plural, =1{1 個項目}other{# 個項目}}</translation> <translation id="7886605625338676841">eSIM 卡</translation> @@ -7545,6 +7567,7 @@ <translation id="7952904276017482715">預期的 ID 為「<ph name="EXPECTED_ID" />」,但實際的 ID 為「<ph name="NEW_ID" />」</translation> <translation id="7953669802889559161">輸入法</translation> <translation id="7953955868932471628">管理快速鍵</translation> +<translation id="7955105108888461311">要求存取權</translation> <translation id="7955177647836564772">如果 Smart Lock 已開啟,且手機處於解鎖狀態,你就不必輸入密碼或 PIN 碼</translation> <translation id="7956373551960864128">已儲存的印表機</translation> <translation id="7957074856830851026">查看裝置資訊,例如裝置序號或資產 ID</translation> @@ -7683,6 +7706,7 @@ <ph name="BEGIN_PARAGRAPH3" />你可以在「設定」中停用這項服務。<ph name="END_PARAGRAPH3" /></translation> <translation id="8076492880354921740">分頁</translation> <translation id="8076835018653442223">管理員停用了裝置本機檔案的存取權</translation> +<translation id="8077120325605624147">你造訪的網站都能對你顯示所有廣告</translation> <translation id="80798452873915119">網站可以要求管理所有螢幕上的視窗</translation> <translation id="808089508890593134">Google</translation> <translation id="8081623398548615289">工作階段是由 <ph name="MANAGER_NAME" /> 管理。管理員可以刪除設定檔並監控網路流量。</translation> @@ -8195,6 +8219,7 @@ <translation id="8557180006508471423">請在 Mac 的「定位服務」中開啟「Google Chrome」</translation> <translation id="8557856025359704738">下次下載日期為 <ph name="NEXT_DATE_DOWNLOAD" />。</translation> <translation id="8559858985063901027">密碼金鑰</translation> +<translation id="8559961053328923750">Chrome 會限制網站為評估廣告成效而透過瀏覽器分享的資料總量</translation> <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有網址(&N)}=1{在新視窗中開啟(&N)}other{在新視窗中開啟所有 ({COUNT} 個) 網址(&N)}}</translation> <translation id="8561206103590473338">大象</translation> <translation id="8561565784790166472">執行時請特別注意</translation> @@ -8336,6 +8361,7 @@ <translation id="8678933587484842200">你希望如何啟動這個應用程式?</translation> <translation id="8680251145628383637">只要登入帳戶,你在任何裝置上都能取得自己的書籤、歷史記錄和密碼,並套用相同的設定。此外,系統還會自動讓您登入各項 Google 服務。</translation> <translation id="8681614230122836773">Chrome 發現你的電腦安裝了有害軟體</translation> +<translation id="8681886425883659911">已在網站上封鎖已知的侵入式廣告或誤導性廣告</translation> <translation id="8682730193597992579"><ph name="PRINTER_NAME" /> 已連接且準備就緒</translation> <translation id="8687103160920393343">取消下載 <ph name="FILE_NAME" /></translation> <translation id="8688672835843460752">可用空間</translation> @@ -8706,6 +8732,7 @@ <translation id="9021662811137657072">系統偵測到病毒</translation> <translation id="902236149563113779">網站通常會追蹤你的攝影機位置,以提供遊戲或抬頭顯示導航等 AR 功能</translation> <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在這部電腦上使用這個帳戶。</translation> +<translation id="9022871169049522985">網站和廣告商可評估廣告成效</translation> <translation id="9023015617655685412">將此分頁加入書籤...</translation> <translation id="9023909777842748145">即使關閉了這項功能,你的裝置仍然可以傳送基本服務 (例如系統更新和安全防護) 所需的資訊。</translation> <translation id="9024127637873500333">在新分頁中開啟(&O)</translation> @@ -8835,6 +8862,7 @@ <translation id="9128335130883257666">開啟<ph name="INPUT_METHOD_NAME" />的設定頁面</translation> <translation id="9128870381267983090">連線至網路</translation> <translation id="9130015405878219958">輸入的模式無效。</translation> +<translation id="9131209053278896908">這裡會顯示已封鎖的網站</translation> <translation id="9131487537093447019">透過藍牙裝置收發訊息。</translation> <translation id="913383674572270194">{NUM_BOOKMARKS,plural, =1{1 個書籤}other{# 個書籤}}</translation> <translation id="9134066738478820307">網站可以使用 ID 來播放受保護的內容</translation> @@ -8888,6 +8916,7 @@ <translation id="9180281769944411366">正在啟動 Linux 容器,過程可能需要幾分鐘。</translation> <translation id="9180380851667544951">網站可以分享你的螢幕畫面</translation> <translation id="9182556968660520230">禁止網站播放受保護內容</translation> +<translation id="9183331776983279456">Chrome 會自動刪除 4 週前造訪的網站,但你再次造訪的網站可能會重新加回清單。你也可以封鎖網站,讓該網站無法為你提供建議廣告。</translation> <translation id="918352324374649435">{COUNT,plural, =1{應用程式}other{# 個應用程式}}</translation> <translation id="9186963452600581158">使用孩子的 Google 帳戶登入</translation> <translation id="9187967020623675250">按鍵不符。按下任意鍵即可<ph name="RESPONSE" />。</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index d3a5c83..ddb07e80 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -772,6 +772,7 @@ <translation id="168715261339224929">Ukuze uthole amabhukhimakhi akho kuwo onke amadivayisi akho, vula ukuvumelanisa.</translation> <translation id="1688867105868176567">Sula idatha yesayithi?</translation> <translation id="1688935057616748272">Thayipha incwadi</translation> +<translation id="1689333818294560261">Isiteketiso</translation> <translation id="168991973552362966">Engeza iphrinta eseduzane</translation> <translation id="1689945336726856614">Kopisha i-&URL</translation> <translation id="1692115862433274081">Sebenzisa enye i-akhawunti</translation> @@ -1531,7 +1532,6 @@ <translation id="2329597144923131178">Ngena ngemvume ukuze uthole amabhukhimakhi wakho, umlando, amaphasiwedi, nezinye izilungiselelo kuwo wonke amadivayisi wakho.</translation> <translation id="2332115969598251205">Ayikwazi ukulayisha amadivayisi alondolozwe ku-<ph name="PRIMARY_EMAIL" />. Hlola ukuxhumeka kwakho kwe-inthanethi uphinde uzame futhi.</translation> <translation id="2332131598580221120">Buka esitolo</translation> -<translation id="2332192922827071008">Vula okuthandayo</translation> <translation id="2332515770639153015">Ukuphequlula Ngokuphepha Okugqamile kuvuliwe</translation> <translation id="2332742915001411729">Sethela kabusha kokuzenzakalelayo</translation> <translation id="2332948465534020594">Ukungaphazamisi kunikwe amandla</translation> @@ -4307,7 +4307,6 @@ <translation id="4893336867552636863">Lokhu kuzosula unaphakade idatha yokuphequlula kusuka kule divayisi.</translation> <translation id="4893454800196085005">Kuhle - i-DVD</translation> <translation id="4893522937062257019">Ekukhiyeni kwesikrini</translation> -<translation id="4897496410259333978">Ukuthola ulwazi olwengeziwe, xhumana nomlawuli wakho.</translation> <translation id="4898011734382862273">Isitifiketi se-"<ph name="CERTIFICATE_NAME" />" simele abasemagunyeni wokunika isitifiketi</translation> <translation id="4899052647152077033">Phendukezela imibala</translation> <translation id="4899696330053002588">Iqukethe izikhangiso</translation> @@ -5846,7 +5845,6 @@ <translation id="6347010704471250799">Bonisa isaziso</translation> <translation id="6349101878882523185">Faka i-<ph name="APP_NAME" /></translation> <translation id="6354918092619878358">I-SECG elliptic curve secp256r1 (aka ANSI X9.62 prime256v1, NIST P-256)</translation> -<translation id="6355789186038748882">I-browser (ikhwalithi ye-alpha) yokuhlola! Ezinye izakhi azikho noma aziphelelanga. Bika izinkinga ngokuthi: Usizo > "Bika inkinga..."</translation> <translation id="635609604405270300">Gcina idivayisi ivuliwe</translation> <translation id="63566973648609420">Umuntu onomushwana wakho wokungena kuphela onafunda idatha yakho ebetheliwe. Umushwana wokungena awuthunyelwa ku-Google noma awugcinwa kuyo. Uma ukhohlwe umushwana wakho wokungena noma ufuna ukushintsha lesi silungiselelo, kuzomele <ph name="BEGIN_LINK" />usethe kabusha ukuvumelanisa<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Amanye amlinki asekelwayo asazovuleka ku-<ph name="APP_NAME" /> noma ku-<ph name="APP_NAME_2" />.</translation> @@ -7014,7 +7012,6 @@ <translation id="7434757724413878233">Ukushesha kwegundane</translation> <translation id="7434969625063495310">Ayikwazanga ukungeza iseva yokuphrinta. Sicela uhlole ukulungiswa kweseva bese uyazama futhi.</translation> <translation id="7436921188514130341">Hawu, iphutha! Kube nephutha ngesikhathi sokuqamba kabusha.</translation> -<translation id="7438495332316988804">Isiphequluli esijwayelekile singatholwa ngokuthayipha ukuthi "Chrome" Esiqalisini.</translation> <translation id="7439519621174723623">Engeza igama ledivayisi ukuze uqhubeke</translation> <translation id="7441736921018636843">Ukuze ushintshe lesi silungiselelo, <ph name="BEGIN_LINK" />setha kabusha ukuvumelanisa<ph name="END_LINK" /> ukuze ususe umshwana wakho wokuvumelanisa</translation> <translation id="7441830548568730290">Abanye abasebenzisi</translation> @@ -7594,6 +7591,7 @@ <translation id="7952904276017482715">I-ID elindelwe ngu-"<ph name="EXPECTED_ID" />", kodwa i-ID kube ngu-"<ph name="NEW_ID" />"</translation> <translation id="7953669802889559161">Okokufaka</translation> <translation id="7953955868932471628">Phatha izinqamuleli</translation> +<translation id="7955105108888461311">Zibuzele mathupha</translation> <translation id="7955177647836564772">Uma i-Smart Lock sivuliwe futhi ifoni yakho ivuliwe, awudingi ukufaka iphasiwedi noma iphinikhodi</translation> <translation id="7956373551960864128">Amaphrinta akho alondoloziwe</translation> <translation id="7957074856830851026">Bona ulwazi lwedivayisi, njengenombolo yomkhiqizo noma i-ID yefa</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index f5cfa69..6e08ca1 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -279,7 +279,7 @@ <translation id="6418662306461808273">¿Cambiar a un perfil de Chrome?</translation> <translation id="6506909944137591434">Chrome necesita el permiso de la cámara para crear un mapa 3D de tu entorno</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> ‑ Google Chrome Dev</translation> -<translation id="659498884637196217">En el gestor de contraseñas de Google de este dispositivo</translation> +<translation id="659498884637196217">En el Gestor de contraseñas de Google de este dispositivo</translation> <translation id="6632473616050862500">ChromeOS Flex se ha creado gracias a <ph name="BEGIN_LINK_CROS_OSS" />software libre<ph name="END_LINK_CROS_OSS" /> adicional.</translation> <translation id="6676384891291319759">Accede a Internet.</translation> <translation id="6679975945624592337">Permitir que Google Chrome se ejecute en segundo plano</translation> @@ -354,7 +354,7 @@ <translation id="7951272445806340501">ChromeOS Flex debe reiniciarse para aplicar la actualización.</translation> <translation id="7962368738413920945">Es probable que los sitios funcionen como deben, pero no te recordarán tras cerrar todas las ventanas de Chrome.</translation> <translation id="7962410387636238736">Este ordenador dejará de recibir actualizaciones de Google Chrome porque ya no es compatible con Windows XP ni Windows Vista.</translation> -<translation id="8005666035647241369">En el gestor de contraseñas de Google de este dispositivo</translation> +<translation id="8005666035647241369">En el Gestor de contraseñas de Google de este dispositivo</translation> <translation id="8008534537613507642">Reinstalar Chrome</translation> <translation id="8013993649590906847">Si una imagen no tiene ninguna descripción útil, Chrome intentará proporcionártela. Para crear las descripciones, las imágenes se envían a Google.</translation> <translation id="80471789339884597">Gracias por realizar la instalación. Debes reiniciar todos tus navegadores para poder usar <ph name="BUNDLE_NAME" />.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb index cb4d9a0a..962e8866 100644 --- a/chrome/app/resources/google_chrome_strings_th.xtb +++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -345,7 +345,7 @@ <translation id="7951272445806340501">Chrome OS Flex ต้องรีสตาร์ทเพื่อใช้การอัปเดต</translation> <translation id="7962368738413920945">เว็บไซต์อาจทำงานได้ตามที่ต้องการแต่จะไม่จดจำคุณหลังจากที่ปิดหน้าต่าง Chrome ทั้งหมด</translation> <translation id="7962410387636238736">คอมพิวเตอร์เครื่องนี้จะไม่ได้รับการอัปเดต Google Chrome อีกต่อไปเพราะระบบไม่รองรับ Windows XP และ Windows Vista แล้ว</translation> -<translation id="8005666035647241369">ที่เครื่องมือจัดการรหัสผ่านของ Google ในอุปกรณ์นี้</translation> +<translation id="8005666035647241369">ที่ Google เครื่องมือจัดการรหัสผ่านในอุปกรณ์นี้</translation> <translation id="8008534537613507642">ติดตั้ง Chrome ใหม่</translation> <translation id="8013993649590906847">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chrome จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย</translation> <translation id="80471789339884597">ขอขอบคุณที่ติดตั้ง คุณต้องรีสตาร์ทเบราว์เซอร์ทั้งหมดก่อนใช้ <ph name="BUNDLE_NAME" /></translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index 0cab685..f5ec3d5 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -1875,6 +1875,12 @@ <message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_LEARN_MORE_LINK" desc="Text read by screen readers to help users distinguish this 'Learn more' link from others that might get added to this page."> Learn more </message> + <message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_REGION_A11Y_DESCRIPTION" desc="An explanation read by screen readers that describes the list of topics."> + List of topics estimated by Chrome based on your recent browsing history + </message> + <message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_REGION_A11Y_DESCRIPTION" desc="Read by screen readers to describe the list of blocked topics."> + List of topics you blocked that you don't want shared with sites + </message> <message name="IDS_SETTINGS_TOPICS_PAGE_FOOTER" desc="This footer helps the user understand that this setting is just one signal among others that affect whether this user sees personalized ads on a site. We define 'personalize' as 'when Google provides recommendations and other content for users based on their data'. At a high level, there are 4 things that affect whether an ad is personalized in this context: * 'this setting' refers to the 'Ad topics' setting. The user is on this page. * 'Site-suggested ads': this is a link to the other new ad setting Chrome is launching and that sites can use to personalize ads a user sees. * 'cookie settings': this is a link to the cookies control section in Chrome settings. The Privacy Sandbox project deprecates third-party cookies, but it's a process, and we're launching new functionality that will replace important functionality of cookies. Until third-party cookies are deprecated, the two systems remain active in Chrome. * 'site you're viewing personalizes ads': When a user engages with a site, Chrome has no control over whether that site shows the user personalized ads. Imagine you visit www.interesting-site.com and they know a lot about you already based on previous visits. They can personalize content and ads to you if they like. They can use an ad-serving product, like Facebook or Google Ads to deliver personalized ads. They can also use the new Privacy Sandbox APIs (if they so choose) in order to get more information about the user that could be helpful to them in order to personalize ads. Those 2 APIs (settings, from the user's perspective), are 'Ad topics' and 'Site-suggested ads'."> As you browse, whether an ad you see is personalized depends on this setting, <ph name="BEGIN_LINK1"><a href="$1" target="_blank"></ph>Site-suggested ads<ph name="LINK_END1"></a></ph>, your <ph name="BEGIN_LINK2"><a href="$2" target="_blank"></ph>cookie settings<ph name="LINK_END2"></a></ph>, and if the site you’re viewing personalizes ads </message> @@ -1904,6 +1910,9 @@ <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY" desc="1 of 2 descriptions that appear if there are no sites in the list. This string is for the case that the Site-suggested ads setting IS on, but the user hasn't browsed any sites that have called the Site-suggested ads API."> It can take up to a week for a list of sites to appear here based on your browsing history </message> + <message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION" desc="Read by screen readers to describe a list of sites that appear on the page."> + List of recent sites you visited that can suggest ads to other sites as you keep browsing + </message> <message name="IDS_SETTINGS_FLEDGE_PAGE_SEE_ALL_SITES_LABEL" desc="Text that serves as a button. Because the list of sites might be long, we only show the most recent sites. This button allows the user to browse all sites (because sites are auto-deleted every 4 weeks, the list is never older than 4 weeks)."> See all sites </message> @@ -1922,6 +1931,9 @@ <message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION_EMPTY" desc="2 of 2 possible descriptions beneath the 'Sites you blocked' title. In this case, the list is empty (the user hasn't blocked any sites)."> Blocked sites appear here </message> + <message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_REGION_A11Y_DESCRIPTION" desc="Read by screen readers to describe what this list of sites is."> + List of sites you blocked that you don't want suggesting ads to other sites + </message> <message name="IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE" desc="A button associated with each of the user's blocked sites. When the user clicks 'Add', it makes that site eligible. Clicking 'Add' doesn't automatically put the added site back onto the list of 'Sites'. For that to happen, a user would have to browse to that site again and the site would have to use the Site-suggested ads to save interests for this user."> Add </message>
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_REGION_A11Y_DESCRIPTION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_REGION_A11Y_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..9d25711 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_REGION_A11Y_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +20a6c39166037706b32e67e3fdeba595a7819a90 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..9d25711 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +20a6c39166037706b32e67e3fdeba595a7819a90 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..f3392960 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +71b2f8c4aa547985253166764a1e4cfb65f2b8ca \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..f3392960 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_REGION_A11Y_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +71b2f8c4aa547985253166764a1e4cfb65f2b8ca \ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 3eb9aec4..f56c70b 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -4599,6 +4599,8 @@ if (is_chromeos_ash) { assert(enable_system_notifications) sources += [ + "apps/app_deduplication_service/app_deduplication_mapper.cc", + "apps/app_deduplication_service/app_deduplication_mapper.h", "apps/app_deduplication_service/app_deduplication_server_connector.cc", "apps/app_deduplication_service/app_deduplication_server_connector.h", "apps/app_deduplication_service/app_deduplication_service.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 246de16..4ee06fc46 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -5030,6 +5030,9 @@ {"files-app-experimental", flag_descriptions::kFilesAppExperimentalName, flag_descriptions::kFilesAppExperimentalDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kFilesAppExperimental)}, + {"files-conflict-dialog", flag_descriptions::kFilesConflictDialogName, + flag_descriptions::kFilesConflictDialogDescription, kOsCrOS, + FEATURE_VALUE_TYPE(ash::features::kFilesConflictDialog)}, {"files-inline-sync-status", flag_descriptions::kFilesInlineSyncStatusName, flag_descriptions::kFilesInlineSyncStatusDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kFilesInlineSyncStatus)}, @@ -7948,10 +7951,6 @@ flag_descriptions::kSanitizerApiDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kSanitizerAPI)}, - {"sanitizer-api-v0", flag_descriptions::kSanitizerApiv0Name, - flag_descriptions::kSanitizerApiv0Description, kOsAll, - FEATURE_VALUE_TYPE(blink::features::kSanitizerAPIv0)}, - #if BUILDFLAG(IS_CHROMEOS_ASH) {"productivity-reorder-apps", flag_descriptions::kLauncherAppSortName, flag_descriptions::kLauncherAppSortDescription, kOsCrOS,
diff --git a/chrome/browser/android/browserservices/metrics/java/src/org/chromium/chrome/browser/browserservices/metrics/WebApkUmaRecorder.java b/chrome/browser/android/browserservices/metrics/java/src/org/chromium/chrome/browser/browserservices/metrics/WebApkUmaRecorder.java index 900808ca..2d75e7e 100644 --- a/chrome/browser/android/browserservices/metrics/java/src/org/chromium/chrome/browser/browserservices/metrics/WebApkUmaRecorder.java +++ b/chrome/browser/android/browserservices/metrics/java/src/org/chromium/chrome/browser/browserservices/metrics/WebApkUmaRecorder.java
@@ -96,8 +96,6 @@ "WebApk.Startup.Cold.ShellLaunchToSplashscreenVisible"; private static final String HISTOGRAM_NEW_STYLE_LAUNCH_TO_SPLASHSCREEN_VISIBLE = "WebApk.Startup.Cold.NewStyle.ShellLaunchToSplashscreenVisible"; - private static final String HISTOGRAM_LAUNCH_TO_SPLASHSCREEN_HIDDEN = - "WebApk.Startup.Cold.ShellLaunchToSplashscreenHidden"; private static final int WEBAPK_OPEN_MAX = 3; public static final int WEBAPK_OPEN_LAUNCH_SUCCESS = 0; @@ -144,15 +142,6 @@ HISTOGRAM_NEW_STYLE_LAUNCH_TO_SPLASHSCREEN_VISIBLE, durationMs); } - /** - * Records duration between starting of the WebAPK shell until the splashscreen is hidden. - * @param durationMs duration in milliseconds - */ - public static void recordShellApkLaunchToSplashHidden(long durationMs) { - RecordHistogram.recordMediumTimesHistogram( - HISTOGRAM_LAUNCH_TO_SPLASHSCREEN_HIDDEN, durationMs); - } - /** Records the notification permission status for a WebAPK. */ public static void recordNotificationPermissionStatus(@ContentSettingValues int settingValue) { RecordHistogram.recordEnumeratedHistogram("WebApk.Notification.Permission.Status2",
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.cc b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.cc new file mode 100644 index 0000000..9ad10ec --- /dev/null +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.cc
@@ -0,0 +1,51 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h" + +#include "base/logging.h" + +namespace apps::deduplication { + +AppDeduplicationMapper::AppDeduplicationMapper() = default; + +AppDeduplicationMapper::~AppDeduplicationMapper() = default; + +absl::optional<proto::DeduplicateData> +AppDeduplicationMapper::ToDeduplicateData( + const proto::DeduplicateResponse& response) { + if (response.app_group().empty()) { + LOG(ERROR) << "No duplicate groups found."; + return absl::nullopt; + } + + proto::DeduplicateData deduplicate_data; + for (const auto& group : response.app_group()) { + if (group.app().empty()) { + LOG(ERROR) << "No apps found in duplicate group."; + return absl::nullopt; + } + + auto* deduplicate_group = deduplicate_data.add_app_group(); + for (const auto& app : group.app()) { + if (!app.has_platform() || app.platform().empty()) { + LOG(ERROR) << "The platform for an app cannot be empty."; + return absl::nullopt; + } + + if (!app.has_app_id() || app.app_id().empty()) { + LOG(ERROR) << "The app_id for an app cannot be empty."; + return absl::nullopt; + } + + auto* deduplicate_app = deduplicate_group->add_app(); + deduplicate_app->set_app_id(app.app_id()); + deduplicate_app->set_platform(app.platform()); + } + } + + return deduplicate_data; +} + +} // namespace apps::deduplication
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h new file mode 100644 index 0000000..c0be37f3 --- /dev/null +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h
@@ -0,0 +1,31 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_APPS_APP_DEDUPLICATION_SERVICE_APP_DEDUPLICATION_MAPPER_H_ +#define CHROME_BROWSER_APPS_APP_DEDUPLICATION_SERVICE_APP_DEDUPLICATION_MAPPER_H_ + +#include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" +#include "chrome/browser/apps/app_deduplication_service/proto/deduplication_data.pb.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace apps::deduplication { + +// The AppDeduplicationMapper is used to map between the DeduplicateResponse +// proto returned from the deduplication endpoint in the Fondue server and +// the DeduplicateData proto. +class AppDeduplicationMapper { + public: + AppDeduplicationMapper(); + AppDeduplicationMapper(const AppDeduplicationMapper&) = delete; + AppDeduplicationMapper& operator=(const AppDeduplicationMapper&) = delete; + ~AppDeduplicationMapper(); + + // Maps the deduplicate response proto to the deduplicate data proto. + absl::optional<proto::DeduplicateData> ToDeduplicateData( + const proto::DeduplicateResponse& response); +}; + +} // namespace apps::deduplication + +#endif // CHROME_BROWSER_APPS_APP_DEDUPLICATION_SERVICE_APP_DEDUPLICATION_MAPPER_H_
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper_unittest.cc b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper_unittest.cc new file mode 100644 index 0000000..55d0f2e2 --- /dev/null +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_mapper_unittest.cc
@@ -0,0 +1,62 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h" +#include "base/logging.h" +#include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" +#include "chrome/browser/apps/app_deduplication_service/proto/deduplication_data.pb.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace apps::deduplication { + +class AppDeduplicationMapperTest : public testing::Test { + protected: + AppDeduplicationMapper mapper_; +}; + +TEST_F(AppDeduplicationMapperTest, TestDeduplicateResponseValid) { + proto::DeduplicateResponse response; + auto* app = response.add_app_group()->add_app(); + app->set_app_id("com.skype.raidar"); + app->set_platform("phonehub"); + + absl::optional<proto::DeduplicateData> data = + mapper_.ToDeduplicateData(response); + ASSERT_TRUE(data.has_value()); + EXPECT_EQ(data->app_group_size(), 1); + auto observed_app = data->app_group(0).app(0); + EXPECT_EQ(observed_app.app_id(), "com.skype.raidar"); + EXPECT_EQ(observed_app.platform(), "phonehub"); +} + +TEST_F(AppDeduplicationMapperTest, TestDeduplicateResponseEmpty) { + proto::DeduplicateResponse empty_response; + ASSERT_FALSE(mapper_.ToDeduplicateData(empty_response).has_value()); +} + +TEST_F(AppDeduplicationMapperTest, TestDeduplicateResponseEmptyAppGroup) { + proto::DeduplicateResponse response; + response.add_app_group(); + + ASSERT_FALSE(mapper_.ToDeduplicateData(response).has_value()); +} + +TEST_F(AppDeduplicationMapperTest, TestDeduplicateResponseEmptyPlatform) { + proto::DeduplicateResponse response; + auto* app = response.add_app_group()->add_app(); + app->set_app_id("com.skype.raidar"); + + ASSERT_FALSE(mapper_.ToDeduplicateData(response).has_value()); +} + +TEST_F(AppDeduplicationMapperTest, TestDeduplicateResponseEmptyAppId) { + proto::DeduplicateResponse response; + auto* app = response.add_app_group()->add_app(); + app->set_platform("phonehub"); + + ASSERT_FALSE(mapper_.ToDeduplicateData(response).has_value()); +} + +} // namespace apps::deduplication
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.cc b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.cc index 3465fbc1..6ae4df3 100644 --- a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.cc +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.cc
@@ -5,6 +5,8 @@ #include "chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h" #include "base/callback.h" +#include "chrome/browser/apps/app_deduplication_service/app_deduplication_mapper.h" +#include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" #include "google_apis/google_api_keys.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/simple_url_loader.h" @@ -135,7 +137,18 @@ return; } - std::move(callback).Run(std::move(response)); + deduplication::AppDeduplicationMapper mapper = + deduplication::AppDeduplicationMapper(); + absl::optional<proto::DeduplicateData> deduplicate_data = + mapper.ToDeduplicateData(response); + + if (!deduplicate_data.has_value()) { + LOG(ERROR) << "Mapping to deduplicate data proto failed."; + std::move(callback).Run(absl::nullopt); + return; + } + + std::move(callback).Run(std::move(deduplicate_data)); } } // namespace apps
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h index 1e0f8bf..21434f7 100644 --- a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h
@@ -12,7 +12,7 @@ #include "base/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" -#include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" +#include "chrome/browser/apps/app_deduplication_service/proto/deduplication_data.pb.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -25,7 +25,7 @@ namespace apps { using GetDeduplicateAppsCallback = - base::OnceCallback<void(absl::optional<proto::DeduplicateResponse>)>; + base::OnceCallback<void(absl::optional<proto::DeduplicateData>)>; // The AppDeduplicationServerConnector is used to talk to the App Deduplication // Service API endpoint in the Fondue server. Its role is to make requests and
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector_unittest.cc b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector_unittest.cc index 95ee8bf..35d4092 100644 --- a/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector_unittest.cc +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector_unittest.cc
@@ -11,6 +11,7 @@ #include "base/test/bind.h" #include "base/test/test_future.h" #include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" +#include "chrome/browser/apps/app_deduplication_service/proto/deduplication_data.pb.h" #include "components/version_info/channel.h" #include "content/public/test/browser_task_environment.h" #include "net/http/http_request_headers.h" @@ -77,8 +78,7 @@ AppDeduplicationServerConnector::GetServerUrl().spec(), response.SerializeAsString()); - base::test::TestFuture<absl::optional<proto::DeduplicateResponse>> - test_callback; + base::test::TestFuture<absl::optional<proto::DeduplicateData>> test_callback; server_connector_.GetDeduplicateAppsFromServer(test_shared_loader_factory_, test_callback.GetCallback()); auto observed_response = test_callback.Get(); @@ -91,7 +91,7 @@ url_loader_factory_.AddResponse( AppDeduplicationServerConnector::GetServerUrl().spec(), ""); - base::test::TestFuture<absl::optional<proto::DeduplicateResponse>> response; + base::test::TestFuture<absl::optional<proto::DeduplicateData>> response; server_connector_.GetDeduplicateAppsFromServer(test_shared_loader_factory_, response.GetCallback()); EXPECT_FALSE(response.Get().has_value()); @@ -102,7 +102,7 @@ AppDeduplicationServerConnector::GetServerUrl().spec(), /*content=*/"", net::HTTP_INTERNAL_SERVER_ERROR); - base::test::TestFuture<absl::optional<proto::DeduplicateResponse>> response; + base::test::TestFuture<absl::optional<proto::DeduplicateData>> response; server_connector_.GetDeduplicateAppsFromServer(test_shared_loader_factory_, response.GetCallback()); EXPECT_FALSE(response.Get().has_value()); @@ -115,7 +115,7 @@ network::mojom::URLResponseHead::New(), /*content=*/"", network::URLLoaderCompletionStatus(net::ERR_INSUFFICIENT_RESOURCES)); - base::test::TestFuture<absl::optional<proto::DeduplicateResponse>> response; + base::test::TestFuture<absl::optional<proto::DeduplicateData>> response; server_connector_.GetDeduplicateAppsFromServer(test_shared_loader_factory_, response.GetCallback()); EXPECT_FALSE(response.Get().has_value());
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_service.cc b/chrome/browser/apps/app_deduplication_service/app_deduplication_service.cc index 7b1122a..16c26029 100644 --- a/chrome/browser/apps/app_deduplication_service/app_deduplication_service.cc +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_service.cc
@@ -196,7 +196,7 @@ } void AppDeduplicationService::OnGetDeduplicateDataFromServerCompleted( - absl::optional<proto::DeduplicateResponse> response) { + absl::optional<proto::DeduplicateData> response) { // TODO(b/264216262): handle response data and store in disk. }
diff --git a/chrome/browser/apps/app_deduplication_service/app_deduplication_service.h b/chrome/browser/apps/app_deduplication_service/app_deduplication_service.h index c188387..136cbe2 100644 --- a/chrome/browser/apps/app_deduplication_service/app_deduplication_service.h +++ b/chrome/browser/apps/app_deduplication_service/app_deduplication_service.h
@@ -14,7 +14,7 @@ #include "chrome/browser/apps/app_deduplication_service/app_deduplication_server_connector.h" #include "chrome/browser/apps/app_deduplication_service/duplicate_group.h" #include "chrome/browser/apps/app_deduplication_service/entry_types.h" -#include "chrome/browser/apps/app_deduplication_service/proto/app_deduplication.pb.h" +#include "chrome/browser/apps/app_deduplication_service/proto/deduplication_data.pb.h" #include "chrome/browser/apps/app_provisioning_service/app_provisioning_data_manager.h" #include "chrome/browser/apps/app_provisioning_service/proto/app_data.pb.h" #include "components/keyed_service/core/keyed_service.h" @@ -75,7 +75,7 @@ // Processes data retrieved by server connector and stores in disk. void OnGetDeduplicateDataFromServerCompleted( - absl::optional<proto::DeduplicateResponse> response); + absl::optional<proto::DeduplicateData> response); std::map<uint32_t, DuplicateGroup> duplication_map_; std::map<EntryId, uint32_t> entry_to_group_map_;
diff --git a/chrome/browser/apps/app_deduplication_service/proto/BUILD.gn b/chrome/browser/apps/app_deduplication_service/proto/BUILD.gn index 15d86bc1..013f213 100644 --- a/chrome/browser/apps/app_deduplication_service/proto/BUILD.gn +++ b/chrome/browser/apps/app_deduplication_service/proto/BUILD.gn
@@ -5,5 +5,8 @@ import("//third_party/protobuf/proto_library.gni") proto_library("proto") { - sources = [ "app_deduplication.proto" ] + sources = [ + "app_deduplication.proto", + "deduplication_data.proto", + ] }
diff --git a/chrome/browser/apps/app_deduplication_service/proto/deduplication_data.proto b/chrome/browser/apps/app_deduplication_service/proto/deduplication_data.proto new file mode 100644 index 0000000..2ec9825b --- /dev/null +++ b/chrome/browser/apps/app_deduplication_service/proto/deduplication_data.proto
@@ -0,0 +1,31 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto2"; + +option optimize_for = LITE_RUNTIME; + +package apps.proto; + +// This file represents the format of the deduplication data stored on disk. +// The DeduplicateResponse proto will be mapped to the DeduplicateData proto +// before being saved to disk. + +message Application { + // The unique App identifier for the given platform. + optional string app_id = 1; + + // The platform of the Duplicated App (e.g. PhoneHub, ARC, Website). + optional string platform = 2; +} + +message DeduplicateData { + // The list of Application Groups corresponding to the requested applications. + repeated Group app_group = 1; + + message Group { + // Applications which belong to the App Group. + repeated Application app = 1; + } +}
diff --git a/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc b/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc index 58ac21e..2c022f4 100644 --- a/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc +++ b/chrome/browser/apps/app_preload_service/web_app_preload_installer.cc
@@ -6,24 +6,17 @@ #include <memory> -#include "base/strings/string_util.h" -#include "base/strings/utf_string_conversions.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h" -#include "chrome/browser/web_applications/web_app_command_scheduler.h" +#include "chrome/browser/web_applications/commands/install_from_manifest_command.h" +#include "chrome/browser/web_applications/web_app_command_manager.h" #include "chrome/browser/web_applications/web_app_helpers.h" -#include "chrome/browser/web_applications/web_app_install_params.h" #include "chrome/browser/web_applications/web_app_provider.h" -#include "chrome/browser/web_applications/web_app_utils.h" #include "components/webapps/browser/install_result_code.h" #include "net/traffic_annotation/network_traffic_annotation.h" -#include "services/data_decoder/public/cpp/data_decoder.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/url_response_head.mojom.h" -#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h" -#include "url/origin.h" namespace { @@ -31,7 +24,8 @@ constexpr int kMaxManifestSizeInBytes = 1024 * 1024; constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation = - net::DefineNetworkTrafficAnnotation("app_preload_service_web_installer", R"( + net::DefineNetworkTrafficAnnotation("app_preload_service_web_installer", + R"( semantics { sender: "App Preload Service" description: @@ -69,93 +63,6 @@ WebAppPreloadInstaller::~WebAppPreloadInstaller() = default; -std::unique_ptr<WebAppInstallInfo> -WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL document_url, - GURL original_manifest_url, - base::Value::Dict& manifest) { - auto install_info = std::make_unique<WebAppInstallInfo>(); - - // Shared error message - constexpr char kSharedError[] = - "Unable to convert manifest into WebAppInstallInfo. Field that was not " - "defined or was the wrong type: "; - - if (!document_url.is_valid()) { - VLOG(1) << kSharedError << "Document URL"; - return nullptr; - } - - if (!original_manifest_url.is_valid()) { - VLOG(1) << kSharedError << "Original Manifest URL"; - return nullptr; - } - - // Manifest keys - constexpr char kName[] = "name"; - constexpr char kStartUrl[] = "start_url"; - constexpr char kManifestId[] = "id"; - constexpr char kScope[] = "scope"; - - // Title - auto* title = manifest.FindString(kName); - if (!title) { - VLOG(1) << kSharedError << kName; - return nullptr; - } - install_info->title = base::UTF8ToUTF16(*title); - - // Start URL - auto* start_url = manifest.FindString(kStartUrl); - if (!start_url) { - VLOG(1) << kSharedError << kStartUrl; - return nullptr; - } - install_info->start_url = original_manifest_url.Resolve(*start_url); - if (!install_info->start_url.is_valid()) { - VLOG(1) << kSharedError << kStartUrl << ". Value: " << *start_url; - return nullptr; - } - if (!url::IsSameOriginWith(document_url, install_info->start_url)) { - VLOG(1) << kSharedError << kStartUrl << ". Value: " << *start_url - << ". Mismatch in origin with document url: " << document_url; - return nullptr; - } - - // Manifest ID - auto* manifest_id = manifest.FindString(kManifestId); - if (manifest_id) { - GURL start_url_origin = install_info->start_url.GetWithEmptyPath(); - GURL processed_id = start_url_origin.Resolve(*manifest_id); - if (processed_id.is_valid() && - url::IsSameOriginWith(start_url_origin, processed_id)) { - install_info->manifest_id = processed_id.spec().substr( - processed_id.GetWithEmptyPath().spec().size()); - } - } - - // Scope - auto* scope = manifest.FindString(kScope); - if (scope) { - install_info->scope = original_manifest_url.Resolve(*scope); - } - - if (install_info->scope.is_empty() || !install_info->scope.is_valid() || - !url::IsSameOriginWith(install_info->start_url, install_info->scope) || - !base::StartsWith(install_info->start_url.path(), - install_info->scope.path(), - base::CompareCase::SENSITIVE)) { - install_info->scope = install_info->start_url; - } - - // Display mode - install_info->display_mode = blink::mojom::DisplayMode::kStandalone; - install_info->user_display_mode = - web_app::mojom::UserDisplayMode::kStandalone; - - return install_info; -} - void WebAppPreloadInstaller::InstallApp( const PreloadAppDefinition& app, WebAppPreloadInstalledCallback callback) { @@ -219,73 +126,16 @@ return; } - data_decoder::DataDecoder::ParseJsonIsolated( - *response, - base::BindOnce(&WebAppPreloadInstaller::OnManifestParsed, - weak_ptr_factory_.GetWeakPtr(), app, std::move(callback))); -} - -void WebAppPreloadInstaller::OnManifestParsed( - PreloadAppDefinition app, - WebAppPreloadInstalledCallback callback, - data_decoder::DataDecoder::ValueOrError parsing_result) { - if (!parsing_result.has_value() || !parsing_result->is_dict()) { - LOG(ERROR) << "Parsing the manifest for " << app.GetName() - << " has failed. Parsing error: " << parsing_result.error(); - std::move(callback).Run(/*success=*/false); - return; - } - - std::unique_ptr<WebAppInstallInfo> install_info = ManifestToWebAppInstallInfo( - GURL(app.GetWebAppManifestId()), app.GetWebAppOriginalManifestUrl(), - parsing_result->GetDict()); - - if (!install_info) { - LOG(ERROR) - << "Failed to convert parsed manifest into WebAppInstallInfo for app " - << app.GetName(); - std::move(callback).Run(/*success=*/false); - return; - } - - std::string local_manifest_id = web_app::GenerateAppIdUnhashed( - install_info->manifest_id, install_info->start_url); - if (app.GetWebAppManifestId() != local_manifest_id) { - // The data parsing has some inconsistencies with the server definition, so - // don't install the app. - LOG(ERROR) << app.GetName() - << " failed to install due to inconsistent manifest ID."; - LOG(ERROR) << "Server generated manifest ID: " << app.GetWebAppManifestId(); - LOG(ERROR) << "Locally generated manifest ID: " << local_manifest_id; - - // TODO(b/264493427): Add logging to record when this happens. - std::move(callback).Run(/*success=*/false); - return; - } - - SendInstallCommand(std::move(callback), std::move(install_info)); -} - -void WebAppPreloadInstaller::SendInstallCommand( - WebAppPreloadInstalledCallback callback, - std::unique_ptr<WebAppInstallInfo> install_info) { - web_app::WebAppInstallParams params; - params.add_to_quick_launch_bar = false; - auto* provider = web_app::WebAppProvider::GetForWebApps(profile_); - if (!install_info) { - std::move(callback).Run(/*success=*/false); - return; - } - - provider->scheduler().InstallFromInfoWithParams( - std::move(install_info), - /*overwrite_existing_manifest_fields=*/false, - webapps::WebappInstallSource::PRELOADED_OEM, - base::BindOnce(&WebAppPreloadInstaller::OnAppInstalled, - weak_ptr_factory_.GetWeakPtr(), std::move(callback)), - params); + provider->command_manager().ScheduleCommand( + std::make_unique<web_app::InstallFromManifestCommand>( + webapps::WebappInstallSource::PRELOADED_OEM, + /*document_url=*/GURL(app.GetWebAppManifestId()).GetWithEmptyPath(), + /*manifest_url=*/app.GetWebAppOriginalManifestUrl(), + std::move(*response), GetAppId(app), + base::BindOnce(&WebAppPreloadInstaller::OnAppInstalled, + weak_ptr_factory_.GetWeakPtr(), std::move(callback)))); } void WebAppPreloadInstaller::OnAppInstalled(
diff --git a/chrome/browser/apps/app_preload_service/web_app_preload_installer.h b/chrome/browser/apps/app_preload_service/web_app_preload_installer.h index d22a3b3..6c75920 100644 --- a/chrome/browser/apps/app_preload_service/web_app_preload_installer.h +++ b/chrome/browser/apps/app_preload_service/web_app_preload_installer.h
@@ -14,7 +14,6 @@ #include "chrome/browser/apps/app_preload_service/preload_app_definition.h" #include "chrome/browser/web_applications/web_app_id.h" #include "components/webapps/browser/install_result_code.h" -#include "services/data_decoder/public/cpp/data_decoder.h" class Profile; @@ -58,15 +57,10 @@ private: void InstallAppImpl(PreloadAppDefinition app, WebAppPreloadInstalledCallback callback); - void SendInstallCommand(WebAppPreloadInstalledCallback callback, - std::unique_ptr<WebAppInstallInfo> install_info); void OnManifestRetrieved(PreloadAppDefinition app, WebAppPreloadInstalledCallback callback, std::unique_ptr<network::SimpleURLLoader> url_loader, std::unique_ptr<std::string> response); - void OnManifestParsed(PreloadAppDefinition app, - WebAppPreloadInstalledCallback callback, - data_decoder::DataDecoder::ValueOrError parsing_result); void OnAppInstalled(WebAppPreloadInstalledCallback callback, const web_app::AppId& app_id, webapps::InstallResultCode code);
diff --git a/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc b/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc index 61774dd..2aea7f5 100644 --- a/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc +++ b/chrome/browser/apps/app_preload_service/web_app_preload_installer_unittest.cc
@@ -4,16 +4,12 @@ #include "chrome/browser/apps/app_preload_service/web_app_preload_installer.h" -#include "base/test/values_test_util.h" #include "chrome/browser/apps/app_preload_service/preload_app_definition.h" #include "chrome/browser/apps/app_preload_service/proto/app_provisioning.pb.h" -#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h" #include "chrome/browser/web_applications/test/web_app_install_test_utils.h" -#include "chrome/browser/web_applications/web_app_helpers.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h" namespace apps { @@ -44,174 +40,4 @@ "apignacaigpffemhdbhmnajajaccbckh"); } -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfo) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - ASSERT_TRUE(install_info); - EXPECT_EQ(install_info->manifest_id, "manifest_id"); - EXPECT_EQ(install_info->title, u"Peanut Types"); - EXPECT_EQ(install_info->start_url, "https://example.com/index.html"); - EXPECT_EQ(install_info->scope, "https://example.com/"); - EXPECT_EQ(install_info->display_mode, blink::mojom::DisplayMode::kStandalone); - EXPECT_EQ(install_info->user_display_mode, - web_app::mojom::UserDisplayMode::kStandalone); -} - -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfoRelativeId) { - constexpr char manifest[] = R"({ - "id": "/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - ASSERT_TRUE(install_info); - EXPECT_EQ(install_info->manifest_id, "manifest_id"); -} - -TEST_F(WebAppPreloadInstallerTest, - ManifestToWebAppInstallInfoInvalidManifestUrl) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "invalid"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - EXPECT_FALSE(install_info); -} - -TEST_F(WebAppPreloadInstallerTest, - ManifestToWebAppInstallInfoInvalidDocumentUrl) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "invalid"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - EXPECT_FALSE(install_info); -} - -TEST_F(WebAppPreloadInstallerTest, - ManifestToWebAppInstallInfoNoNameInManifest) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - EXPECT_FALSE(install_info); -} - -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfoNoManifestId) { - constexpr char manifest[] = R"({ - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - ASSERT_TRUE(install_info); - EXPECT_FALSE(install_info->manifest_id); - EXPECT_EQ(install_info->title, u"Peanut Types"); - EXPECT_EQ(install_info->start_url, "https://example.com/index.html"); - EXPECT_EQ(install_info->scope, "https://example.com/"); - EXPECT_EQ(install_info->display_mode, blink::mojom::DisplayMode::kStandalone); - EXPECT_EQ(install_info->user_display_mode, - web_app::mojom::UserDisplayMode::kStandalone); -} - -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfoInvalidStartUrl) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "https://exampleCDN.com/index.html", - "scope": "/" - })"; - constexpr char manifest_url[] = "https://exampleCDN.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - EXPECT_FALSE(install_info); -} - -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfoInvalidScope) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - "scope": "https://otherexample.com/" - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - ASSERT_TRUE(install_info); - EXPECT_EQ(install_info->scope, install_info->start_url); -} - -TEST_F(WebAppPreloadInstallerTest, ManifestToWebAppInstallInfoNoScope) { - constexpr char manifest[] = R"({ - "id": "https://example.com/manifest_id", - "name": "Peanut Types", - "start_url": "/index.html", - })"; - constexpr char manifest_url[] = "https://example.com/manifest.json"; - constexpr char document_url[] = "https://example.com/"; - - base::Value parsed_manifest = base::test::ParseJson(manifest); - auto install_info = WebAppPreloadInstaller::ManifestToWebAppInstallInfo( - GURL(document_url), GURL(manifest_url), parsed_manifest.GetDict()); - - ASSERT_TRUE(install_info); - EXPECT_EQ(install_info->scope, install_info->start_url); -} - } // namespace apps
diff --git a/chrome/browser/apps/app_service/app_icon/app_icon_util.cc b/chrome/browser/apps/app_service/app_icon/app_icon_util.cc index dac54c7..1c0b3a9 100644 --- a/chrome/browser/apps/app_service/app_icon/app_icon_util.cc +++ b/chrome/browser/apps/app_service/app_icon/app_icon_util.cc
@@ -178,8 +178,9 @@ } void ScheduleIconFoldersDeletion(const base::FilePath& base_path, - const std::vector<std::string>& app_ids) { - base::ThreadPool::PostTask( + const std::vector<std::string>& app_ids, + base::OnceCallback<void()> callback) { + base::ThreadPool::PostTaskAndReply( FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING}, base::BindOnce( [](const base::FilePath& base_path, @@ -188,7 +189,8 @@ base::DeletePathRecursively(GetIconFolderPath(base_path, app_id)); } }, - base_path, app_ids)); + base_path, app_ids), + std::move(callback)); } } // namespace apps
diff --git a/chrome/browser/apps/app_service/app_icon/app_icon_util.h b/chrome/browser/apps/app_service/app_icon/app_icon_util.h index ce4e1df..1cdbdd3 100644 --- a/chrome/browser/apps/app_service/app_icon/app_icon_util.h +++ b/chrome/browser/apps/app_service/app_icon/app_icon_util.h
@@ -131,9 +131,10 @@ const std::string& app_id, int32_t size_in_dip); -// Schedules deletion of the icon folders for `app_ids`. +// Schedules deletion of the icon folders for `app_ids`, then call `callback`. void ScheduleIconFoldersDeletion(const base::FilePath& base_path, - const std::vector<std::string>& app_ids); + const std::vector<std::string>& app_ids, + base::OnceCallback<void()> callback); } // namespace apps
diff --git a/chrome/browser/apps/app_service/app_service_proxy_ash.cc b/chrome/browser/apps/app_service/app_service_proxy_ash.cc index 115a8cf6..3d0992a 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_ash.cc +++ b/chrome/browser/apps/app_service/app_service_proxy_ash.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/containers/contains.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" @@ -201,12 +202,22 @@ for (const auto& delta : deltas) { if (delta->readiness != Readiness::kUnknown && !apps_util::IsInstalled(delta->readiness)) { + // If there's already a deletion in progress, skip the deletion request. + if (base::Contains(pending_read_icon_requests_, delta->app_id)) { + continue; + } + app_ids.push_back(delta->app_id); + pending_read_icon_requests_[delta->app_id] = + std::vector<base::OnceCallback<void()>>(); } } if (!app_ids.empty()) { - ScheduleIconFoldersDeletion(profile_->GetPath(), app_ids); + ScheduleIconFoldersDeletion( + profile_->GetPath(), app_ids, + base::BindOnce(&AppServiceProxyAsh::PostIconFoldersDeletion, + weak_ptr_factory_.GetWeakPtr(), app_ids)); } } @@ -355,7 +366,7 @@ const IconKey& icon_key, IconType icon_type, LoadIconCallback callback) { - ReadIcons(app_type, app_id, size_in_dip, icon_key, icon_type, + ReadIcons(app_type, app_id, size_in_dip, icon_key.Clone(), icon_type, std::move(callback)); } @@ -698,16 +709,27 @@ void AppServiceProxyAsh::ReadIcons(AppType app_type, const std::string& app_id, int32_t size_in_dip, - const IconKey& icon_key, + std::unique_ptr<IconKey> icon_key, IconType icon_type, LoadIconCallback callback) { + auto it = pending_read_icon_requests_.find(app_id); + if (it != pending_read_icon_requests_.end()) { + // The icon folder is being deleted, so add the `ReadIcons` request to + // `pending_read_icon_requests_` to wait for the deletion. + it->second.push_back(base::BindOnce( + &AppServiceProxyAsh::ReadIcons, weak_ptr_factory_.GetWeakPtr(), + app_type, app_id, size_in_dip, std::move(icon_key), icon_type, + std::move(callback))); + return; + } + icon_reader_.ReadIcons( - app_id, size_in_dip, icon_key, icon_type, + app_id, size_in_dip, *icon_key, icon_type, base::BindOnce(&AppServiceProxyAsh::OnIconRead, weak_ptr_factory_.GetWeakPtr(), app_type, app_id, size_in_dip, - static_cast<IconEffects>(icon_key.icon_effects), icon_type, - std::move(callback))); + static_cast<IconEffects>(icon_key->icon_effects), + icon_type, std::move(callback))); } void AppServiceProxyAsh::OnIconRead(AppType app_type, @@ -761,6 +783,24 @@ std::move(callback)); } +void AppServiceProxyAsh::PostIconFoldersDeletion( + const std::vector<std::string>& app_ids) { + for (const auto& app_id : app_ids) { + auto it = pending_read_icon_requests_.find(app_id); + if (it == pending_read_icon_requests_.end()) { + continue; + } + + // The saved `ReadIcons` requests in `pending_read_icon_requests_` are run + // to load the icon for `app_id`. + std::vector<base::OnceCallback<void()>> callbacks = std::move(it->second); + pending_read_icon_requests_.erase(it); + for (auto& callback : callbacks) { + std::move(callback).Run(); + } + } +} + IntentLaunchInfo AppServiceProxyAsh::CreateIntentLaunchInfo( const apps::IntentPtr& intent, const apps::IntentFilterPtr& filter,
diff --git a/chrome/browser/apps/app_service/app_service_proxy_ash.h b/chrome/browser/apps/app_service/app_service_proxy_ash.h index 68792728b..26f5ac9 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_ash.h +++ b/chrome/browser/apps/app_service/app_service_proxy_ash.h
@@ -246,7 +246,7 @@ void ReadIcons(AppType app_type, const std::string& app_id, int32_t size_in_dip, - const IconKey& icon_key, + std::unique_ptr<IconKey> icon_key, IconType icon_type, LoadIconCallback callback) override; @@ -269,6 +269,11 @@ LoadIconCallback callback, bool install_success); + // Invoked when the icon folders for `app_ids` has being deleted. The saved + // `ReadIcons` requests in `pending_read_icon_requests_` are run to request + // the new raw icon from the app platforms, then load icons for `app_ids`. + void PostIconFoldersDeletion(const std::vector<std::string>& app_ids); + // Returns an instance of `IntentLaunchInfo` created based on `intent`, // `filter`, and `update`. IntentLaunchInfo CreateIntentLaunchInfo( @@ -303,6 +308,14 @@ UninstallDialogs uninstall_dialogs_; + // When the icon folder is being deleted, the `ReadIcons` request is added to + // `pending_read_icon_requests_` to wait for the deletion. When the icon + // folder has being deleted, the saved `ReadIcons` requests in + // `pending_read_icon_requests_` are run to get the new raw icon from the + // app platforms, then load icons. + std::map<std::string, std::vector<base::OnceCallback<void()>>> + pending_read_icon_requests_; + std::unique_ptr<apps::AppPlatformMetricsService> app_platform_metrics_service_;
diff --git a/chrome/browser/apps/app_service/app_service_proxy_base.cc b/chrome/browser/apps/app_service/app_service_proxy_base.cc index 7128978..a4b39347c 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_base.cc +++ b/chrome/browser/apps/app_service/app_service_proxy_base.cc
@@ -88,8 +88,8 @@ } if (host_->ShouldReadIcons()) { - host_->ReadIcons(app_type, app_id, size_hint_in_dip, icon_key, icon_type, - std::move(callback)); + host_->ReadIcons(app_type, app_id, size_hint_in_dip, icon_key.Clone(), + icon_type, std::move(callback)); return nullptr; } @@ -192,6 +192,10 @@ publishers_[app_type] = publisher; } +void AppServiceProxyBase::UnregisterPublisher(AppType app_type) { + publishers_.erase(app_type); +} + void AppServiceProxyBase::InitializePreferredAppsForAllSubscribers() { preferred_apps_list_.Init( preferred_apps_impl_->preferred_apps_list().GetValue());
diff --git a/chrome/browser/apps/app_service/app_service_proxy_base.h b/chrome/browser/apps/app_service/app_service_proxy_base.h index d4661a0..c9d436f 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_base.h +++ b/chrome/browser/apps/app_service/app_service_proxy_base.h
@@ -105,6 +105,10 @@ // than this object. void RegisterPublisher(AppType app_type, AppPublisher* publisher); + // UnRegisters the publisher for `app_type`, As the publisher(ArcApps) might + // be destroyed earlier than AppServiceProxy. + void UnregisterPublisher(AppType app_type); + // PreferredApps::Host overrides. void InitializePreferredAppsForAllSubscribers() override; void OnPreferredAppsChanged(PreferredAppChangesPtr changes) override; @@ -393,7 +397,7 @@ virtual void ReadIcons(AppType app_type, const std::string& app_id, int32_t size_in_dip, - const IconKey& icon_key, + std::unique_ptr<IconKey> icon_key, IconType icon_type, LoadIconCallback callback) {}
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.cc b/chrome/browser/apps/app_service/publishers/arc_apps.cc index 98ba3fce..e465e9c 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.cc +++ b/chrome/browser/apps/app_service/publishers/arc_apps.cc
@@ -595,7 +595,9 @@ profile_(proxy->profile()), arc_icon_once_loader_(profile_) {} -ArcApps::~ArcApps() = default; +ArcApps::~ArcApps() { + proxy()->UnregisterPublisher(AppType::kArc); +} void ArcApps::Initialize() { if (!arc::IsArcAllowedForProfile(profile_) ||
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 04060dc..0753a4c 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -4478,8 +4478,8 @@ "app_mode/metrics/periodic_metrics_service_unittest.cc", "app_mode/startup_app_launcher_unittest.cc", "app_mode/web_app/web_kiosk_app_launcher_unittest.cc", + "app_mode/web_app/web_kiosk_app_manager_unittest.cc", "app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc", - "app_mode/web_app/web_kiosk_app_update_observer_unittest.cc", "app_restore/arc_app_single_restore_handler_unittest.cc", "app_restore/arc_ghost_window_view_unittest.cc", "app_restore/arc_window_utils_unittest.cc",
diff --git a/chrome/browser/ash/app_list/search/search_controller.cc b/chrome/browser/ash/app_list/search/search_controller.cc index 18e4efa..d2b889b 100644 --- a/chrome/browser/ash/app_list/search/search_controller.cc +++ b/chrome/browser/ash/app_list/search/search_controller.cc
@@ -72,6 +72,19 @@ profile_, list_controller_, base::DefaultClock::GetInstance()); } +void SearchController::OnBurnInPeriodElapsed() { + ranker_manager_->OnBurnInPeriodElapsed(); + Publish(); +} + +void SearchController::AddProvider(std::unique_ptr<SearchProvider> provider) { + if (ash::IsZeroStateResultType(provider->ResultType())) { + ++total_zero_state_blockers_; + } + provider->set_controller(this); + providers_.emplace_back(std::move(provider)); +} + void SearchController::StartSearch(const std::u16string& query) { DCHECK(!query.empty()); @@ -156,9 +169,10 @@ } } -void SearchController::OnBurnInPeriodElapsed() { - ranker_manager_->OnBurnInPeriodElapsed(); - Publish(); +void SearchController::AppListClosing() { + for (const auto& provider : providers_) { + provider->StopZeroState(); + } } void SearchController::OpenResult(ChromeSearchResult* result, int event_flags) { @@ -198,40 +212,6 @@ } } -AppSearchDataSource* SearchController::GetAppSearchDataSource() { - return app_search_data_source_.get(); -} - -void SearchController::AddProvider(std::unique_ptr<SearchProvider> provider) { - if (ash::IsZeroStateResultType(provider->ResultType())) { - ++total_zero_state_blockers_; - } - provider->set_controller(this); - providers_.emplace_back(std::move(provider)); -} - -size_t SearchController::ReplaceProvidersForResultTypeForTest( - ash::AppListSearchResultType result_type, - std::unique_ptr<SearchProvider> new_provider) { - DCHECK_EQ(result_type, new_provider->ResultType()); - - size_t removed_providers = base::EraseIf( - providers_, [&](const std::unique_ptr<SearchProvider>& provider) { - return provider->ResultType() == result_type; - }); - if (!removed_providers) { - return 0u; - } - DCHECK_EQ(1u, removed_providers); - - if (ash::IsZeroStateResultType(result_type)) { - total_zero_state_blockers_ -= removed_providers; - } - - AddProvider(std::move(new_provider)); - return removed_providers; -} - void SearchController::SetResults(const SearchProvider* provider, Results results) { // Re-post onto the UI sequence if not called from there. @@ -357,34 +337,6 @@ } } -ChromeSearchResult* SearchController::FindSearchResult( - const std::string& result_id) { - for (const auto& provider_results : results_) { - for (const auto& result : provider_results.second) { - if (result->id() == result_id) { - return result.get(); - } - } - } - return nullptr; -} - -ChromeSearchResult* SearchController::GetResultByTitleForTest( - const std::string& title) { - std::u16string target_title = base::ASCIIToUTF16(title); - for (const auto& provider_results : results_) { - for (const auto& result : provider_results.second) { - if (result->title() == target_title && - result->result_type() == - ash::AppListSearchResultType::kInstalledApp && - !result->is_recommendation()) { - return result.get(); - } - } - } - return nullptr; -} - void SearchController::Train(LaunchData&& launch_data) { // For non-zero state results (i.e. non continue section results), record the // last search query. @@ -410,10 +362,20 @@ ranker_manager_->Train(launch_data); } -void SearchController::AppListClosing() { - for (const auto& provider : providers_) { - provider->StopZeroState(); +AppSearchDataSource* SearchController::GetAppSearchDataSource() { + return app_search_data_source_.get(); +} + +ChromeSearchResult* SearchController::FindSearchResult( + const std::string& result_id) { + for (const auto& provider_results : results_) { + for (const auto& result : provider_results.second) { + if (result->id() == result_id) { + return result.get(); + } + } } + return nullptr; } void SearchController::AddObserver(Observer* observer) { @@ -432,13 +394,42 @@ return session_start_; } -void SearchController::set_results_changed_callback_for_test( - ResultsChangedCallback callback) { - results_changed_callback_for_test_ = std::move(callback); +size_t SearchController::ReplaceProvidersForResultTypeForTest( + ash::AppListSearchResultType result_type, + std::unique_ptr<SearchProvider> new_provider) { + DCHECK_EQ(result_type, new_provider->ResultType()); + + size_t removed_providers = base::EraseIf( + providers_, [&](const std::unique_ptr<SearchProvider>& provider) { + return provider->ResultType() == result_type; + }); + if (!removed_providers) { + return 0u; + } + DCHECK_EQ(1u, removed_providers); + + if (ash::IsZeroStateResultType(result_type)) { + total_zero_state_blockers_ -= removed_providers; + } + + AddProvider(std::move(new_provider)); + return removed_providers; } -void SearchController::disable_ranking_for_test() { - disable_ranking_for_test_ = true; +ChromeSearchResult* SearchController::GetResultByTitleForTest( + const std::string& title) { + std::u16string target_title = base::ASCIIToUTF16(title); + for (const auto& provider_results : results_) { + for (const auto& result : provider_results.second) { + if (result->title() == target_title && + result->result_type() == + ash::AppListSearchResultType::kInstalledApp && + !result->is_recommendation()) { + return result.get(); + } + } + } + return nullptr; } void SearchController::WaitForZeroStateCompletionForTest( @@ -450,4 +441,13 @@ on_zero_state_done_.AddUnsafe(std::move(callback)); } +void SearchController::set_results_changed_callback_for_test( + ResultsChangedCallback callback) { + results_changed_callback_for_test_ = std::move(callback); +} + +void SearchController::disable_ranking_for_test() { + disable_ranking_for_test_ = true; +} + } // namespace app_list
diff --git a/chrome/browser/ash/app_mode/app_launch_utils.cc b/chrome/browser/ash/app_mode/app_launch_utils.cc index d2b3ffd6..60f9c244d 100644 --- a/chrome/browser/ash/app_mode/app_launch_utils.cc +++ b/chrome/browser/ash/app_mode/app_launch_utils.cc
@@ -8,6 +8,7 @@ #include "ash/constants/ash_switches.h" #include "base/command_line.h" #include "base/feature_list.h" +#include "base/scoped_observation.h" #include "chrome/browser/ash/app_mode/arc/arc_kiosk_app_manager.h" #include "chrome/browser/ash/app_mode/kiosk_app_launch_error.h" #include "chrome/browser/ash/app_mode/kiosk_app_manager.h" @@ -43,7 +44,8 @@ // A simple manager for the app launch that starts the launch // and deletes itself when the launch finishes. On launch failure, // it exits the browser process. -class AppLaunchManager : public StartupAppLauncher::Delegate { +class AppLaunchManager : public KioskAppLauncher::NetworkDelegate, + public KioskAppLauncher::Observer { public: AppLaunchManager(Profile* profile, const KioskAppId& kiosk_app_id) { CHECK(kiosk_app_id.type != KioskAppType::kArcApp); @@ -51,16 +53,17 @@ if (kiosk_app_id.type == KioskAppType::kChromeApp) { app_launcher_ = std::make_unique<StartupAppLauncher>( profile, *kiosk_app_id.app_id, /*should_skip_install=*/true, - /*delegate=*/this); + /*network_delegate=*/this); } else if (base::FeatureList::IsEnabled(features::kKioskEnableAppService) && !crosapi::browser_util::IsLacrosEnabled()) { app_launcher_ = std::make_unique<WebKioskAppServiceLauncher>( - profile, *kiosk_app_id.account_id, /*delegate=*/this); + profile, *kiosk_app_id.account_id, /*network_delegate=*/this); } else { app_launcher_ = std::make_unique<WebKioskAppLauncher>( profile, *kiosk_app_id.account_id, - /*should_skip_install=*/true, /*delegate=*/this); + /*should_skip_install=*/true, /*network_delegate=*/this); } + observation_.Observe(app_launcher_.get()); } AppLaunchManager(const AppLaunchManager&) = delete; AppLaunchManager& operator=(const AppLaunchManager&) = delete; @@ -72,7 +75,7 @@ void Cleanup() { delete this; } - // KioskAppLauncher::Delegate: + // KioskAppLauncher::NetworkDelegate: void InitializeNetwork() override { // This is on crash-restart path and assumes network is online. app_launcher_->ContinueWithNetworkReady(); @@ -81,6 +84,9 @@ // See comments above. Network is assumed to be online here. return true; } + bool IsShowingNetworkConfigScreen() const override { return false; } + + // KioskAppLauncher::Observer: void OnAppInstalling() override {} void OnAppPrepared() override { app_launcher_->LaunchApp(); } void OnAppLaunched() override {} @@ -90,9 +96,10 @@ chrome::AttemptUserExit(); Cleanup(); } - bool IsShowingNetworkConfigScreen() const override { return false; } std::unique_ptr<KioskAppLauncher> app_launcher_; + base::ScopedObservation<KioskAppLauncher, KioskAppLauncher::Observer> + observation_{this}; }; void LaunchAppOrDie(Profile* profile, const KioskAppId& kiosk_app_id) {
diff --git a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc index 6476296..45c4525 100644 --- a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc +++ b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.cc
@@ -14,7 +14,6 @@ #include "chrome/browser/ash/app_mode/arc/arc_kiosk_app_service_factory.h" #include "chrome/browser/ash/arc/session/arc_session_manager.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" #include "ui/base/layout.h" #include "ui/display/display.h" @@ -42,11 +41,24 @@ return ArcKioskAppServiceFactory::GetForBrowserContext(context); } +void ArcKioskAppService::SetNetworkDelegate(NetworkDelegate* network_delegate) { + delegate_ = network_delegate; +} + +void ArcKioskAppService::AddObserver(KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void ArcKioskAppService::RemoveObserver(KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + void ArcKioskAppService::Shutdown() { ArcAppListPrefs::Get(profile_)->RemoveObserver(this); // It can be null unittests. - if (arc::ArcSessionManager::Get()) + if (arc::ArcSessionManager::Get()) { arc::ArcSessionManager::Get()->RemoveObserver(this); + } app_manager_->RemoveObserver(this); arc::ArcPolicyBridge::GetForBrowserContext(profile_)->RemoveObserver(this); } @@ -54,16 +66,18 @@ void ArcKioskAppService::OnAppRegistered( const std::string& app_id, const ArcAppListPrefs::AppInfo& app_info) { - if (!app_id_.empty() && app_id != app_id_) + if (!app_id_.empty() && app_id != app_id_) { return; + } PreconditionsChanged(); } void ArcKioskAppService::OnAppStatesChanged( const std::string& app_id, const ArcAppListPrefs::AppInfo& app_info) { - if (!app_id_.empty() && app_id != app_id_) + if (!app_id_.empty() && app_id != app_id_) { return; + } PreconditionsChanged(); } @@ -85,8 +99,7 @@ if (app_info_ && package_name == app_info_->package_name && activity == app_info_->activity) { task_id_ = task_id; - if (delegate_) - delegate_->OnAppLaunched(); + observers_.NotifyAppLaunched(); } } @@ -110,16 +123,16 @@ } void ArcKioskAppService::OnMaintenanceSessionFinished() { - if (!maintenance_timeout_timer_.IsRunning()) + if (!maintenance_timeout_timer_.IsRunning()) { VLOG(1) << "Maintenance session timeout"; + } maintenance_timeout_timer_.Stop(); maintenance_session_running_ = false; PreconditionsChanged(); } void ArcKioskAppService::OnAppWindowLaunched() { - if (delegate_) - delegate_->OnAppWindowCreated(); + observers_.NotifyAppWindowCreated(); } void ArcKioskAppService::OnIconUpdated(ArcAppIcon* icon) { @@ -131,8 +144,7 @@ AccountId account_id = multi_user_util::GetAccountIdFromProfile(profile_); app_manager_->UpdateNameAndIcon(account_id, app_info_->name, app_icon_->image_skia()); - if (delegate_) - delegate_->OnAppDataUpdated(); + observers_.NotifyAppDataUpdated(); } void ArcKioskAppService::OnArcSessionRestarting() { @@ -162,12 +174,14 @@ for (const auto& detail : details->GetList()) { const base::Value* const reason = detail.FindKeyOfType("nonComplianceReason", base::Value::Type::INTEGER); - if (!reason || reason->GetInt() != kNonComplianceReasonAppNotInstalled) + if (!reason || reason->GetInt() != kNonComplianceReasonAppNotInstalled) { continue; + } const base::Value* const app_name = detail.FindKeyOfType("packageName", base::Value::Type::STRING); - if (!app_name || app_name->GetString().empty()) + if (!app_name || app_name->GetString().empty()) { continue; + } pending_policy_app_installs_.insert(app_name->GetString()); } PreconditionsChanged(); @@ -189,8 +203,9 @@ void ArcKioskAppService::RequestNameAndIconUpdate() { // Request only once when app_icon_ is not initialized. - if (!app_info_ || !app_info_->ready || app_icon_) + if (!app_info_ || !app_info_->ready || app_icon_) { return; + } app_icon_ = std::make_unique<ArcAppIcon>( profile_, app_id_, SharedAppListConfig::instance().default_grid_icon_dimension(), this); @@ -228,8 +243,7 @@ VLOG(2) << "Starting kiosk app"; app_launcher_ = std::make_unique<ArcKioskAppLauncher>( profile_, ArcAppListPrefs::Get(profile_), app_id_, this); - if (delegate_) - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); } } else if (task_id_ != -1) { VLOG(2) << "Kiosk app should be closed"; @@ -240,16 +254,19 @@ std::string ArcKioskAppService::GetAppId() { AccountId account_id = multi_user_util::GetAccountIdFromProfile(profile_); const ArcKioskAppData* app = app_manager_->GetAppByAccountId(account_id); - if (!app) + if (!app) { return std::string(); + } std::unordered_set<std::string> app_ids = ArcAppListPrefs::Get(profile_)->GetAppsForPackage(app->package_name()); - if (app_ids.empty()) + if (app_ids.empty()) { return std::string(); + } // If |activity| and |intent| are not specified, return any app from the // package. - if (app->activity().empty() && app->intent().empty()) + if (app->activity().empty() && app->intent().empty()) { return *app_ids.begin(); + } // Check that the app is registered for given package. return app_ids.count(app->app_id()) ? app->app_id() : std::string(); }
diff --git a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.h b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.h index 2e22c42c..7b27cbf7 100644 --- a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.h +++ b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service.h
@@ -46,6 +46,8 @@ static ArcKioskAppService* Create(Profile* profile); static ArcKioskAppService* Get(content::BrowserContext* context); + void SetNetworkDelegate(NetworkDelegate* network_delegate); + // KeyedService overrides void Shutdown() override; @@ -83,7 +85,9 @@ void OnComplianceReportReceived( const base::Value* compliance_report) override; - // KioskAppLauncher: + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override; + void RemoveObserver(KioskAppLauncher::Observer* observer) override; void Initialize() override; void ContinueWithNetworkReady() override; void RestartLauncher() override; @@ -113,6 +117,8 @@ std::unique_ptr<ArcAppListPrefs::AppInfo> app_info_; std::unique_ptr<ArcAppIcon> app_icon_; int32_t task_id_ = -1; + KioskAppLauncher::ObserverList observers_; + // This contains the list of apps that must be installed for the device to be // policy-compliant according to the policy report. Even if an app has already // finished installing, it could still remain in this list for some time.
diff --git a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service_unittest.cc b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service_unittest.cc index b413703..2894e716 100644 --- a/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service_unittest.cc +++ b/chrome/browser/ash/app_mode/arc/arc_kiosk_app_service_unittest.cc
@@ -43,13 +43,18 @@ } // namespace -class FakeController : public KioskAppLauncher::Delegate { +class FakeController : public KioskAppLauncher::NetworkDelegate, + public KioskAppLauncher::Observer { public: explicit FakeController(ArcKioskAppService* service) : service_(service) { - service_->SetDelegate(this); + service_->SetNetworkDelegate(this); + service_->AddObserver(this); } - ~FakeController() override { service_->SetDelegate(nullptr); } + ~FakeController() override { + service_->SetNetworkDelegate(nullptr); + service_->RemoveObserver(this); + } // KioskAppLauncher::Delegate: bool IsNetworkReady() const override { return true; }
diff --git a/chrome/browser/ash/app_mode/kiosk_app_launcher.cc b/chrome/browser/ash/app_mode/kiosk_app_launcher.cc index 356bfa3..bdae103d 100644 --- a/chrome/browser/ash/app_mode/kiosk_app_launcher.cc +++ b/chrome/browser/ash/app_mode/kiosk_app_launcher.cc
@@ -8,11 +8,58 @@ KioskAppLauncher::KioskAppLauncher() = default; -KioskAppLauncher::KioskAppLauncher(KioskAppLauncher::Delegate* delegate) +KioskAppLauncher::KioskAppLauncher(KioskAppLauncher::NetworkDelegate* delegate) : delegate_(delegate) {} -void KioskAppLauncher::SetDelegate(Delegate* delegate) { - delegate_ = delegate; +KioskAppLauncher::~KioskAppLauncher() = default; + +KioskAppLauncher::ObserverList::ObserverList() = default; +KioskAppLauncher::ObserverList::~ObserverList() = default; +void KioskAppLauncher::ObserverList::AddObserver( + KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void KioskAppLauncher::ObserverList::RemoveObserver( + KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + +void KioskAppLauncher::ObserverList::NotifyAppDataUpdated() { + for (auto& observer : observers_) { + observer.OnAppDataUpdated(); + } +} + +void KioskAppLauncher::ObserverList::NotifyAppInstalling() { + for (auto& observer : observers_) { + observer.OnAppInstalling(); + } +} + +void KioskAppLauncher::ObserverList::NotifyAppPrepared() { + for (auto& observer : observers_) { + observer.OnAppPrepared(); + } +} + +void KioskAppLauncher::ObserverList::NotifyAppLaunched() { + for (auto& observer : observers_) { + observer.OnAppLaunched(); + } +} + +void KioskAppLauncher::ObserverList::NotifyAppWindowCreated() { + for (auto& observer : observers_) { + observer.OnAppWindowCreated(); + } +} + +void KioskAppLauncher::ObserverList::NotifyLaunchFailed( + KioskAppLaunchError::Error error) { + for (auto& observer : observers_) { + observer.OnLaunchFailed(error); + } } } // namespace ash
diff --git a/chrome/browser/ash/app_mode/kiosk_app_launcher.h b/chrome/browser/ash/app_mode/kiosk_app_launcher.h index be20beb..3785353 100644 --- a/chrome/browser/ash/app_mode/kiosk_app_launcher.h +++ b/chrome/browser/ash/app_mode/kiosk_app_launcher.h
@@ -4,6 +4,9 @@ #ifndef CHROME_BROWSER_ASH_APP_MODE_KIOSK_APP_LAUNCHER_H_ #define CHROME_BROWSER_ASH_APP_MODE_KIOSK_APP_LAUNCHER_H_ +#include "base/memory/raw_ptr.h" +#include "base/observer_list.h" +#include "base/observer_list_types.h" #include "chrome/browser/ash/app_mode/kiosk_app_launch_error.h" namespace ash { @@ -29,8 +32,10 @@ // class KioskAppLauncher { public: - class Delegate { + class NetworkDelegate { public: + virtual ~NetworkDelegate() = default; + // Asks the client to initialize network. virtual void InitializeNetwork() = 0; // Whether the device is online. @@ -38,23 +43,50 @@ // TODO(crbug.com/1015383): Refactor out this method at some moment. // Whether network configure UI is shown. virtual bool IsShowingNetworkConfigScreen() const = 0; + }; + + class Observer : public base::CheckedObserver { + public: + ~Observer() override = default; + virtual void OnAppDataUpdated() {} virtual void OnAppInstalling() {} virtual void OnAppPrepared() {} virtual void OnAppLaunched() {} virtual void OnAppWindowCreated() {} virtual void OnLaunchFailed(KioskAppLaunchError::Error error) {} - - protected: - virtual ~Delegate() {} }; + + class ObserverList { + public: + ObserverList(); + ObserverList(const ObserverList&) = delete; + ObserverList& operator=(const ObserverList&) = delete; + ~ObserverList(); + + void AddObserver(Observer* observer); + void RemoveObserver(Observer* observer); + + void NotifyAppDataUpdated(); + void NotifyAppInstalling(); + void NotifyAppPrepared(); + void NotifyAppLaunched(); + void NotifyAppWindowCreated(); + void NotifyLaunchFailed(KioskAppLaunchError::Error error); + + private: + base::ObserverList<Observer> observers_; + }; + KioskAppLauncher(); - explicit KioskAppLauncher(Delegate* delegate); + explicit KioskAppLauncher(NetworkDelegate* delegate); KioskAppLauncher(const KioskAppLauncher&) = delete; KioskAppLauncher& operator=(const KioskAppLauncher&) = delete; - virtual ~KioskAppLauncher() = default; + virtual ~KioskAppLauncher(); - void SetDelegate(Delegate* delegate); + virtual void AddObserver(Observer* observer) = 0; + virtual void RemoveObserver(Observer* observer) = 0; + // Determine the initial configuration. virtual void Initialize() = 0; // This has to be called after launcher asked to configure network. @@ -65,7 +97,7 @@ virtual void LaunchApp() = 0; protected: - Delegate* delegate_ = nullptr; // Not owned, owns us. + base::raw_ptr<NetworkDelegate> delegate_ = nullptr; // Not owned, owns us. }; } // namespace ash
diff --git a/chrome/browser/ash/app_mode/startup_app_launcher.cc b/chrome/browser/ash/app_mode/startup_app_launcher.cc index 703abb0c..2dff0e1 100644 --- a/chrome/browser/ash/app_mode/startup_app_launcher.cc +++ b/chrome/browser/ash/app_mode/startup_app_launcher.cc
@@ -18,6 +18,7 @@ #include "base/time/time.h" #include "base/values.h" #include "chrome/browser/ash/app_mode/kiosk_app_launch_error.h" +#include "chrome/browser/ash/app_mode/kiosk_app_launcher.h" #include "chrome/browser/ash/app_mode/kiosk_app_manager.h" #include "chrome/browser/ash/crosapi/browser_manager.h" #include "chrome/browser/ash/crosapi/browser_manager_observer.h" @@ -103,11 +104,12 @@ browser_manager_observation_{this}; }; -StartupAppLauncher::StartupAppLauncher(Profile* profile, - const std::string& app_id, - bool should_skip_install, - StartupAppLauncher::Delegate* delegate) - : KioskAppLauncher(delegate), +StartupAppLauncher::StartupAppLauncher( + Profile* profile, + const std::string& app_id, + bool should_skip_install, + StartupAppLauncher::NetworkDelegate* network_delegate) + : KioskAppLauncher(network_delegate), profile_(profile), app_id_(app_id), should_skip_install_(should_skip_install) { @@ -125,6 +127,14 @@ KioskAppManager::Get()->SetExtensionDownloaderBackoffPolicy(absl::nullopt); } +void StartupAppLauncher::AddObserver(KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void StartupAppLauncher::RemoveObserver(KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + void StartupAppLauncher::Initialize() { DCHECK(state_ != LaunchState::kReadyToLaunch && state_ != LaunchState::kWaitingForWindow && @@ -144,10 +154,11 @@ // Update the offline enabled crx cache if the network is ready; // or just install the app. - if (delegate_->IsNetworkReady()) + if (delegate_->IsNetworkReady()) { ContinueWithNetworkReady(); - else + } else { BeginInstall(); + } } void StartupAppLauncher::ContinueWithNetworkReady() { @@ -180,7 +191,7 @@ // - notify the delegate that kiosk app is ready to launch, in case the // launch was delayed, for example by network config dialog. if (state_ == LaunchState::kReadyToLaunch) { - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); return; } @@ -226,15 +237,17 @@ const std::string& app_id) { DCHECK(state_ == LaunchState::kWaitingForCache); - if (app_id != app_id_) + if (app_id != app_id_) { return; + } kiosk_app_manager_observation_.Reset(); - if (KioskAppManager::Get()->HasCachedCrx(app_id_)) + if (KioskAppManager::Get()->HasCachedCrx(app_id_)) { BeginInstall(); - else + } else { OnLaunchFailure(KioskAppLaunchError::Error::kUnableToDownload); + } } void StartupAppLauncher::BeginInstall() { @@ -253,7 +266,7 @@ void StartupAppLauncher::InstallAppInAsh() { state_ = LaunchState::kInstallingApp; - delegate_->OnAppInstalling(); + observers_.NotifyAppInstalling(); installer_ = std::make_unique<ChromeKioskAppInstaller>( profile_, KioskAppManager::Get()->CreatePrimaryAppInstallData(app_id_)); installer_->BeginInstall(base::BindOnce( @@ -263,7 +276,7 @@ void StartupAppLauncher::InstallAppInLacros() { DCHECK(state_ == LaunchState::kWaitingForLacros); state_ = LaunchState::kInstallingApp; - delegate_->OnAppInstalling(); + observers_.NotifyAppInstalling(); crosapi_chrome_app_kiosk_service()->InstallKioskApp( KioskAppManager::Get()->CreatePrimaryAppInstallData(app_id_), base::BindOnce(&StartupAppLauncher::OnInstallComplete, @@ -302,7 +315,7 @@ void StartupAppLauncher::OnInstallSuccess() { state_ = LaunchState::kReadyToLaunch; - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); } void StartupAppLauncher::LaunchApp() { @@ -340,8 +353,9 @@ OnLaunchFailure(KioskAppLaunchError::Error::kUnableToLaunch); return; case ChromeKioskAppLauncher::LaunchResult::kNetworkMissing: - if (!RetryWhenNetworkIsAvailable()) + if (!RetryWhenNetworkIsAvailable()) { OnLaunchFailure(KioskAppLaunchError::Error::kUnableToLaunch); + } return; case ChromeKioskAppLauncher::LaunchResult::kUnknown: SYSLOG(ERROR) << "Received unknown LaunchResult"; @@ -352,15 +366,15 @@ void StartupAppLauncher::OnLaunchSuccess() { state_ = LaunchState::kLaunchSucceeded; - delegate_->OnAppLaunched(); - delegate_->OnAppWindowCreated(); + observers_.NotifyAppLaunched(); + observers_.NotifyAppWindowCreated(); } void StartupAppLauncher::OnLaunchFailure(KioskAppLaunchError::Error error) { SYSLOG(ERROR) << "App launch failed, error: " << static_cast<int>(error); DCHECK_NE(KioskAppLaunchError::Error::kNone, error); - delegate_->OnLaunchFailed(error); + observers_.NotifyLaunchFailed(error); } } // namespace ash
diff --git a/chrome/browser/ash/app_mode/startup_app_launcher.h b/chrome/browser/ash/app_mode/startup_app_launcher.h index 216fc4ef..cb9037c 100644 --- a/chrome/browser/ash/app_mode/startup_app_launcher.h +++ b/chrome/browser/ash/app_mode/startup_app_launcher.h
@@ -8,11 +8,10 @@ #include <memory> #include <string> -#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h" #include "chrome/browser/ash/app_mode/kiosk_app_launcher.h" -#include "chrome/browser/ash/app_mode/kiosk_app_manager.h" +#include "chrome/browser/ash/app_mode/kiosk_app_manager_base.h" #include "chrome/browser/ash/app_mode/kiosk_app_manager_observer.h" #include "chrome/browser/chromeos/app_mode/chrome_kiosk_app_installer.h" #include "chrome/browser/chromeos/app_mode/chrome_kiosk_app_launcher.h" @@ -30,7 +29,7 @@ StartupAppLauncher(Profile* profile, const std::string& app_id, bool should_skip_install, - Delegate* delegate); + NetworkDelegate* network_delegate); StartupAppLauncher(const StartupAppLauncher&) = delete; StartupAppLauncher& operator=(const StartupAppLauncher&) = delete; ~StartupAppLauncher() override; @@ -52,7 +51,9 @@ kLaunchFailed }; - // KioskAppLauncher: + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override; + void RemoveObserver(KioskAppLauncher::Observer* observer) override; void Initialize() override; void ContinueWithNetworkReady() override; void RestartLauncher() override; @@ -83,6 +84,7 @@ int launch_attempt_ = 0; LaunchState state_ = LaunchState::kNotStarted; + KioskAppLauncher::ObserverList observers_; std::unique_ptr<ChromeKioskAppInstaller> installer_; std::unique_ptr<LacrosLauncher> lacros_launcher_; std::unique_ptr<ChromeKioskAppLauncher> launcher_;
diff --git a/chrome/browser/ash/app_mode/startup_app_launcher_unittest.cc b/chrome/browser/ash/app_mode/startup_app_launcher_unittest.cc index 330f018..9907ad5 100644 --- a/chrome/browser/ash/app_mode/startup_app_launcher_unittest.cc +++ b/chrome/browser/ash/app_mode/startup_app_launcher_unittest.cc
@@ -82,7 +82,8 @@ kLaunchFailed }; -class TestAppLaunchDelegate : public StartupAppLauncher::Delegate { +class TestAppLaunchDelegate : public KioskAppLauncher::NetworkDelegate, + public KioskAppLauncher::Observer { public: TestAppLaunchDelegate() = default; TestAppLaunchDelegate(const TestAppLaunchDelegate&) = delete; @@ -110,11 +111,16 @@ return launch_state_changes_.IsEmpty(); } - // StartupAppLauncher::Delegate: + // `KioskAppLauncher::NetworkDelegate`: void InitializeNetwork() override { SetLaunchState(LaunchState::kInitializingNetwork); } bool IsNetworkReady() const override { return network_ready_; } + bool IsShowingNetworkConfigScreen() const override { + return showing_network_config_screen_; + } + + // `KioskAppLauncher::Observer`: void OnAppInstalling() override { SetLaunchState(LaunchState::kInstallingApp); } @@ -126,9 +132,6 @@ launch_error_ = error; SetLaunchState(LaunchState::kLaunchFailed); } - bool IsShowingNetworkConfigScreen() const override { - return showing_network_config_screen_; - } private: void SetLaunchState(LaunchState state) { @@ -253,9 +256,10 @@ const extensions::Extension* existing = extension_registry_->GetExtensionById( info.extension_id, extensions::ExtensionRegistry::EVERYTHING); - // Alredy exists, and does not require update. - if (existing && existing->version().CompareTo(info.version) >= 0) + // Already exists, and does not require update. + if (existing && existing->version().CompareTo(info.version) >= 0) { return false; + } if (!extension_service_->pending_extension_manager()->AddFromExternalFile( info.extension_id, info.crx_location, info.version, @@ -272,8 +276,9 @@ const ExternalInstallInfoUpdateUrl& info, bool force_update) override { if (extension_registry_->GetExtensionById( - info.extension_id, extensions::ExtensionRegistry::EVERYTHING)) + info.extension_id, extensions::ExtensionRegistry::EVERYTHING)) { return false; + } if (!extension_service_->pending_extension_manager() ->AddFromExternalUpdateUrl( @@ -295,11 +300,13 @@ const std::vector<ExternalInstallInfoUpdateUrl>& update_url_extensions, const std::vector<ExternalInstallInfoFile>& file_extensions, const std::set<std::string>& removed_extensions) override { - for (const auto& extension : update_url_extensions) + for (const auto& extension : update_url_extensions) { OnExternalExtensionUpdateUrlFound(extension, false); + } - for (const auto& extension : file_extensions) + for (const auto& extension : file_extensions) { OnExternalExtensionFileFound(extension); + } for (const auto& extension_id : removed_extensions) { extension_service_->UninstallExtension( @@ -449,11 +456,13 @@ [[nodiscard]] AssertionResult DownloadPrimaryApp(const std::string& app_id, const std::string& version) { - if (!external_cache_) + if (!external_cache_) { return AssertionFailure() << "External cache not initialized"; + } - if (!external_cache_->pending_downloads().count(app_id)) + if (!external_cache_->pending_downloads().count(app_id)) { return AssertionFailure() << "Download not pending: " << app_id; + } if (!external_cache_->SimulateExtensionDownloadFinished( app_id, GetExtensionPath(app_id), version, /*is_update=*/false)) { @@ -465,8 +474,9 @@ [[nodiscard]] AssertionResult PrecachePrimaryApp(const std::string& app_id, const std::string& version) { - if (!external_cache_) + if (!external_cache_) { return AssertionFailure() << "External cache not initialized"; + } base::test::TestFuture<const std::string&, bool> future; external_cache_->PutExternalExtension( @@ -483,15 +493,18 @@ [[nodiscard]] AssertionResult FinishPrimaryAppInstall( const TestKioskExtensionBuilder& app_builder) { const std::string& id = app_builder.extension_id(); - if (!external_apps_loader_handler_->pending_crx_files().count(id)) + if (!external_apps_loader_handler_->pending_crx_files().count(id)) { return AssertionFailure() << "App install not peding: " << id; + } scoped_refptr<const extensions::Extension> app = app_builder.Build(); - if (!app) + if (!app) { return AssertionFailure() << "App builder failed: " << id; + } - if (!external_apps_loader_handler_->FinishPendingInstall(app.get())) + if (!external_apps_loader_handler_->FinishPendingInstall(app.get())) { return AssertionFailure() << "Finish install attempt failed: " << id; + } return AssertionSuccess(); } @@ -499,12 +512,14 @@ [[nodiscard]] AssertionResult DownloadAndInstallPrimaryApp( const TestKioskExtensionBuilder& app_builder) { AssertionResult download_result = DownloadPrimaryApp(app_builder); - if (!download_result) + if (!download_result) { return download_result; + } AssertionResult install_result = FinishPrimaryAppInstall(app_builder); - if (!install_result) + if (!install_result) { return install_result; + } return AssertionSuccess(); } @@ -518,11 +533,13 @@ } scoped_refptr<const extensions::Extension> extension = builder.Build(); - if (!extension) + if (!extension) { return AssertionFailure() << "Extension builder failed: " << id; + } - if (!external_apps_loader_handler_->FinishPendingInstall(extension.get())) + if (!external_apps_loader_handler_->FinishPendingInstall(extension.get())) { return AssertionFailure() << "Finish install attempt failed: " << id; + } return AssertionSuccess(); } @@ -635,6 +652,7 @@ startup_app_launcher_ = std::make_unique<StartupAppLauncher>( profile(), kTestPrimaryAppId, /*should_skip_install=*/false, &startup_launch_delegate_); + startup_app_launcher_->AddObserver(&startup_launch_delegate_); } void TearDown() override { @@ -1482,6 +1500,7 @@ startup_app_launcher_ = std::make_unique<StartupAppLauncher>( profile(), kTestPrimaryAppId, /*should_skip_install=*/true, &startup_launch_delegate_); + startup_app_launcher_->AddObserver(&startup_launch_delegate_); startup_launch_delegate_.set_network_ready(true); startup_app_launcher_->Initialize();
diff --git a/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.cc b/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.cc index 0f808956..fce601b 100644 --- a/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.cc +++ b/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.cc
@@ -6,12 +6,29 @@ namespace ash { -MockWebKioskAppLauncher::MockWebKioskAppLauncher(Profile* profile) - : WebKioskAppLauncher(profile, - EmptyAccountId(), - /*should_skip_install=*/false, - /*delegate=*/nullptr) {} - +MockWebKioskAppLauncher::MockWebKioskAppLauncher() = default; MockWebKioskAppLauncher::~MockWebKioskAppLauncher() = default; +void MockWebKioskAppLauncher::AddObserver( + KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void MockWebKioskAppLauncher::RemoveObserver( + KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + +void MockWebKioskAppLauncher::CallOnAppInstalling() { + observers_.NotifyAppInstalling(); +} + +void MockWebKioskAppLauncher::CallOnAppPrepared() { + observers_.NotifyAppPrepared(); +} + +void MockWebKioskAppLauncher::CallOnAppLaunched() { + observers_.NotifyAppLaunched(); +} + } // namespace ash
diff --git a/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.h b/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.h index 6bab19af2..59ae4d4 100644 --- a/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.h +++ b/chrome/browser/ash/app_mode/web_app/mock_web_kiosk_app_launcher.h
@@ -5,22 +5,30 @@ #ifndef CHROME_BROWSER_ASH_APP_MODE_WEB_APP_MOCK_WEB_KIOSK_APP_LAUNCHER_H_ #define CHROME_BROWSER_ASH_APP_MODE_WEB_APP_MOCK_WEB_KIOSK_APP_LAUNCHER_H_ -#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h" +#include "chrome/browser/ash/app_mode/kiosk_app_launcher.h" #include "testing/gmock/include/gmock/gmock.h" -class Profile; - namespace ash { -class MockWebKioskAppLauncher : public WebKioskAppLauncher { +class MockWebKioskAppLauncher : public KioskAppLauncher { public: - explicit MockWebKioskAppLauncher(Profile* profile); + MockWebKioskAppLauncher(); ~MockWebKioskAppLauncher() override; + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override; + void RemoveObserver(KioskAppLauncher::Observer* observer) override; MOCK_METHOD0(Initialize, void()); MOCK_METHOD0(ContinueWithNetworkReady, void()); MOCK_METHOD0(LaunchApp, void()); MOCK_METHOD0(RestartLauncher, void()); + + void CallOnAppInstalling(); + void CallOnAppPrepared(); + void CallOnAppLaunched(); + + private: + KioskAppLauncher::ObserverList observers_; }; } // namespace ash
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc index 0834f64d..126355f 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc
@@ -48,8 +48,8 @@ Profile* profile, const AccountId& account_id, bool should_skip_install, - WebKioskAppLauncher::Delegate* delegate) - : KioskAppLauncher(delegate), + WebKioskAppLauncher::NetworkDelegate* network_delegate) + : KioskAppLauncher(network_delegate), profile_(profile), account_id_(account_id), should_skip_install_(should_skip_install), @@ -61,6 +61,14 @@ WebKioskAppLauncher::~WebKioskAppLauncher() = default; +void WebKioskAppLauncher::AddObserver(KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void WebKioskAppLauncher::RemoveObserver(KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + void WebKioskAppLauncher::Initialize() { const WebKioskAppData* app = WebKioskAppManager::Get()->GetAppByAccountId(account_id_); @@ -68,7 +76,7 @@ SYSLOG(INFO) << "Launching web kiosk for url: " << app->install_url(); if (app->status() == WebKioskAppData::Status::kInstalled || should_skip_install_) { - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); return; } // If the app is not yet installed -- require network connection. @@ -76,10 +84,11 @@ } void WebKioskAppLauncher::ContinueWithNetworkReady() { - if (!profile_) + if (!profile_) { return; + } - delegate_->OnAppInstalling(); + observers_.NotifyAppInstalling(); DCHECK(!is_installed_); install_task_ = std::make_unique<web_app::WebAppInstallTask>( profile_, @@ -104,7 +113,7 @@ if (absl::holds_alternative<webapps::InstallResultCode>(info)) { RecordKioskWebAppInstallError(absl::get<webapps::InstallResultCode>(info)); // Notify about failed installation, let the controller decide what to do. - delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall); + observers_.NotifyLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall); return; } @@ -116,12 +125,12 @@ if (url::Origin::Create(GetCurrentApp()->install_url()) != url::Origin::Create(app_info.start_url)) { VLOG(1) << "Origin of the app does not match the origin of install url"; - delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); + observers_.NotifyLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); return; } WebKioskAppManager::Get()->UpdateAppByAccountId(account_id_, app_info); - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); } void WebKioskAppLauncher::OnLacrosWindowCreated( @@ -129,7 +138,7 @@ if (result != crosapi::mojom::CreationResult::kSuccess) { exo::WMHelper::GetInstance()->RemoveExoWindowObserver(this); LOG(ERROR) << "The lacros window failed to be created. Result: " << result; - delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); + observers_.NotifyLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); } } @@ -143,8 +152,9 @@ } void WebKioskAppLauncher::LaunchApp() { - if (!profile_) + if (!profile_) { return; + } DCHECK(!browser_); const WebKioskAppData* app = GetCurrentApp(); @@ -156,7 +166,7 @@ // spamming when it gets stable enough. if (crosapi::browser_util::IsLacrosEnabledInWebKioskSession()) { LOG(WARNING) << "Using lacros-chrome for web kiosk session."; - delegate_->OnAppLaunched(); + observers_.NotifyAppLaunched(); if (crosapi::BrowserManager::Get()->IsRunning()) { CreateNewLacrosWindow(); } else { @@ -182,8 +192,8 @@ browser_->window()->Show(); WebKioskAppManager::Get()->InitSession(browser_, browser_->profile()); - delegate_->OnAppLaunched(); - delegate_->OnAppWindowCreated(); + observers_.NotifyAppLaunched(); + observers_.NotifyAppWindowCreated(); } void WebKioskAppLauncher::RestartLauncher() { @@ -201,8 +211,9 @@ } void WebKioskAppLauncher::OnExoWindowCreated(aura::Window* window) { - if (!profile_) + if (!profile_) { return; + } CHECK(crosapi::browser_util::IsLacrosWindow(window)); exo::WMHelper::GetInstance()->RemoveExoWindowObserver(this); @@ -214,11 +225,15 @@ // solved. base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask( FROM_HERE, - base::BindOnce(&KioskAppLauncher::Delegate::OnAppWindowCreated, - base::Unretained(delegate_)), + base::BindOnce(&WebKioskAppLauncher::NotifyAppWindowCreated, + weak_ptr_factory_.GetWeakPtr()), kSplashWindowCloseDelayTime); } +void WebKioskAppLauncher::NotifyAppWindowCreated() { + observers_.NotifyAppWindowCreated(); +} + void WebKioskAppLauncher::OnProfileWillBeDestroyed(Profile* profile) { DCHECK_EQ(profile_, profile); profile_observation_.Reset();
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h index 6ff95623..c3f8454 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h
@@ -41,7 +41,7 @@ WebKioskAppLauncher(Profile* profile, const AccountId& account_id, bool should_skip_install, - Delegate* delegate); + NetworkDelegate* network_delegate); WebKioskAppLauncher(const WebKioskAppLauncher&) = delete; WebKioskAppLauncher& operator=(const WebKioskAppLauncher&) = delete; ~WebKioskAppLauncher() override; @@ -58,13 +58,15 @@ void SetUrlLoaderForTesting( std::unique_ptr<web_app::WebAppUrlLoader> url_loader); - private: - // KioskAppLauncher: + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override; + void RemoveObserver(KioskAppLauncher::Observer* observer) override; void Initialize() override; void ContinueWithNetworkReady() override; void LaunchApp() override; void RestartLauncher() override; + private: // crosapi::BrowserManagerObserver: void OnStateChanged() override; @@ -88,6 +90,8 @@ // Get the current web application to be launched in the session. const WebKioskAppData* GetCurrentApp() const; + void NotifyAppWindowCreated(); + bool is_installed_ = false; // Whether the installation was completed. // |profile_| may become nullptr if the profile is being destroyed. Profile* profile_; @@ -95,6 +99,7 @@ const bool should_skip_install_; base::ScopedObservation<Profile, ProfileObserver> profile_observation_{this}; + KioskAppLauncher::ObserverList observers_; Browser* browser_ = nullptr; // Browser instance that runs the web kiosk app. std::unique_ptr<web_app::WebAppInstallTask>
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher_unittest.cc index fa531be..567bf826 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher_unittest.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher_unittest.cc
@@ -57,20 +57,27 @@ } // namespace -class MockAppLauncherDelegate : public WebKioskAppLauncher::Delegate { +class MockAppLauncherDelegate : public KioskAppLauncher::NetworkDelegate { public: MockAppLauncherDelegate() = default; ~MockAppLauncherDelegate() override = default; MOCK_METHOD0(InitializeNetwork, void()); + + MOCK_CONST_METHOD0(IsNetworkReady, bool()); + MOCK_CONST_METHOD0(IsShowingNetworkConfigScreen, bool()); +}; + +class MockAppLauncherObserver : public KioskAppLauncher::Observer { + public: + MockAppLauncherObserver() = default; + ~MockAppLauncherObserver() override = default; + MOCK_METHOD0(OnAppInstalling, void()); MOCK_METHOD0(OnAppPrepared, void()); MOCK_METHOD0(OnAppLaunched, void()); MOCK_METHOD0(OnAppWindowCreated, void()); MOCK_METHOD1(OnLaunchFailed, void(KioskAppLaunchError::Error)); - - MOCK_CONST_METHOD0(IsNetworkReady, bool()); - MOCK_CONST_METHOD0(IsShowingNetworkConfigScreen, bool()); }; const char kAppEmail[] = "lala@example.com"; @@ -146,6 +153,7 @@ launcher_ = std::make_unique<WebKioskAppLauncher>( profile(), AccountId::FromUserEmail(kAppEmail), should_skip_install, &delegate_); + launcher_->AddObserver(&observer_); launcher_->SetBrowserWindowForTesting(window()); auto url_loader = std::make_unique<web_app::TestWebAppUrlLoader>(); url_loader_ = url_loader.get(); @@ -194,6 +202,7 @@ } MockAppLauncherDelegate& delegate() { return delegate_; } + MockAppLauncherObserver& observer() { return observer_; } KioskAppLauncher* launcher() { return launcher_.get(); } protected: @@ -205,6 +214,7 @@ std::unique_ptr<NetworkHandlerTestHelper> network_handler_test_helper_; MockAppLauncherDelegate delegate_; + MockAppLauncherObserver observer_; std::unique_ptr<WebKioskAppLauncher> launcher_; std::unique_ptr<AppWindowCloser> closer_; }; @@ -218,14 +228,14 @@ SetupInstallData(); - EXPECT_CALL(delegate(), OnAppInstalling()); - EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), delegate(), + EXPECT_CALL(observer(), OnAppInstalling()); + EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), observer(), OnAppPrepared()); EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); EXPECT_EQ(app_data()->launch_url(), kAppLaunchUrl); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); CloseAppWindow(); } @@ -233,9 +243,9 @@ TEST_F(WebKioskAppLauncherTest, NormalFlowAlreadyInstalled) { SetupAppData(/*installed*/ true); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); CloseAppWindow(); } @@ -248,9 +258,9 @@ SetupBadInstallData(); - EXPECT_CALL(delegate(), OnAppInstalling()); + EXPECT_CALL(observer(), OnAppInstalling()); EXEC_AND_WAIT_FOR_CALL( - launcher()->ContinueWithNetworkReady(), delegate(), + launcher()->ContinueWithNetworkReady(), observer(), OnLaunchFailed((KioskAppLaunchError::Error::kUnableToLaunch))); EXPECT_NE(app_data()->status(), WebKioskAppData::Status::kInstalled); @@ -266,7 +276,7 @@ SetupInstallData(); - EXPECT_CALL(delegate(), OnAppInstalling()); + EXPECT_CALL(observer(), OnAppInstalling()); launcher()->ContinueWithNetworkReady(); EXPECT_CALL(delegate(), InitializeNetwork()).Times(1); @@ -280,17 +290,17 @@ SetupInstallData(); - EXPECT_CALL(delegate(), OnAppInstalling()).Times(1); + EXPECT_CALL(observer(), OnAppInstalling()).Times(1); EXEC_AND_WAIT_FOR_CALL( { launcher()->ContinueWithNetworkReady(); url_loader_->ProcessLoadUrlRequests(); }, - delegate(), OnAppPrepared()); + observer(), OnAppPrepared()); EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); CloseAppWindow(); } @@ -305,9 +315,9 @@ SetupNotLoadedAppData(); - EXPECT_CALL(delegate(), OnAppInstalling()); + EXPECT_CALL(observer(), OnAppInstalling()); EXEC_AND_WAIT_FOR_CALL( - launcher()->ContinueWithNetworkReady(), delegate(), + launcher()->ContinueWithNetworkReady(), observer(), OnLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall)); EXPECT_NE(app_data()->status(), WebKioskAppData::Status::kInstalled); @@ -323,12 +333,12 @@ ConstructLauncher(/*should_skip_install=*/true); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); EXPECT_EQ(app_data()->launch_url(), GURL()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); CloseAppWindow(); } @@ -384,18 +394,18 @@ browser_manager()->set_new_fullscreen_window_creation_result( crosapi::mojom::CreationResult::kSuccess); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); // The browser manager is running before launching app. The // `OnAppWindowCreated` method will be called after the lacros-chrome window // is created successfully. - EXPECT_CALL(delegate(), OnAppLaunched()).Times(1); + EXPECT_CALL(observer(), OnAppLaunched()).Times(1); browser_manager()->set_is_running(true); launcher()->LaunchApp(); - EXEC_AND_WAIT_FOR_CALL(CreateLacrosWindowAndNotify(), delegate(), + EXEC_AND_WAIT_FOR_CALL(CreateLacrosWindowAndNotify(), observer(), OnAppWindowCreated()); - EXPECT_CALL(delegate(), OnLaunchFailed(_)).Times(0); + EXPECT_CALL(observer(), OnLaunchFailed(_)).Times(0); } TEST_F(WebKioskAppLauncherUsingLacrosTest, WaitBrowserManagerToRun) { @@ -404,20 +414,20 @@ browser_manager()->set_new_fullscreen_window_creation_result( crosapi::mojom::CreationResult::kSuccess); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); // The browser manager is not running before launching app. The crosapi call // will pend until it is ready. The `OnAppWindowCreated` method will be called // after the lacros-chrome window is created successfully. - EXPECT_CALL(delegate(), OnAppLaunched()).Times(1); + EXPECT_CALL(observer(), OnAppLaunched()).Times(1); browser_manager()->set_is_running(false); launcher()->LaunchApp(); browser_manager()->set_is_running(true); browser_manager()->StartRunning(); - EXEC_AND_WAIT_FOR_CALL(CreateLacrosWindowAndNotify(), delegate(), + EXEC_AND_WAIT_FOR_CALL(CreateLacrosWindowAndNotify(), observer(), OnAppWindowCreated()); - EXPECT_CALL(delegate(), OnLaunchFailed(_)).Times(0); + EXPECT_CALL(observer(), OnLaunchFailed(_)).Times(0); } TEST_F(WebKioskAppLauncherUsingLacrosTest, FailToLaunchApp) { @@ -426,16 +436,16 @@ browser_manager()->set_new_fullscreen_window_creation_result( crosapi::mojom::CreationResult::kBrowserNotRunning); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); // If the lacros-chrome window fails to be created, the `OnLaunchFailed` // method will be called instead. - EXPECT_CALL(delegate(), OnAppLaunched()).Times(1); - EXPECT_CALL(delegate(), OnAppWindowCreated()).Times(0); + EXPECT_CALL(observer(), OnAppLaunched()).Times(1); + EXPECT_CALL(observer(), OnAppWindowCreated()).Times(0); browser_manager()->set_is_running(true); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnLaunchFailed(_)); }
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc new file mode 100644 index 0000000..17fc7204 --- /dev/null +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc
@@ -0,0 +1,305 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_update_observer.h" + +#include <sys/types.h> + +#include <memory> +#include <vector> + +#include "base/test/repeating_test_future.h" +#include "base/test/test_future.h" +#include "chrome/browser/apps/app_service/app_launch_params.h" +#include "chrome/browser/apps/app_service/app_service_proxy.h" +#include "chrome/browser/apps/app_service/app_service_proxy_factory.h" +#include "chrome/browser/apps/app_service/app_service_test.h" +#include "chrome/browser/apps/app_service/launch_result_type.h" +#include "chrome/browser/apps/app_service/publishers/app_publisher.h" +#include "chrome/browser/ash/app_mode/kiosk_app_manager_observer.h" +#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h" +#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager.h" +#include "chrome/browser/web_applications/test/fake_web_app_provider.h" +#include "chrome/browser/web_applications/test/web_app_icon_test_utils.h" +#include "chrome/browser/web_applications/test/web_app_install_test_utils.h" +#include "chrome/test/base/browser_with_test_window_test.h" +#include "components/services/app_service/public/cpp/app_types.h" +#include "components/services/app_service/public/cpp/icon_types.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/gfx/image/image_skia.h" +#include "url/gurl.h" + +namespace ash { + +namespace { + +using base::test::TestFuture; +using testing::Invoke; + +const char kAppId[] = "testappid"; +const char kAppEmail[] = "test@example.com"; +const char kAppInstallUrl[] = "https://example.com"; +const char kAppLaunchUrl[] = "https://example.com/launch"; +const char kAppTitle[] = "app"; + +void UpdateWebApp(apps::AppServiceProxy* app_service, const apps::AppPtr& app) { + std::vector<apps::AppPtr> apps; + apps.push_back(app->Clone()); + app_service->OnApps(std::move(apps), apps::AppType::kWeb, + /*should_notify_initialized=*/true); +} + +class FakePublisher final : public apps::AppPublisher { + public: + FakePublisher(apps::AppServiceProxy* proxy, apps::AppType app_type) + : AppPublisher(proxy) { + RegisterPublisher(app_type); + } + + MOCK_METHOD4(Launch, + void(const std::string& app_id, + int32_t event_flags, + apps::LaunchSource launch_source, + apps::WindowInfoPtr window_info)); + + MOCK_METHOD2(LaunchAppWithParams, + void(apps::AppLaunchParams&& params, + apps::LaunchCallback callback)); + + void LoadIcon(const std::string& app_id, + const apps::IconKey& icon_key, + apps::IconType icon_type, + int32_t size_hint_in_dip, + bool allow_placeholder_icon, + apps::LoadIconCallback callback) override { + auto icon = std::make_unique<apps::IconValue>(); + icon->icon_type = apps::IconType::kUncompressed; + icon->uncompressed = gfx::ImageSkia::CreateFrom1xBitmap( + web_app::CreateSquareIcon(kWebKioskIconSize, SK_ColorWHITE)); + icon->is_placeholder_icon = false; + std::move(callback).Run(std::move(icon)); + } +}; + +class FakeKioskAppManagerObserver : public KioskAppManagerObserver { + public: + FakeKioskAppManagerObserver() = default; + FakeKioskAppManagerObserver(const FakeKioskAppManagerObserver&) = delete; + FakeKioskAppManagerObserver& operator=(const FakeKioskAppManagerObserver&) = + delete; + ~FakeKioskAppManagerObserver() override = default; + + // `KioskAppManagerObserver` implementation: + void OnKioskAppDataChanged(const std::string& app_id) override { + change_waiter_.AddValue(app_id); + } + + void WaitForAppDataChange() { change_waiter_.Take(); } + bool HasAppDataChange() const { return !change_waiter_.IsEmpty(); } + + private: + base::test::RepeatingTestFuture<std::string> change_waiter_; +}; + +} // namespace + +class WebKioskAppManagerTest : public BrowserWithTestWindowTest { + public: + void SetUp() override { + BrowserWithTestWindowTest::SetUp(); + account_id_ = AccountId::FromUserEmail(kAppEmail); + + app_service_test_.UninstallAllApps(profile()); + app_service_test_.SetUp(profile()); + app_service_ = apps::AppServiceProxyFactory::GetForProfile(profile()); + + // |WebKioskAppUpdateObserver| requires WebAppProvider to be ready before it + // is created. + fake_web_app_provider_ = web_app::FakeWebAppProvider::Get(profile()); + web_app::test::AwaitStartWebAppProviderAndSubsystems(profile()); + + app_publisher_ = + std::make_unique<FakePublisher>(app_service_, apps::AppType::kWeb); + + app_manager_ = std::make_unique<WebKioskAppManager>(); + + app_manager()->StartObservingAppUpdate(profile(), account_id()); + app_manager()->AddObserver(&app_manager_observer_); + app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); + } + + void TearDown() override { + app_manager_->RemoveObserver(&app_manager_observer_); + app_manager_.reset(); + fake_web_app_provider_->Shutdown(); + BrowserWithTestWindowTest::TearDown(); + } + + protected: + apps::AppPtr CreateTestApp() { + auto app = std::make_unique<apps::App>(apps::AppType::kWeb, kAppId); + app->install_reason = apps::InstallReason::kKiosk; + app->readiness = apps::Readiness::kReady; + app->name = kAppTitle; + app->publisher_id = kAppLaunchUrl; + return app; + } + + AccountId& account_id() { return account_id_; } + + apps::AppServiceProxy* app_service() { return app_service_; } + + apps::AppServiceTest& app_service_test() { return app_service_test_; } + + WebKioskAppManager* app_manager() { return app_manager_.get(); } + + web_app::WebAppProvider* web_app_provider() { + return web_app::WebAppProvider::GetForTest(profile()); + } + + web_app::WebAppSyncBridge& sync_bridge() { + return web_app_provider()->sync_bridge_unsafe(); + } + + const WebKioskAppData* app_data() { + return app_manager_->GetAppByAccountId(account_id_); + } + + FakeKioskAppManagerObserver& app_manager_observer() { + return app_manager_observer_; + } + + // Ensure no app update is received (so nothing changes). + void ExpectNoAppDataChange() { + // The only way to check that we did not receive an app update is to flush + // everything and then check if any calls arrived. + task_environment()->RunUntilIdle(); + EXPECT_FALSE(app_manager_observer().HasAppDataChange()); + } + + void WaitForAppDataChange() { app_manager_observer().WaitForAppDataChange(); } + + private: + AccountId account_id_; + + apps::AppServiceTest app_service_test_; + apps::AppServiceProxy* app_service_ = nullptr; + + // A keyed service not owned by this class. + raw_ptr<web_app::FakeWebAppProvider> fake_web_app_provider_; + + std::unique_ptr<FakePublisher> app_publisher_; + + std::unique_ptr<WebKioskAppManager> app_manager_; + + FakeKioskAppManagerObserver app_manager_observer_; +}; + +TEST_F(WebKioskAppManagerTest, ShouldUpdateAppInfoWhenReady) { + apps::AppPtr app = CreateTestApp(); + app->name = kAppTitle; + app->publisher_id = kAppLaunchUrl; + app->icon_key = absl::nullopt; + + UpdateWebApp(app_service(), app); + WaitForAppDataChange(); + + EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); + EXPECT_EQ(app_data()->name(), kAppTitle); + EXPECT_EQ(app_data()->launch_url(), kAppLaunchUrl); + EXPECT_TRUE(app_data()->icon().isNull()); +} + +TEST_F(WebKioskAppManagerTest, ShouldUpdateAppInfoOnConsecutiveChanges) { + apps::AppPtr app = CreateTestApp(); + app->name = "initial-name"; + + // Send first update with initial (default) app information. + UpdateWebApp(app_service(), app); + WaitForAppDataChange(); + ASSERT_EQ(app_data()->name(), "initial-name"); + + app->name = "new-name"; + app->publisher_id = "http://new-launch-url.com"; + UpdateWebApp(app_service(), app); + WaitForAppDataChange(); + + EXPECT_EQ(app_data()->name(), "new-name"); + EXPECT_EQ(app_data()->launch_url(), GURL("http://new-launch-url.com")); +} + +TEST_F(WebKioskAppManagerTest, ShouldUpdateAppInfoWithIconWhenReady) { + // Initial app info without icon. + apps::AppPtr app = CreateTestApp(); + app->icon_key = absl::nullopt; + + UpdateWebApp(app_service(), app); + WaitForAppDataChange(); + ASSERT_TRUE(app_data()->icon().isNull()); + + app->icon_key = apps::IconKey(); + UpdateWebApp(app_service(), app); + WaitForAppDataChange(); + + EXPECT_FALSE(app_data()->icon().isNull()); + EXPECT_EQ(app_data()->icon().width(), kWebKioskIconSize); + EXPECT_EQ(app_data()->icon().height(), kWebKioskIconSize); +} + +TEST_F(WebKioskAppManagerTest, ShouldNotUpdateAppInfoWhenNotReady) { + apps::AppPtr app = CreateTestApp(); + app->name = "<new-name>"; + + app->readiness = apps::Readiness::kUnknown; + + UpdateWebApp(app_service(), app); + + ExpectNoAppDataChange(); + EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); + EXPECT_NE(app_data()->name(), "<new-name>"); +} + +TEST_F(WebKioskAppManagerTest, ShouldNotUpdateAppInfoForNonWebApps) { + apps::AppPtr app = CreateTestApp(); + app->name = "<new-name>"; + + app->app_type = apps::AppType::kChromeApp; + + UpdateWebApp(app_service(), app); + + ExpectNoAppDataChange(); + EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); + EXPECT_NE(app_data()->name(), "<new-name>"); +} + +TEST_F(WebKioskAppManagerTest, ShouldNotUpdateAppInfoForNonKioskApps) { + apps::AppPtr app = CreateTestApp(); + app->name = "<new-name>"; + + app->install_reason = apps::InstallReason::kPolicy; + + UpdateWebApp(app_service(), app); + + ExpectNoAppDataChange(); + EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); + EXPECT_NE(app_data()->name(), "<new-name>"); +} + +TEST_F(WebKioskAppManagerTest, ShouldNotUpdateAppInfoForPlaceholders) { + // Install app as placeholder. + auto app_info = std::make_unique<WebAppInstallInfo>(); + app_info->start_url = GURL(kAppLaunchUrl); + app_info->scope = GURL(kAppInstallUrl); + app_info->title = u"placeholder_title"; + app_info->is_placeholder = true; + + web_app::test::InstallWebApp(profile(), std::move(app_info), true, + webapps::WebappInstallSource::KIOSK); + + ExpectNoAppDataChange(); + EXPECT_NE(app_data()->name(), "placeholder_title"); +} + +} // namespace ash
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.cc index 19fb37a..11f7854 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.cc
@@ -23,8 +23,10 @@ WebKioskAppServiceLauncher::WebKioskAppServiceLauncher( Profile* profile, const AccountId& account_id, - KioskAppLauncher::Delegate* delegate) - : KioskAppLauncher(delegate), profile_(profile), account_id_(account_id) {} + KioskAppLauncher::NetworkDelegate* network_delegate) + : KioskAppLauncher(network_delegate), + profile_(profile), + account_id_(account_id) {} WebKioskAppServiceLauncher::~WebKioskAppServiceLauncher() = default; @@ -35,6 +37,16 @@ return app; } +void WebKioskAppServiceLauncher::AddObserver( + KioskAppLauncher::Observer* observer) { + observers_.AddObserver(observer); +} + +void WebKioskAppServiceLauncher::RemoveObserver( + KioskAppLauncher::Observer* observer) { + observers_.RemoveObserver(observer); +} + void WebKioskAppServiceLauncher::Initialize() { DCHECK(!app_service_launcher_); @@ -81,7 +93,7 @@ app_id_ = app_id.value(); // Don't enforce network status in web Kiosk if the app is already installed. - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); } void WebKioskAppServiceLauncher::ContinueWithNetworkReady() { @@ -89,7 +101,7 @@ } void WebKioskAppServiceLauncher::InstallApp() { - delegate_->OnAppInstalling(); + observers_.NotifyAppInstalling(); web_app::ExternalInstallOptions options( GetCurrentApp()->install_url(), @@ -112,7 +124,7 @@ base::UmaHistogramEnumeration(kWebAppInstallResultUMA, result.code); if (!webapps::IsSuccess(result.code)) { SYSLOG(ERROR) << "Failed to install Kiosk web app, code " << result.code; - delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall); + observers_.NotifyLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall); return; } @@ -120,7 +132,7 @@ SYSLOG(INFO) << "Successfully installed Kiosk web app."; app_id_ = result.app_id.value(); - delegate_->OnAppPrepared(); + observers_.NotifyAppPrepared(); } void WebKioskAppServiceLauncher::LaunchApp() { @@ -135,14 +147,14 @@ void WebKioskAppServiceLauncher::OnAppLaunched(bool success) { if (!success) { - delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); + observers_.NotifyLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch); return; } - delegate_->OnAppLaunched(); + observers_.NotifyAppLaunched(); } void WebKioskAppServiceLauncher::OnAppBecomesVisible() { - delegate_->OnAppWindowCreated(); + observers_.NotifyAppWindowCreated(); } void WebKioskAppServiceLauncher::RestartLauncher() {
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.h b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.h index 1377a86..ac32004c 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.h +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher.h
@@ -40,21 +40,24 @@ static constexpr char kWebAppInstallResultUMA[] = "Kiosk.AppService.WebApp.InstallResult"; - WebKioskAppServiceLauncher(Profile* profile, - const AccountId& account_id, - KioskAppLauncher::Delegate* delegate); + WebKioskAppServiceLauncher( + Profile* profile, + const AccountId& account_id, + KioskAppLauncher::NetworkDelegate* network_delegate); WebKioskAppServiceLauncher(const WebKioskAppServiceLauncher&) = delete; WebKioskAppServiceLauncher& operator=(const WebKioskAppServiceLauncher&) = delete; ~WebKioskAppServiceLauncher() override; - private: - // KioskAppLauncher overrides: + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override; + void RemoveObserver(KioskAppLauncher::Observer* observer) override; void Initialize() override; void ContinueWithNetworkReady() override; void LaunchApp() override; void RestartLauncher() override; + private: // |KioskAppServiceLauncher| callbacks. void OnWebAppInitializled(); void OnAppLaunched(bool success); @@ -72,6 +75,7 @@ Profile* profile_; const AccountId account_id_; std::string app_id_; + KioskAppLauncher::ObserverList observers_; // Not owned. A keyed service bound to the profile. raw_ptr<web_app::WebAppProvider> web_app_provider_;
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc index 6cd28fc..e35676b 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc
@@ -65,21 +65,27 @@ EXPECT_TRUE(waiter.Wait()); \ }) -class MockAppLauncherDelegate : public WebKioskAppServiceLauncher::Delegate { +class MockAppLauncherDelegate : public KioskAppLauncher::NetworkDelegate { public: MockAppLauncherDelegate() = default; ~MockAppLauncherDelegate() override = default; MOCK_METHOD0(InitializeNetwork, void()); + + MOCK_CONST_METHOD0(IsNetworkReady, bool()); + MOCK_CONST_METHOD0(IsShowingNetworkConfigScreen, bool()); +}; + +class MockAppLauncherObserver : public KioskAppLauncher::Observer { + public: + MockAppLauncherObserver() = default; + ~MockAppLauncherObserver() override = default; + MOCK_METHOD0(OnAppInstalling, void()); MOCK_METHOD0(OnAppPrepared, void()); MOCK_METHOD0(OnAppLaunched, void()); MOCK_METHOD0(OnAppWindowCreated, void()); MOCK_METHOD1(OnLaunchFailed, void(KioskAppLaunchError::Error)); - - MOCK_CONST_METHOD0(IsNetworkReady, bool()); - MOCK_CONST_METHOD0(IsShowingNetworkConfigScreen, bool()); - MOCK_CONST_METHOD0(ShouldSkipAppInstallation, bool()); }; const char kAppEmail[] = "lala@example.com"; @@ -158,14 +164,13 @@ app_manager_ = std::make_unique<WebKioskAppManager>(); - delegate_ = std::make_unique<MockAppLauncherDelegate>(); launcher_ = std::make_unique<WebKioskAppServiceLauncher>( - profile(), AccountId::FromUserEmail(kAppEmail), delegate_.get()); + profile(), AccountId::FromUserEmail(kAppEmail), &delegate_); + launcher_->AddObserver(&observer_); } void TearDown() override { launcher_.reset(); - delegate_.reset(); app_manager_.reset(); fake_web_app_provider_->Shutdown(); BrowserWithTestWindowTest::TearDown(); @@ -201,7 +206,8 @@ return app_manager_->GetAppByAccountId(account_id_); } - MockAppLauncherDelegate* delegate() { return delegate_.get(); } + MockAppLauncherDelegate& delegate() { return delegate_; } + MockAppLauncherObserver& observer() { return observer_; } KioskAppLauncher* launcher() { return launcher_.get(); } protected: @@ -279,7 +285,8 @@ raw_ptr<web_app::FakeWebAppProvider> fake_web_app_provider_; - std::unique_ptr<MockAppLauncherDelegate> delegate_; + MockAppLauncherDelegate delegate_; + MockAppLauncherObserver observer_; std::unique_ptr<WebKioskAppServiceLauncher> launcher_; webapps::InstallResultCode install_result_code_ = @@ -293,14 +300,14 @@ SetupAppData(/*installed=*/false); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), InitializeNetwork()); - EXPECT_CALL(*delegate(), OnAppInstalling()); - EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), *delegate(), + EXPECT_CALL(observer(), OnAppInstalling()); + EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), observer(), OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), *delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); EXPECT_EQ(app_data()->launch_url(), kAppLaunchUrl); @@ -317,11 +324,11 @@ TEST_F(WebKioskAppServiceLauncherTest, KioskOriginShouldGetUnlimitedStorageGrantedDuringInstallFlow) { SetupAppData(/*installed=*/false); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), InitializeNetwork()); - EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), *delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), observer(), OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), *delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); EXPECT_TRUE(profile()->GetExtensionSpecialStoragePolicy()->IsStorageUnlimited( GURL(kAppInstallUrl))); @@ -332,10 +339,9 @@ SetupAppData(/*installed=*/true); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), - OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), *delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); // App isn't always ready by the time it's being launched. Therefore we check // the total count of kLaunchAppReadinessUMA instead of individual cases. @@ -348,9 +354,8 @@ TEST_F(WebKioskAppServiceLauncherTest, KioskOriginShouldGetUnlimitedStorageGrantedIfAppAlreadyInstalled) { SetupAppData(/*installed=*/true); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), - OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), *delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), observer(), OnAppPrepared()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); EXPECT_TRUE(profile()->GetExtensionSpecialStoragePolicy()->IsStorageUnlimited( GURL(kAppInstallUrl))); @@ -361,14 +366,14 @@ SetupAppData(/*installed=*/false); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), InitializeNetwork()); set_install_result_code(webapps::InstallResultCode::kInstallURLLoadFailed); - EXPECT_CALL(*delegate(), OnAppInstalling()); + EXPECT_CALL(observer(), OnAppInstalling()); EXEC_AND_WAIT_FOR_CALL( - launcher()->ContinueWithNetworkReady(), *delegate(), + launcher()->ContinueWithNetworkReady(), observer(), OnLaunchFailed(KioskAppLaunchError::Error::kUnableToInstall)); EXPECT_NE(app_data()->status(), WebKioskAppData::Status::kInstalled); @@ -388,14 +393,14 @@ set_install_placeholder(false); - EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), *delegate(), + EXEC_AND_WAIT_FOR_CALL(launcher()->Initialize(), delegate(), InitializeNetwork()); - EXPECT_CALL(*delegate(), OnAppInstalling()); - EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), *delegate(), + EXPECT_CALL(observer(), OnAppInstalling()); + EXEC_AND_WAIT_FOR_CALL(launcher()->ContinueWithNetworkReady(), observer(), OnAppPrepared()); - EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), *delegate(), OnAppLaunched()); + EXEC_AND_WAIT_FOR_CALL(launcher()->LaunchApp(), observer(), OnAppLaunched()); EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); EXPECT_EQ(app_data()->launch_url(), kAppLaunchUrl);
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_update_observer_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_update_observer_unittest.cc deleted file mode 100644 index f5f0feed..0000000 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_update_observer_unittest.cc +++ /dev/null
@@ -1,377 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_update_observer.h" - -#include <sys/types.h> - -#include <memory> -#include <vector> - -#include "base/scoped_observation.h" -#include "base/test/bind.h" -#include "base/test/gmock_callback_support.h" -#include "base/test/test_future.h" -#include "chrome/browser/apps/app_service/app_service_proxy.h" -#include "chrome/browser/apps/app_service/app_service_proxy_factory.h" -#include "chrome/browser/apps/app_service/app_service_test.h" -#include "chrome/browser/apps/app_service/publishers/app_publisher.h" -#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h" -#include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager.h" -#include "chrome/browser/web_applications/test/fake_web_app_provider.h" -#include "chrome/browser/web_applications/test/web_app_icon_test_utils.h" -#include "chrome/browser/web_applications/test/web_app_install_test_utils.h" -#include "chrome/browser/web_applications/test/web_app_test_utils.h" -#include "chrome/browser/web_applications/web_app_constants.h" -#include "chrome/browser/web_applications/web_app_install_manager.h" -#include "chrome/browser/web_applications/web_app_registry_update.h" -#include "chrome/test/base/browser_with_test_window_test.h" -#include "chrome/test/base/testing_profile.h" -#include "components/services/app_service/public/cpp/app_registry_cache.h" -#include "components/services/app_service/public/cpp/app_types.h" -#include "components/services/app_service/public/cpp/icon_types.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/gfx/image/image_skia.h" -#include "url/gurl.h" - -namespace ash { - -namespace { - -#define EXEC_AND_WAIT_FOR_CALL(exec, mock, method) \ - ({ \ - TestFuture<bool> waiter; \ - EXPECT_CALL(mock, method).WillOnce(Invoke([&]() { \ - waiter.SetValue(true); \ - })); \ - exec; \ - EXPECT_TRUE(waiter.Wait()); \ - }) - -using base::test::TestFuture; -using testing::Invoke; - -const char kAppId[] = "testappid"; -const char kAppEmail[] = "test@example.com"; -const char kAppInstallUrl[] = "https://example.com"; -const char kAppLaunchUrl[] = "https://example.com/launch"; -const char kAppTitle[] = "app"; -const char kAppTitle2[] = "app2"; - -class FakePublisher final : public apps::AppPublisher { - public: - FakePublisher(apps::AppServiceProxy* proxy, apps::AppType app_type) - : AppPublisher(proxy) { - RegisterPublisher(app_type); - } - - MOCK_METHOD4(Launch, - void(const std::string& app_id, - int32_t event_flags, - apps::LaunchSource launch_source, - apps::WindowInfoPtr window_info)); - - MOCK_METHOD2(LaunchAppWithParams, - void(apps::AppLaunchParams&& params, - apps::LaunchCallback callback)); - - void LoadIcon(const std::string& app_id, - const apps::IconKey& icon_key, - apps::IconType icon_type, - int32_t size_hint_in_dip, - bool allow_placeholder_icon, - apps::LoadIconCallback callback) override { - auto icon = std::make_unique<apps::IconValue>(); - icon->icon_type = apps::IconType::kUncompressed; - icon->uncompressed = gfx::ImageSkia::CreateFrom1xBitmap( - web_app::CreateSquareIcon(kWebKioskIconSize, SK_ColorWHITE)); - icon->is_placeholder_icon = false; - std::move(callback).Run(std::move(icon)); - } -}; - -class MockAppRegistryCacheObserver : public apps::AppRegistryCache::Observer { - public: - explicit MockAppRegistryCacheObserver( - apps::AppRegistryCache& app_registry_cache) { - app_registry_observation_.Observe(&app_registry_cache); - } - - MOCK_METHOD1(OnAppUpdate, void(const apps::AppUpdate& update)); - - void OnAppRegistryCacheWillBeDestroyed( - apps::AppRegistryCache* cache) override { - app_registry_observation_.Reset(); - } - - private: - base::ScopedObservation<apps::AppRegistryCache, - apps::AppRegistryCache::Observer> - app_registry_observation_{this}; -}; - -} // namespace - -class WebKioskAppUpdateObserverTest : public BrowserWithTestWindowTest { - public: - void SetUp() override { - BrowserWithTestWindowTest::SetUp(); - account_id_ = AccountId::FromUserEmail(kAppEmail); - - app_service_test_.UninstallAllApps(profile()); - app_service_test_.SetUp(profile()); - app_service_ = apps::AppServiceProxyFactory::GetForProfile(profile()); - - // |WebKioskAppUpdateObserver| requires WebAppProvider to be ready before it - // is created. - fake_web_app_provider_ = web_app::FakeWebAppProvider::Get(profile()); - web_app::test::AwaitStartWebAppProviderAndSubsystems(profile()); - - app_publisher_ = - std::make_unique<FakePublisher>(app_service_, apps::AppType::kWeb); - - app_manager_ = std::make_unique<WebKioskAppManager>(); - - app_update_observer_ = - std::make_unique<WebKioskAppUpdateObserver>(profile(), account_id_); - - mock_app_registry_observer_ = - std::make_unique<MockAppRegistryCacheObserver>( - app_service_->AppRegistryCache()); - } - - void TearDown() override { - app_update_observer_.reset(); - app_manager_.reset(); - fake_web_app_provider_->Shutdown(); - BrowserWithTestWindowTest::TearDown(); - } - - protected: - apps::AppPtr CreateTestApp() { - auto app = std::make_unique<apps::App>(apps::AppType::kWeb, kAppId); - app->app_id = kAppId; - app->app_type = apps::AppType::kWeb; - app->install_reason = apps::InstallReason::kKiosk; - app->readiness = apps::Readiness::kReady; - app->name = kAppTitle; - app->publisher_id = kAppLaunchUrl; - return app; - } - - AccountId& account_id() { return account_id_; } - - apps::AppServiceProxy* app_service() { return app_service_; } - - apps::AppServiceTest& app_service_test() { return app_service_test_; } - - WebKioskAppManager* app_manager() { return app_manager_.get(); } - - web_app::WebAppProvider* web_app_provider() { - return web_app::WebAppProvider::GetForTest(profile()); - } - - web_app::WebAppSyncBridge& sync_bridge() { - return web_app_provider()->sync_bridge_unsafe(); - } - - const WebKioskAppData* app_data() { - return app_manager_->GetAppByAccountId(account_id_); - } - - WebKioskAppUpdateObserver* app_update_observer() { - return app_update_observer_.get(); - } - - MockAppRegistryCacheObserver* mock_app_registry_observer() { - return mock_app_registry_observer_.get(); - } - - private: - AccountId account_id_; - - apps::AppServiceTest app_service_test_; - apps::AppServiceProxy* app_service_ = nullptr; - - // A keyed service not owned by this class. - raw_ptr<web_app::FakeWebAppProvider> fake_web_app_provider_; - - std::unique_ptr<FakePublisher> app_publisher_; - - std::unique_ptr<WebKioskAppManager> app_manager_; - - std::unique_ptr<WebKioskAppUpdateObserver> app_update_observer_; - - std::unique_ptr<MockAppRegistryCacheObserver> mock_app_registry_observer_; -}; - -TEST_F(WebKioskAppUpdateObserverTest, ShouldUpdateAppInfoWithIconWhenReady) { - app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); - - // Initial app info without icon. - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInstalled); - EXPECT_EQ(app_data()->name(), kAppTitle); - EXPECT_EQ(app_data()->launch_url(), kAppLaunchUrl); - EXPECT_TRUE(app_data()->icon().isNull()); - - // Update app info. - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->name = kAppTitle2; - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->name(), kAppTitle2); - - // Update app icon. - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->icon_key = apps::IconKey(); - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_FALSE(app_data()->icon().isNull()); - EXPECT_EQ(app_data()->icon().width(), kWebKioskIconSize); - EXPECT_EQ(app_data()->icon().height(), kWebKioskIconSize); -} - -TEST_F(WebKioskAppUpdateObserverTest, ShouldNotUpdateAppInfoWhenNotReady) { - app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); - - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->readiness = apps::Readiness::kUnknown; - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); -} - -TEST_F(WebKioskAppUpdateObserverTest, ShouldNotUpdateAppInfoForNonWebApps) { - app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); - - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->app_type = apps::AppType::kChromeApp; - app_service()->OnApps(std::move(apps), apps::AppType::kChromeApp, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); -} - -TEST_F(WebKioskAppUpdateObserverTest, ShouldNotUpdateAppInfoForNonKioskApps) { - app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); - - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->install_reason = apps::InstallReason::kPolicy; - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); -} - -TEST_F(WebKioskAppUpdateObserverTest, ShouldNotUpdateAppInfoForPlaceholders) { - app_manager()->AddAppForTesting(account_id(), GURL(kAppInstallUrl)); - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); - - // Install app as placeholder. - std::string app_id; - { - auto app_info = std::make_unique<WebAppInstallInfo>(); - app_info->start_url = GURL(kAppLaunchUrl); - app_info->scope = GURL(kAppInstallUrl); - app_info->title = u"placeholder_title"; - app_info->is_placeholder = true; - - EXEC_AND_WAIT_FOR_CALL( - { - app_id = - web_app::test::InstallWebApp(profile(), std::move(app_info), true, - webapps::WebappInstallSource::KIOSK); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - // Update app info. - { - EXEC_AND_WAIT_FOR_CALL( - { - std::vector<apps::AppPtr> apps; - apps.push_back(CreateTestApp()); - apps[0]->app_id = app_id; - app_service()->OnApps(std::move(apps), apps::AppType::kWeb, - /*should_notify_initialized=*/true); - }, - *mock_app_registry_observer(), OnAppUpdate); - } - - EXPECT_EQ(app_data()->status(), WebKioskAppData::Status::kInit); - EXPECT_NE(app_data()->name(), kAppTitle); - EXPECT_NE(app_data()->launch_url(), kAppLaunchUrl); -} - -} // namespace ash
diff --git a/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc b/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc index b8cf603..8ccdcbc4 100644 --- a/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc +++ b/chrome/browser/ash/arc/bluetooth/arc_bluetooth_bridge.cc
@@ -3304,7 +3304,9 @@ void ArcBluetoothBridge::OnBluetoothConnectingSocketReady( ArcBluetoothBridge::BluetoothConnectingSocket* sock_wrapper) { // When connect() is ready, we will transfer this fd to Android, and Android - // is responsible for closing it. + // is responsible for closing it. The file watcher |controller| needs to be + // disabled first, and then the fd ownership is transferred. + sock_wrapper->controller.reset(); base::ScopedFD fd = std::move(sock_wrapper->file); // Checks whether connect() succeeded.
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc index 36e29eb6..eb5680e2 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.cc
@@ -13,11 +13,11 @@ #define CP_PREFIX "ChromeOS.CertProvisioning" +#define CP_RESULT ".Result" #define CP_EVENT ".Event" #define CP_KEYPAIR_GENERATION_TIME ".KeypairGenerationTime" +#define CP_VA_TIME ".VaTime" -#define CP_RESULT "ChromeOS.CertProvisioning.Result" -#define CP_VA_TIME "ChromeOS.CertProvisioning.VaTime" #define CP_CSR_SIGN_TIME "ChromeOS.CertProvisioning.CsrSignTime" #define CP_DYNAMIC ".Dynamic" @@ -28,7 +28,10 @@ namespace { // "*.User" should have index 0, "*.Device" should have index 1 (same as values // of CertScope). -const char* const kResult[] = {CP_RESULT CP_USER, CP_RESULT CP_DEVICE}; +const char* const kResult[][2] = { + {CP_PREFIX CP_RESULT CP_USER, CP_PREFIX CP_RESULT CP_DEVICE}, + {CP_PREFIX CP_RESULT CP_DYNAMIC CP_USER, + CP_PREFIX CP_RESULT CP_DYNAMIC CP_DEVICE}}; const char* const kEvent[][2] = { {CP_PREFIX CP_EVENT CP_USER, CP_PREFIX CP_EVENT CP_DEVICE}, {CP_PREFIX CP_EVENT CP_DYNAMIC CP_USER, @@ -38,7 +41,10 @@ CP_PREFIX CP_KEYPAIR_GENERATION_TIME CP_DEVICE}, {CP_PREFIX CP_KEYPAIR_GENERATION_TIME CP_DYNAMIC CP_USER, CP_PREFIX CP_KEYPAIR_GENERATION_TIME CP_DYNAMIC CP_DEVICE}}; -const char* const kVaTime[] = {CP_VA_TIME CP_USER, CP_VA_TIME CP_DEVICE}; +const char* const kVaTime[][2] = { + {CP_PREFIX CP_VA_TIME CP_USER, CP_PREFIX CP_VA_TIME CP_DEVICE}, + {CP_PREFIX CP_VA_TIME CP_DYNAMIC CP_USER, + CP_PREFIX CP_VA_TIME CP_DYNAMIC CP_DEVICE}}; const char* const kSignCsrTime[] = {CP_CSR_SIGN_TIME CP_USER, CP_CSR_SIGN_TIME CP_DEVICE}; @@ -60,12 +66,19 @@ } } // namespace -void RecordResult(CertScope scope, +void RecordResult(ProtocolVersion protocol_version, + CertScope scope, CertProvisioningWorkerState final_state, CertProvisioningWorkerState prev_state) { - base::UmaHistogramEnumeration(kResult[ScopeToIdx(scope)], final_state); + DCHECK(!IsFinalState(prev_state)); + DCHECK(IsFinalState(final_state)); + base::UmaHistogramEnumeration( + kResult[ProtocolVersionToIdx(protocol_version)][ScopeToIdx(scope)], + final_state); if (final_state == CertProvisioningWorkerState::kFailed) { - base::UmaHistogramEnumeration(kResult[ScopeToIdx(scope)], prev_state); + base::UmaHistogramEnumeration( + kResult[ProtocolVersionToIdx(protocol_version)][ScopeToIdx(scope)], + prev_state); } } @@ -85,9 +98,12 @@ sample, base::Milliseconds(1), base::Minutes(2), 25); } -void RecordVerifiedAccessTime(CertScope scope, base::TimeDelta sample) { - base::UmaHistogramCustomTimes(kVaTime[ScopeToIdx(scope)], sample, - base::Milliseconds(1), base::Minutes(2), 25); +void RecordVerifiedAccessTime(ProtocolVersion protocol_version, + CertScope scope, + base::TimeDelta sample) { + base::UmaHistogramCustomTimes( + kVaTime[ProtocolVersionToIdx(protocol_version)][ScopeToIdx(scope)], + sample, base::Milliseconds(1), base::Minutes(2), 25); } void RecordCsrSignTime(CertScope scope, base::TimeDelta sample) {
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.h b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.h index 8edaad07..1f0f701 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.h +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_metrics.h
@@ -34,7 +34,8 @@ // its |prev_state| into the same histogram. It is reasonable to put both of // them in the same histogram because the worker should never stop on an // intermediate state and even if it does, it is the same as failure. -void RecordResult(CertScope scope, +void RecordResult(ProtocolVersion protocol_version, + CertScope scope, CertProvisioningWorkerState final_state, CertProvisioningWorkerState prev_state); @@ -49,7 +50,9 @@ // Records time of building Verified Access response by certificate provisioning // worker. -void RecordVerifiedAccessTime(CertScope scope, base::TimeDelta sample); +void RecordVerifiedAccessTime(ProtocolVersion protocol_version, + CertScope scope, + base::TimeDelta sample); // Records time of signing a CSR by certificate provisioning worker. void RecordCsrSignTime(CertScope scope, base::TimeDelta sample);
diff --git a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_static.cc b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_static.cc index c2b60b0..0b651f5 100644 --- a/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_static.cc +++ b/chrome/browser/ash/cert_provisioning/cert_provisioning_worker_static.cc
@@ -498,7 +498,8 @@ const attestation::TpmChallengeKeyResult& challenge_result) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - RecordVerifiedAccessTime(cert_scope_, base::TimeTicks::Now() - start_time); + RecordVerifiedAccessTime(cert_profile_.protocol_version, cert_scope_, + base::TimeTicks::Now() - start_time); if (!challenge_result.IsSuccess()) { failure_message_ = ConstructFailureMessage(challenge_result); @@ -894,7 +895,8 @@ void CertProvisioningWorkerStatic::OnCleanUpDone() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - RecordResult(cert_scope_, state_, prev_state_); + RecordResult(cert_profile_.protocol_version, cert_scope_, state_, + prev_state_); std::move(result_callback_).Run(cert_profile_, state_); }
diff --git a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.cc b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.cc index 45c12fc9..c47d6b7 100644 --- a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.cc +++ b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.cc
@@ -8,7 +8,6 @@ #include "ash/constants/ash_switches.h" #include "base/base_paths.h" -#include "base/base_switches.h" #include "base/check.h" #include "base/command_line.h" #include "base/files/file_path_watcher.h" @@ -30,16 +29,27 @@ namespace crosapi { -namespace { +AshCrosapiTestCommandLineModifierDelegate:: + AshCrosapiTestCommandLineModifierDelegate() = default; -AshCrosapiTestEnv* g_instance = nullptr; +AshCrosapiTestCommandLineModifierDelegate:: + ~AshCrosapiTestCommandLineModifierDelegate() = default; -} // namespace +AshCrosapiTestEnv::AshCrosapiTestEnv() : AshCrosapiTestEnv(nullptr) {} -AshCrosapiTestEnv::AshCrosapiTestEnv() { - CHECK(!g_instance) << "AshCrosapiTestEnv is already created."; - g_instance = this; +AshCrosapiTestEnv::AshCrosapiTestEnv( + std::unique_ptr<AshCrosapiTestCommandLineModifierDelegate> delegate) + : delegate_(std::move(delegate)) { + Initialize(); +} +AshCrosapiTestEnv::~AshCrosapiTestEnv() { + if (process_.IsValid()) { + process_.Terminate(/*exit_code=*/0, /*wait=*/true); + } +} + +void AshCrosapiTestEnv::Initialize() { // If the user has specified a path for the ash-chrome binary, use the path. // Note that both absolute and relative paths are accepted, and the last path // component should be 'chrome', 'test_ash_chrome' or equivalent. @@ -61,6 +71,21 @@ // Sets chrome binary file to run ash process. base::CommandLine command_line(ash_chrome_path); + // Sets a user data dir path. + CHECK(user_data_dir_.CreateUniqueTempDir()); + command_line.AppendSwitchPath(switches::kUserDataDir, + user_data_dir_.GetPath()); + command_line.AppendSwitch(ash::switches::kUseMyFilesInUserDataDirForTesting); + +#if defined(MEMORY_SANITIZER) + // MSAN is incompatible with GL acceleration. + command_line.AppendSwitch(switches::kOverrideUseSoftwareGLForTests); +#endif + + if (delegate_) { + delegate_->AddExtraCommandLine(&command_line); + } + // Sets a socket path. base::ScopedTempDir temp_dir; CHECK(temp_dir.CreateUniqueTempDir()); @@ -69,21 +94,6 @@ command_line.AppendSwitchASCII(ash::switches::kLacrosMojoSocketForTesting, socket_path); - // Sets a user data dir path. - CHECK(user_data_dir_.CreateUniqueTempDir()); - command_line.AppendSwitchPath(switches::kUserDataDir, - user_data_dir_.GetPath()); - command_line.AppendSwitch(ash::switches::kUseMyFilesInUserDataDirForTesting); - - // This switch is for filemanger test to install an app. - // TODO(crbug.com/1376891): Remove settings for a specific test. - command_line.AppendSwitchASCII(switches::kEnableFeatures, "WebAppsCrosapi"); - -#if defined(MEMORY_SANITIZER) - // MSAN is incompatible with GL acceleration. - command_line.AppendSwitch(switches::kOverrideUseSoftwareGLForTests); -#endif - // Waits for socket connection to establish. // TODO(crbug.com/1368029): Separate logs generated during setup from those // generated during test. @@ -127,19 +137,6 @@ invitation.ExtractMessagePipe(0), 0u)); } -AshCrosapiTestEnv::~AshCrosapiTestEnv() { - CHECK_EQ(g_instance, this); - if (process_.IsValid()) - process_.Terminate(/*exit_code=*/0, /*wait=*/true); - g_instance = nullptr; -} - -// static -AshCrosapiTestEnv* AshCrosapiTestEnv::GetInstance() { - CHECK(g_instance) << "AshCrosapiTestEnv is not created."; - return g_instance; -} - bool AshCrosapiTestEnv::IsValid() { return process_.IsValid() && crosapi_remote_.is_bound(); }
diff --git a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h index 619c1fb..d316f7b 100644 --- a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h +++ b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h
@@ -5,38 +5,67 @@ #ifndef CHROME_BROWSER_ASH_CROSAPI_TEST_ASH_CROSAPI_TESTS_ENV_H_ #define CHROME_BROWSER_ASH_CROSAPI_TEST_ASH_CROSAPI_TESTS_ENV_H_ +#include <memory> + #include "base/files/scoped_temp_dir.h" #include "base/process/process.h" #include "chromeos/crosapi/mojom/crosapi.mojom.h" #include "mojo/public/cpp/bindings/remote.h" namespace base { +class CommandLine; class FilePath; } namespace crosapi { -// This is for setting up tests environment for CrosapiTestBase. +// Delegate class to modify command line used for setting up ash process. +// To introduce ash env with customized command line, inherit this class to +// implement `AddExtraCommandLine`, and construct AshCrosapiTestEnv with +// passing the delegate class. +class AshCrosapiTestCommandLineModifierDelegate { + public: + AshCrosapiTestCommandLineModifierDelegate(); + AshCrosapiTestCommandLineModifierDelegate( + const AshCrosapiTestCommandLineModifierDelegate&) = delete; + AshCrosapiTestCommandLineModifierDelegate& operator=( + const AshCrosapiTestCommandLineModifierDelegate&) = delete; + virtual ~AshCrosapiTestCommandLineModifierDelegate(); + + // Adds extra command line to `command_line`. + // This is called before launching ash process, and the modified + // `command_line` will be passed to ash process on launch. + virtual void AddExtraCommandLine(base::CommandLine* command_line) = 0; +}; + +// AshCrosapiTestEnv is a test envirotnemtn for CrosapiTestBase. +// It's responsible for creating ash process and set up mojo connection. class AshCrosapiTestEnv { public: AshCrosapiTestEnv(); + explicit AshCrosapiTestEnv( + std::unique_ptr<AshCrosapiTestCommandLineModifierDelegate> delegate); AshCrosapiTestEnv(const AshCrosapiTestEnv&) = delete; AshCrosapiTestEnv& operator=(const AshCrosapiTestEnv&) = delete; ~AshCrosapiTestEnv(); - static AshCrosapiTestEnv* GetInstance(); + // Initializes Ash environment. + void Initialize(); + + // Returns true if process and crosapi are valid. + bool IsValid(); mojo::Remote<mojom::Crosapi>& GetCrosapiRemote() { return crosapi_remote_; } const base::FilePath& GetUserDataDir() { return user_data_dir_.GetPath(); } - // Returns if process and crosapi are valid. - bool IsValid(); - private: + std::unique_ptr<AshCrosapiTestCommandLineModifierDelegate> delegate_; + base::ScopedTempDir user_data_dir_; base::Process process_; mojo::Remote<mojom::Crosapi> crosapi_remote_; }; + } // namespace crosapi #endif // CHROME_BROWSER_ASH_CROSAPI_TEST_ASH_CROSAPI_TESTS_ENV_H_
diff --git a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_main.cc b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_main.cc index 05bb8a9..4a8cf67 100644 --- a/chrome/browser/ash/crosapi/test/ash_crosapi_tests_main.cc +++ b/chrome/browser/ash/crosapi/test/ash_crosapi_tests_main.cc
@@ -10,7 +10,6 @@ #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "base/threading/thread.h" -#include "chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h" #include "mojo/core/embedder/embedder.h" #include "mojo/core/embedder/scoped_ipc_support.h" @@ -41,13 +40,9 @@ executor_ = std::make_unique<base::SingleThreadTaskExecutor>( base::MessagePumpType::IO); - - // Construct AshCrosapiTestEnv. - env_ = std::make_unique<crosapi::AshCrosapiTestEnv>(); } void Shutdown() override { - env_.reset(); executor_.reset(); ipc_support_.reset(); io_thread_.Stop(); @@ -59,7 +54,6 @@ std::unique_ptr<mojo::core::ScopedIPCSupport> ipc_support_; std::unique_ptr<base::SingleThreadTaskExecutor> executor_; - std::unique_ptr<crosapi::AshCrosapiTestEnv> env_; }; } // namespace
diff --git a/chrome/browser/ash/crosapi/test/crosapi_test_base.cc b/chrome/browser/ash/crosapi/test/crosapi_test_base.cc index 6ac1382a..670fd76 100644 --- a/chrome/browser/ash/crosapi/test/crosapi_test_base.cc +++ b/chrome/browser/ash/crosapi/test/crosapi_test_base.cc
@@ -4,18 +4,17 @@ #include "chrome/browser/ash/crosapi/test/crosapi_test_base.h" -#include "chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h" - namespace crosapi { -CrosapiTestBase::CrosapiTestBase() = default; +CrosapiTestBase::CrosapiTestBase() : CrosapiTestBase(nullptr) {} + +CrosapiTestBase::CrosapiTestBase( + std::unique_ptr<AshCrosapiTestCommandLineModifierDelegate> delegate) + : env_(std::make_unique<AshCrosapiTestEnv>(std::move(delegate))) {} + CrosapiTestBase::~CrosapiTestBase() = default; -void CrosapiTestBase::SetUp() { - ASSERT_TRUE(AshCrosapiTestEnv::GetInstance()->IsValid()); -} - const base::FilePath& CrosapiTestBase::GetUserDataDir() { - return AshCrosapiTestEnv::GetInstance()->GetUserDataDir(); + return env_->GetUserDataDir(); } } // namespace crosapi
diff --git a/chrome/browser/ash/crosapi/test/crosapi_test_base.h b/chrome/browser/ash/crosapi/test/crosapi_test_base.h index cf36f47..97fe3ad 100644 --- a/chrome/browser/ash/crosapi/test/crosapi_test_base.h +++ b/chrome/browser/ash/crosapi/test/crosapi_test_base.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_ASH_CROSAPI_TEST_CROSAPI_TEST_BASE_H_ #define CHROME_BROWSER_ASH_CROSAPI_TEST_CROSAPI_TEST_BASE_H_ +#include <memory> + #include "chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h" #include "chromeos/crosapi/mojom/crosapi.mojom.h" #include "mojo/public/cpp/bindings/remote.h" @@ -20,12 +22,12 @@ class CrosapiTestBase : public ::testing::Test { public: CrosapiTestBase(); + explicit CrosapiTestBase( + std::unique_ptr<AshCrosapiTestCommandLineModifierDelegate> delegate); CrosapiTestBase(const CrosapiTestBase&) = delete; CrosapiTestBase& operator=(const CrosapiTestBase&) = delete; ~CrosapiTestBase() override; - void SetUp() override; - protected: // This function binds a remote for a given CrosapiInterface. // For example: @@ -40,13 +42,16 @@ mojo::Remote<CrosapiInterface> BindCrosapiInterface(void ( mojom::Crosapi::*bind_func)(mojo::PendingReceiver<CrosapiInterface>)) { mojo::Remote<CrosapiInterface> remote; - (AshCrosapiTestEnv::GetInstance()->GetCrosapiRemote().get()->*bind_func)( + (env_->GetCrosapiRemote().get()->*bind_func)( remote.BindNewPipeAndPassReceiver()); return std::move(remote); } // A temp dir will be used as a user data dir. const base::FilePath& GetUserDataDir(); + + private: + std::unique_ptr<AshCrosapiTestEnv> env_; }; } // namespace crosapi
diff --git a/chrome/browser/ash/crosapi/test/file_manager_ash_crosapitest.cc b/chrome/browser/ash/crosapi/test/file_manager_ash_crosapitest.cc index 48738ac7..127a6dc2 100644 --- a/chrome/browser/ash/crosapi/test/file_manager_ash_crosapitest.cc +++ b/chrome/browser/ash/crosapi/test/file_manager_ash_crosapitest.cc
@@ -2,6 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <memory> + +#include "base/base_switches.h" +#include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/functional/bind.h" @@ -9,6 +13,7 @@ #include "base/test/bind.h" #include "base/test/test_future.h" #include "base/threading/thread_restrictions.h" +#include "chrome/browser/ash/crosapi/test/ash_crosapi_tests_env.h" #include "chrome/browser/ash/crosapi/test/crosapi_test_base.h" #include "chromeos/crosapi/mojom/app_service.mojom.h" #include "chromeos/crosapi/mojom/app_service_types.mojom.h" @@ -23,14 +28,35 @@ constexpr char kFakeChromeAppName[] = "fake-chrome-app"; +class FileManagerCrosapiTestCommandLineModifier + : public AshCrosapiTestCommandLineModifierDelegate { + public: + FileManagerCrosapiTestCommandLineModifier() = default; + FileManagerCrosapiTestCommandLineModifier( + const FileManagerCrosapiTestCommandLineModifier&) = delete; + FileManagerCrosapiTestCommandLineModifier& operator=( + const FileManagerCrosapiTestCommandLineModifier&) = delete; + ~FileManagerCrosapiTestCommandLineModifier() override = default; + + void AddExtraCommandLine(base::CommandLine* command_line) override { + // This switch allows app installation. + command_line->AppendSwitchASCII(switches::kEnableFeatures, + "WebAppsCrosapi"); + } +}; + class FileManagerCrosapiTest : public CrosapiTestBase { + public: + FileManagerCrosapiTest() + : CrosapiTestBase( + std::make_unique<FileManagerCrosapiTestCommandLineModifier>()) {} + protected: void SetUp() override { - CrosapiTestBase::SetUp(); - app_publisher_ = BindCrosapiInterface(&mojom::Crosapi::BindWebAppPublisher); file_manager_ = BindCrosapiInterface(&mojom::Crosapi::BindFileManager); } + const base::FilePath GetMyFilesPath() { return GetUserDataDir().Append("test-user").Append("MyFiles"); }
diff --git a/chrome/browser/ash/crosapi/test/network_change_ash_crosapitest.cc b/chrome/browser/ash/crosapi/test/network_change_ash_crosapitest.cc index fc29beca..d27ce3a0 100644 --- a/chrome/browser/ash/crosapi/test/network_change_ash_crosapitest.cc +++ b/chrome/browser/ash/crosapi/test/network_change_ash_crosapitest.cc
@@ -38,8 +38,6 @@ class NetworkChangeCrosapiTest : public CrosapiTestBase { protected: void SetUp() override { - CrosapiTestBase::SetUp(); - network_change_ = BindCrosapiInterface(&mojom::Crosapi::BindNetworkChange); test_controller_ = BindCrosapiInterface(&mojom::Crosapi::BindTestController);
diff --git a/chrome/browser/ash/file_manager/copy_or_move_io_task.h b/chrome/browser/ash/file_manager/copy_or_move_io_task.h index ca330c6..b3f8d63 100644 --- a/chrome/browser/ash/file_manager/copy_or_move_io_task.h +++ b/chrome/browser/ash/file_manager/copy_or_move_io_task.h
@@ -49,6 +49,7 @@ void Execute(ProgressCallback progress_callback, CompleteCallback complete_callback) override; + // Cancels the copy or move. void Cancel() override; private:
diff --git a/chrome/browser/ash/file_manager/copy_or_move_io_task_impl.h b/chrome/browser/ash/file_manager/copy_or_move_io_task_impl.h index 52b0ac8..46d0ee8 100644 --- a/chrome/browser/ash/file_manager/copy_or_move_io_task_impl.h +++ b/chrome/browser/ash/file_manager/copy_or_move_io_task_impl.h
@@ -64,7 +64,7 @@ virtual void Execute(ProgressCallback progress_callback, CompleteCallback complete_callback); - // Cancels the operation. + // Cancels the copy or move. void Cancel(); // Helper function for copy or move tasks that determines whether or not
diff --git a/chrome/browser/ash/file_manager/extract_io_task.cc b/chrome/browser/ash/file_manager/extract_io_task.cc index 4c5b2934..89c0ab9 100644 --- a/chrome/browser/ash/file_manager/extract_io_task.cc +++ b/chrome/browser/ash/file_manager/extract_io_task.cc
@@ -187,8 +187,8 @@ // Might not exist in tests. const absl::optional<gid_t> owner_gid = GetDirectoriesOwnerGid(); if (created_ok && owner_gid.has_value()) { - created_ok = HANDLE_EINTR( - chown(destination_directory.value().c_str(), -1, owner_gid.value())); + created_ok = (HANDLE_EINTR(chown(destination_directory.value().c_str(), + -1, owner_gid.value())) == 0); } } return created_ok;
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc index 2799285..b7c7e4c 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -1315,10 +1315,10 @@ TestCase("driveLinkOpenFileThroughTransitiveLink"), TestCase("driveWelcomeBanner"), TestCase("driveOfflineInfoBanner").EnableDriveDssPin(), - TestCase("driveOfflineInfoBannerWithoutFlag") - // TODO(b/258987225): Enable - // TestCase("driveInlineSyncStatusSingleFile").EnableInlineStatusSync(), - // TestCase("driveInlineSyncStatusParentFolder").EnableInlineStatusSync() + TestCase("driveOfflineInfoBannerWithoutFlag"), + TestCase("driveDeleteDialogDoesntMentionPermanentDelete"), + TestCase("driveInlineSyncStatusSingleFile").EnableInlineStatusSync(), + TestCase("driveInlineSyncStatusParentFolder").EnableInlineStatusSync() // TODO(b/189173190): Enable // TestCase("driveEnableDocsOfflineDialog"), // TODO(b/189173190): Enable
diff --git a/chrome/browser/ash/file_manager/file_manager_string_util.cc b/chrome/browser/ash/file_manager/file_manager_string_util.cc index 058717eb..ea8ca879 100644 --- a/chrome/browser/ash/file_manager/file_manager_string_util.cc +++ b/chrome/browser/ash/file_manager/file_manager_string_util.cc
@@ -356,6 +356,16 @@ SET_STRING("TRASH_NUDGE_LABEL", IDS_FILE_BROWSER_TRASH_NUDGE_LABEL); SET_STRING("CONFIRM_DELETE_ONE", IDS_FILE_BROWSER_CONFIRM_DELETE_ONE); SET_STRING("CONFIRM_DELETE_SOME", IDS_FILE_BROWSER_CONFIRM_DELETE_SOME); + SET_STRING("CONFIRM_PERMANENTLY_DELETE_ONE_TITLE", + IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_TITLE); + SET_STRING("CONFIRM_PERMANENTLY_DELETE_SOME_TITLE", + IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_TITLE); + SET_STRING("CONFIRM_PERMANENTLY_DELETE_ONE_DESC", + IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_DESC); + SET_STRING("CONFIRM_PERMANENTLY_DELETE_SOME_DESC", + IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_DESC); + SET_STRING("PERMANENTLY_DELETE_FOREVER", + IDS_FILE_BROWSER_PERMANENTLY_DELETE_FOREVER); SET_STRING("CANT_RESTORE_SINGLE_ITEM", IDS_FILE_BROWSER_CANT_RESTORE_TRASHED_SINGLE_ITEM); SET_STRING("CANT_RESTORE_MULTIPLE_ITEMS_SAME_PARENTS", @@ -375,6 +385,11 @@ IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_BOTH); SET_STRING("CONFLICT_DIALOG_REPLACE", IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE); + SET_STRING("CONFLICT_DIALOG_KEEP_ALL", + IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_ALL); + SET_STRING("CONFLICT_DIALOG_REPLACE_ALL", + IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE_ALL); + SET_STRING("COPY_BUTTON_LABEL", IDS_FILE_BROWSER_COPY_BUTTON_LABEL); SET_STRING("COPY_FILESYSTEM_ERROR", IDS_FILE_BROWSER_COPY_FILESYSTEM_ERROR); SET_STRING("EMPTY_TRASH_UNEXPECTED_ERROR", @@ -1112,6 +1127,9 @@ dict->Set("FILES_APP_EXPERIMENTAL", base::FeatureList::IsEnabled(ash::features::kFilesAppExperimental)); + dict->Set("FILES_CONFLICT_DIALOG", + base::FeatureList::IsEnabled(ash::features::kFilesConflictDialog)); + dict->Set("FUSEBOX_DEBUG", base::FeatureList::IsEnabled(ash::features::kFuseBoxDebug)); @@ -1134,8 +1152,6 @@ dict->Set("DLP_ENABLED", false); } - dict->Set("UI_LOCALE", locale); - dict->Set("WEEK_START_FROM", GetLocaleBasedWeekStart()); base::Value::List vms; auto* share_path = guest_os::GuestOsSharePath::GetForProfile(profile); if (share_path) { @@ -1147,4 +1163,8 @@ } } dict->Set("VMS_FOR_SHARING", std::move(vms)); + + // Lastly, set UI_LOCALE and locale-dependent settings. + dict->Set("UI_LOCALE", locale); + dict->Set("WEEK_START_FROM", GetLocaleBasedWeekStart()); }
diff --git a/chrome/browser/ash/file_manager/file_tasks.cc b/chrome/browser/ash/file_manager/file_tasks.cc index 38d37dc..e6fab92 100644 --- a/chrome/browser/ash/file_manager/file_tasks.cc +++ b/chrome/browser/ash/file_manager/file_tasks.cc
@@ -164,21 +164,6 @@ return action_id; } -// Returns true if the `task` is a Web Drive Office task. -bool IsWebDriveOfficeTask(const TaskDescriptor& task) { - const std::string action_id = ParseFilesAppActionId(task.action_id); - bool is_web_drive_office_action_id = - action_id == kActionIdWebDriveOfficeWord || - action_id == kActionIdWebDriveOfficeExcel || - action_id == kActionIdWebDriveOfficePowerPoint; - return IsFilesAppId(task.app_id) && is_web_drive_office_action_id; -} - -bool IsOpenInOfficeTask(const TaskDescriptor& task) { - const std::string action_id = ParseFilesAppActionId(task.action_id); - return IsFilesAppId(task.app_id) && action_id == kActionIdOpenInOffice; -} - // Returns true if path_mime_set contains a Google document. bool ContainsGoogleDocument(const std::vector<extensions::EntryInfo>& entries) { for (const auto& it : entries) { @@ -536,6 +521,19 @@ } } +bool TaskDescriptor::operator==(const TaskDescriptor& other) const { + if (app_id != other.app_id) { + return false; + } + if (task_type != other.task_type) { + return false; + } + if (action_id != other.action_id) { + return false; + } + return true; +} + FullTaskDescriptor::FullTaskDescriptor(const TaskDescriptor& in_task_descriptor, const std::string& in_task_title, const GURL& in_icon_url, @@ -1066,6 +1064,20 @@ } } +bool IsWebDriveOfficeTask(const TaskDescriptor& task) { + const std::string action_id = ParseFilesAppActionId(task.action_id); + bool is_web_drive_office_action_id = + action_id == kActionIdWebDriveOfficeWord || + action_id == kActionIdWebDriveOfficeExcel || + action_id == kActionIdWebDriveOfficePowerPoint; + return IsFilesAppId(task.app_id) && is_web_drive_office_action_id; +} + +bool IsOpenInOfficeTask(const TaskDescriptor& task) { + const std::string action_id = ParseFilesAppActionId(task.action_id); + return IsFilesAppId(task.app_id) && action_id == kActionIdOpenInOffice; +} + bool IsExtensionInstalled(Profile* profile, const std::string& extension_id) { extensions::ExtensionRegistry* registry = extensions::ExtensionRegistry::Get(profile); @@ -1102,28 +1114,35 @@ } // namespace -void SetWordFileHandler(Profile* profile, const std::string& action_id) { - TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP, - ToSwaActionId(action_id)); +void SetWordFileHandler(Profile* profile, TaskDescriptor& task) { UpdateDefaultTask( profile, task, {".doc", ".docx"}, {"application/msword", "application/" "vnd.openxmlformats-officedocument.wordprocessingml.document"}); } - -void SetExcelFileHandler(Profile* profile, const std::string& action_id) { +void SetWordFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id) { TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP, ToSwaActionId(action_id)); + SetWordFileHandler(profile, task); +} + +void SetExcelFileHandler(Profile* profile, TaskDescriptor& task) { UpdateDefaultTask( profile, task, {".xls", ".xlsx"}, {"application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}); } -void SetPowerPointFileHandler(Profile* profile, const std::string& action_id) { +void SetExcelFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id) { TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP, ToSwaActionId(action_id)); + SetExcelFileHandler(profile, task); +} + +void SetPowerPointFileHandler(Profile* profile, TaskDescriptor& task) { UpdateDefaultTask( profile, task, {".ppt", ".pptx"}, {"application/vnd.ms-powerpoint", @@ -1131,6 +1150,13 @@ "vnd.openxmlformats-officedocument.presentationml.presentation"}); } +void SetPowerPointFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id) { + TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP, + ToSwaActionId(action_id)); + SetPowerPointFileHandler(profile, task); +} + void SetOfficeSetupComplete(Profile* profile, bool complete) { profile->GetPrefs()->SetBoolean(prefs::kOfficeSetupComplete, complete); }
diff --git a/chrome/browser/ash/file_manager/file_tasks.h b/chrome/browser/ash/file_manager/file_tasks.h index 7b2d171..23f044e6 100644 --- a/chrome/browser/ash/file_manager/file_tasks.h +++ b/chrome/browser/ash/file_manager/file_tasks.h
@@ -212,6 +212,7 @@ TaskDescriptor() = default; bool operator<(const TaskDescriptor& other) const; + bool operator==(const TaskDescriptor& other) const; std::string app_id; TaskType task_type; @@ -386,6 +387,10 @@ const std::vector<extensions::EntryInfo>& entries, ResultingTasks* resulting_tasks); +bool IsWebDriveOfficeTask(const TaskDescriptor& task); + +bool IsOpenInOfficeTask(const TaskDescriptor& task); + bool IsExtensionInstalled(Profile* profile, const std::string& extension_id); // Returns whether |path| is an HTML file according to its extension. @@ -394,12 +399,21 @@ // Returns whether |path| is a MS Office file according to its extension. bool IsOfficeFile(const base::FilePath& path); +// Updates the default task for each of the office file types. +void SetWordFileHandler(Profile* profile, TaskDescriptor& task); +void SetExcelFileHandler(Profile* profile, TaskDescriptor& task); +void SetPowerPointFileHandler(Profile* profile, TaskDescriptor& task); + // TODO(petermarshall): Move these to a new file office_file_tasks.cc/h -// Updates the default task for each of the office file types. |action_id| must -// be a valid action registered with the Files app SWA. -void SetWordFileHandler(Profile* profile, const std::string& action_id); -void SetExcelFileHandler(Profile* profile, const std::string& action_id); -void SetPowerPointFileHandler(Profile* profile, const std::string& action_id); +// Updates the default task for each of the office file types to a Files +// SWA with |action_id|. |action_id| must be a valid action registered with the +// Files app SWA. +void SetWordFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id); +void SetExcelFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id); +void SetPowerPointFileHandlerToFilesSWA(Profile* profile, + const std::string& action_id); // TODO(petermarshall): Move these to a new file office_file_tasks.cc/h // Sets the user preference storing whether the setup flow for office files has
diff --git a/chrome/browser/ash/file_manager/file_tasks_unittest.cc b/chrome/browser/ash/file_manager/file_tasks_unittest.cc index 8da3b92..45c22a4 100644 --- a/chrome/browser/ash/file_manager/file_tasks_unittest.cc +++ b/chrome/browser/ash/file_manager/file_tasks_unittest.cc
@@ -150,6 +150,34 @@ ASSERT_TRUE(base::Contains(tasks, task_3)); } +TEST(FileManagerFileTasksTest, EqualTaskDescriptors) { + TaskDescriptor task_1("a", TASK_TYPE_FILE_HANDLER, "view"); + TaskDescriptor task_2("a", TASK_TYPE_FILE_HANDLER, "view"); + + ASSERT_EQ(task_1, task_2); +} + +TEST(FileManagerFileTasksTest, NotEqualAppIdInTaskDescriptors) { + TaskDescriptor task_1("a", TASK_TYPE_FILE_HANDLER, "view"); + TaskDescriptor task_2("b", TASK_TYPE_FILE_HANDLER, "view"); + + ASSERT_NE(task_1, task_2); +} + +TEST(FileManagerFileTasksTest, NotEqualTaskTypeInTaskDescriptors) { + TaskDescriptor task_1("a", TASK_TYPE_FILE_HANDLER, "view"); + TaskDescriptor task_2("a", TASK_TYPE_FILE_BROWSER_HANDLER, "view"); + + ASSERT_NE(task_1, task_2); +} + +TEST(FileManagerFileTasksTest, NotEqualActionIdInTaskDescriptors) { + TaskDescriptor task_1("a", TASK_TYPE_FILE_HANDLER, "view"); + TaskDescriptor task_2("a", TASK_TYPE_FILE_HANDLER, "edit"); + + ASSERT_NE(task_1, task_2); +} + // Test FileHandlerIsEnabled which returns whether a file handler should be // used. TEST(FileManagerFileTasksTest, FileHandlerIsEnabled) { @@ -699,6 +727,79 @@ ASSERT_EQ(*default_task_id, files_task_id); } +// Test the setting of a default file task for Office files to a Files App SWA. +TEST_F(FileManagerFileTaskPreferencesTest, SetOfficeFileHandlersToFilesSWA) { + file_manager::file_tasks::TaskDescriptor default_task; + TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP, + "chrome://file-manager/?a"); + + // Check no default tasks exist for Doc files. + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/msword", ".doc", &default_task)); + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/" + "vnd.openxmlformats-officedocument.wordprocessingml.document", + ".docx", &default_task)); + // Set default task for Doc files as a Files App SWA with action id "a". + SetWordFileHandlerToFilesSWA(profile(), "a"); + // Check the default task for Doc files is `task`. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/msword", ".doc", &default_task)); + ASSERT_EQ(task, default_task); + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/" + "vnd.openxmlformats-officedocument.wordprocessingml.document", + ".docx", &default_task)); + ASSERT_EQ(task, default_task); + + // Check no default tasks exist for Excel files. + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/vnd.ms-excel", ".xls", + &default_task)); + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xlsx", &default_task)); + // Set default task for Excel files as a Files App SWA with action id "a". + SetExcelFileHandlerToFilesSWA(profile(), "a"); + // Check the default task for Excel files is `task`. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/vnd.ms-excel", ".xls", + &default_task)); + ASSERT_EQ(task, default_task); + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xlsx", &default_task)); + ASSERT_EQ(task, default_task); + + // Check no default tasks exist for Powerpoint files. + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt", + &default_task)); + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/" + "vnd.openxmlformats-officedocument.presentationml.presentation", + ".pptx", &default_task)); + // Set default task for Powerpoint files as a Files App SWA with action id + // "a". + SetPowerPointFileHandlerToFilesSWA(profile(), "a"); + // Check the default task for Powerpoint files is `task`. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt", + &default_task)); + ASSERT_EQ(task, default_task); + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), + "application/" + "vnd.openxmlformats-officedocument.presentationml.presentation", + ".pptx", &default_task)); + ASSERT_EQ(task, default_task); +} + // Test that the office PWA file handler is hidden from the available file // handlers when opening an office file. TEST_F(FileManagerFileTaskWithAppServiceTest, OfficePwaHandlerHidden) {
diff --git a/chrome/browser/ash/file_manager/io_task.h b/chrome/browser/ash/file_manager/io_task.h index 5e1104c..db935bd 100644 --- a/chrome/browser/ash/file_manager/io_task.h +++ b/chrome/browser/ash/file_manager/io_task.h
@@ -72,7 +72,9 @@ EntryStatus(EntryStatus&& other); EntryStatus& operator=(EntryStatus&& other); + // The entry FileSystemURL. storage::FileSystemURL url; + // May be empty if the entry has not been fully processed yet. absl::optional<base::File::Error> error; };
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc index f2328bf..5d4baf1 100644 --- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc +++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
@@ -120,14 +120,22 @@ class ArcKioskAppServiceWrapper : public KioskAppLauncher { public: ArcKioskAppServiceWrapper(ArcKioskAppService* service, - KioskAppLauncher::Delegate* delegate) + KioskAppLauncher::NetworkDelegate* delegate) : service_(service) { - service_->SetDelegate(delegate); + service_->SetNetworkDelegate(delegate); } - ~ArcKioskAppServiceWrapper() override { service_->SetDelegate(nullptr); } + ~ArcKioskAppServiceWrapper() override { + service_->SetNetworkDelegate(nullptr); + } - // KioskAppLauncher: + // `KioskAppLauncher`: + void AddObserver(KioskAppLauncher::Observer* observer) override { + service_->AddObserver(observer); + } + void RemoveObserver(KioskAppLauncher::Observer* observer) override { + service_->RemoveObserver(observer); + } void Initialize() override { service_->Initialize(); } void ContinueWithNetworkReady() override { service_->ContinueWithNetworkReady(); @@ -136,6 +144,8 @@ void LaunchApp() override { service_->LaunchApp(); } private: + // `service_` is externally owned and it's the caller's responsibility to + // ensure that it outlives this wrapper. ArcKioskAppService* const service_; }; @@ -171,8 +181,9 @@ KioskLaunchController::KioskLaunchController() : host_(nullptr) {} KioskLaunchController::~KioskLaunchController() { - if (splash_screen_view_) + if (splash_screen_view_) { splash_screen_view_->SetDelegate(nullptr); + } } void KioskLaunchController::Start(const KioskAppId& kiosk_app_id, @@ -185,24 +196,27 @@ RecordKioskLaunchUMA(auto_launch); SetKioskLaunchStateCrashKey(KioskLaunchState::kLauncherStarted); - if (host_) + if (host_) { host_->GetLoginDisplay()->SetUIEnabled(true); + } if (kiosk_app_id.type == KioskAppType::kChromeApp) { KioskAppManager::App app; DCHECK(KioskAppManager::IsInitialized()); CHECK(KioskAppManager::Get()->GetApp(*kiosk_app_id.app_id, &app)); kiosk_app_id_.account_id = app.account_id; - if (auto_launch) + if (auto_launch) { KioskAppManager::Get()->SetAppWasAutoLaunchedWithZeroDelay( *kiosk_app_id.app_id); + } } splash_screen_view_->SetDelegate(this); splash_screen_view_->Show(); - if (g_disable_wait_timer_and_login_operations) + if (g_disable_wait_timer_and_login_operations) { return; + } splash_wait_timer_.Start(FROM_HERE, kKioskSplashScreenMinTime, base::BindOnce(&KioskLaunchController::OnTimerFire, @@ -297,16 +311,19 @@ break; } } + app_launcher_observation_.Observe(app_launcher_.get()); app_launcher_->Initialize(); - if (network_ui_state_ == NetworkUIState::kNeedToShow) + if (network_ui_state_ == NetworkUIState::kNeedToShow) { ShowNetworkConfigureUI(); + } } void KioskLaunchController::OnConfigureNetwork() { DCHECK(profile_); - if (network_ui_state_ == NetworkUIState::kShowing) + if (network_ui_state_ == NetworkUIState::kShowing) { return; + } network_ui_state_ = NetworkUIState::kShowing; if (CanConfigureNetwork() && NeedOwnerAuthToConfigureNetwork()) { @@ -323,12 +340,14 @@ } void KioskLaunchController::OnCancelAppLaunch() { - if (cleaned_up_) + if (cleaned_up_) { return; + } // Only auto-launched apps should be cancelable. - if (KioskAppManager::Get()->GetDisableBailoutShortcut() && auto_launch_) + if (KioskAppManager::Get()->GetDisableBailoutShortcut() && auto_launch_) { return; + } SYSLOG(INFO) << "Canceling kiosk app launch."; @@ -348,24 +367,27 @@ switch (kiosk_app_id_.type) { case KioskAppType::kChromeApp: { KioskAppManagerBase::App app; - if (KioskAppManager::Get()->GetApp(*kiosk_app_id_.app_id, &app)) + if (KioskAppManager::Get()->GetApp(*kiosk_app_id_.app_id, &app)) { return app; + } break; } case KioskAppType::kArcApp: { const ArcKioskAppData* arc_app = ArcKioskAppManager::Get()->GetAppByAccountId( *kiosk_app_id_.account_id); - if (arc_app) + if (arc_app) { return KioskAppManagerBase::App(*arc_app); + } break; } case KioskAppType::kWebApp: { const WebKioskAppData* web_app = WebKioskAppManager::Get()->GetAppByAccountId( *kiosk_app_id_.account_id); - if (web_app) + if (web_app) { return WebKioskAppManager::CreateAppByData(*web_app); + } break; } } @@ -390,8 +412,9 @@ kiosk_profile_loader_.reset(); // Can be null in tests. - if (host_) + if (host_) { host_->Finalize(base::OnceClosure()); + } // Make sure that any kiosk launch errors get written to disk before we kill // the browser. g_browser_process->local_state()->CommitPendingWrite(); @@ -409,16 +432,18 @@ } void KioskLaunchController::CloseSplashScreen() { - if (cleaned_up_) + if (cleaned_up_) { return; + } CleanUp(); } void KioskLaunchController::OnAppInstalling() { SYSLOG(INFO) << "Kiosk app started installing."; app_state_ = AppState::kInstallingApp; - if (!splash_screen_view_) + if (!splash_screen_view_) { return; + } splash_screen_view_->UpdateAppLaunchState( AppLaunchSplashScreenView::AppLaunchState::kInstallingApplication); @@ -428,11 +453,13 @@ void KioskLaunchController::OnAppPrepared() { SYSLOG(INFO) << "Kiosk app is ready to launch."; - if (!splash_screen_view_) + if (!splash_screen_view_) { return; + } - if (network_ui_state_ != NetworkUIState::kNotShowing) + if (network_ui_state_ != NetworkUIState::kNotShowing) { return; + } app_state_ = AppState::kInstallingExtensions; @@ -454,8 +481,9 @@ } void KioskLaunchController::InitializeNetwork() { - if (!splash_screen_view_) + if (!splash_screen_view_) { return; + } network_wait_timer_.Start(FROM_HERE, g_network_wait_time, this, &KioskLaunchController::OnNetworkWaitTimedOut); @@ -469,8 +497,9 @@ app_state_ = AppState::kInitNetwork; - if (splash_screen_view_->IsNetworkReady()) + if (splash_screen_view_->IsNetworkReady()) { OnNetworkStateChanged(true); + } } void KioskLaunchController::OnNetworkWaitTimedOut() { @@ -500,8 +529,9 @@ } void KioskLaunchController::OnLaunchFailed(KioskAppLaunchError::Error error) { - if (cleaned_up_) + if (cleaned_up_) { return; + } SetKioskLaunchStateCrashKey(KioskLaunchState::kLaunchFailed); @@ -553,14 +583,16 @@ SYSLOG(WARNING) << "Failed to obtain app data, trying to launch anyway.."; - if (!splash_screen_view_) + if (!splash_screen_view_) { return; + } splash_screen_view_->UpdateAppLaunchState( AppLaunchSplashScreenView::AppLaunchState:: kWaitingAppWindowInstallFailed); splash_screen_view_->Show(); - if (launch_on_install_ || g_skip_splash_wait_for_testing) + if (launch_on_install_ || g_skip_splash_wait_for_testing) { LaunchApp(); + } } void KioskLaunchController::FinishForcedExtensionsInstall( @@ -585,8 +617,9 @@ AppLaunchSplashScreenView::AppLaunchState::kWaitingAppWindow); splash_screen_view_->Show(); - if (launch_on_install_ || g_skip_splash_wait_for_testing) + if (launch_on_install_ || g_skip_splash_wait_for_testing) { LaunchApp(); + } } void KioskLaunchController::OnAppLaunched() { @@ -607,15 +640,17 @@ // If timer is running, do not remove splash screen for a few // more seconds to give the user ability to exit kiosk session. - if (splash_wait_timer_.IsRunning()) + if (splash_wait_timer_.IsRunning()) { return; + } CloseSplashScreen(); } void KioskLaunchController::OnAppDataUpdated() { // Invokes Show() to update the app title and icon. - if (splash_screen_view_) + if (splash_screen_view_) { splash_screen_view_->Show(); + } } void KioskLaunchController::OnProfileLoadFailed( @@ -646,8 +681,9 @@ } bool KioskLaunchController::CanConfigureNetwork() { - if (can_configure_network_callback) + if (can_configure_network_callback) { return can_configure_network_callback->Run(); + } if (IsDeviceEnterpriseManaged()) { bool should_prompt; @@ -665,23 +701,26 @@ } bool KioskLaunchController::NeedOwnerAuthToConfigureNetwork() { - if (need_owner_auth_to_configure_network_callback) + if (need_owner_auth_to_configure_network_callback) { return need_owner_auth_to_configure_network_callback->Run(); + } return !IsDeviceEnterpriseManaged(); } void KioskLaunchController::MaybeShowNetworkConfigureUI() { SYSLOG(INFO) << "Network configure UI was requested to be shown."; - if (!splash_screen_view_) + if (!splash_screen_view_) { return; + } if (CanConfigureNetwork()) { if (NeedOwnerAuthToConfigureNetwork()) { - if (!network_wait_timedout_) + if (!network_wait_timedout_) { OnConfigureNetwork(); - else + } else { splash_screen_view_->ToggleNetworkConfig(true); + } } else { ShowNetworkConfigureUI(); } @@ -775,8 +814,9 @@ } void KioskLaunchController::LaunchApp() { - if (g_block_app_launch_for_testing) + if (g_block_app_launch_for_testing) { return; + } DCHECK(app_state_ == AppState::kInstalled); // We need to change the session state so we are able to create browser
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h index a98721f..408e588 100644 --- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h +++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h
@@ -10,6 +10,7 @@ #include "ash/public/cpp/login_accelerators.h" #include "base/observer_list.h" #include "base/observer_list_types.h" +#include "base/scoped_observation.h" #include "base/time/time.h" #include "chrome/browser/ash/app_mode/kiosk_app_launcher.h" #include "chrome/browser/ash/app_mode/kiosk_app_types.h" @@ -80,7 +81,8 @@ // NetworkUI state. class KioskLaunchController : public KioskProfileLoader::Delegate, public AppLaunchSplashScreenView::Delegate, - public KioskAppLauncher::Delegate { + public KioskAppLauncher::NetworkDelegate, + public KioskAppLauncher::Observer { public: class KioskProfileLoadFailedObserver : public base::CheckedObserver { public: @@ -156,7 +158,7 @@ void OnCancelAppLaunch(); void OnNetworkConfigRequested(); - // AppLaunchSplashScreenView::Delegate: + // `AppLaunchSplashScreenView::Delegate` void OnConfigureNetwork() override; void OnDeletingSplashScreenView() override; void OnNetworkConfigFinished() override; @@ -164,10 +166,12 @@ KioskAppManagerBase::App GetAppData() override; bool IsNetworkRequired() override; - // KioskAppLauncher::Delegate: + // `KioskAppLauncher::NetworkDelegate` void InitializeNetwork() override; bool IsNetworkReady() const override; bool IsShowingNetworkConfigScreen() const override; + + // `KioskAppLauncher::Observer` void OnLaunchFailed(KioskAppLaunchError::Error error) override; void OnAppInstalling() override; void OnAppPrepared() override; @@ -175,7 +179,7 @@ void OnAppDataUpdated() override; void OnAppWindowCreated() override; - // KioskProfileLoader::Delegate: + // `KioskProfileLoader::Delegate` void OnProfileLoaded(Profile* profile) override; void OnProfileLoadFailed(KioskAppLaunchError::Error error) override; void OnOldEncryptionDetected( @@ -250,6 +254,8 @@ base::ObserverList<KioskProfileLoadFailedObserver> profile_load_failed_observers_; + base::ScopedObservation<KioskAppLauncher, KioskAppLauncher::Observer> + app_launcher_observation_{this}; base::WeakPtrFactory<KioskLaunchController> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller_unittest.cc b/chrome/browser/ash/login/app_mode/kiosk_launch_controller_unittest.cc index f94e62b1..746ef5f 100644 --- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller_unittest.cc +++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller_unittest.cc
@@ -101,7 +101,7 @@ disable_wait_timer_and_login_operations_for_testing_ = KioskLaunchController::DisableWaitTimerAndLoginOperationsForTesting(); - auto app_launcher = std::make_unique<MockWebKioskAppLauncher>(&profile_); + auto app_launcher = std::make_unique<MockWebKioskAppLauncher>(); app_launcher_ = app_launcher.get(); view_ = std::make_unique<FakeAppLaunchSplashScreenHandler>(); @@ -126,7 +126,7 @@ KioskLaunchController& controller() { return *controller_; } - KioskAppLauncher::Delegate& launch_controls() { return *controller_; } + KioskAppLauncher::NetworkDelegate& network_delegate() { return *controller_; } KioskProfileLoader::Delegate& profile_controls() { return *controller_; } @@ -173,8 +173,8 @@ void RunUntilAppPrepared() { controller().Start(kiosk_app_id(), /*auto_launch=*/false); profile_controls().OnProfileLoaded(profile()); - launch_controls().OnAppInstalling(); - launch_controls().OnAppPrepared(); + launcher().CallOnAppInstalling(); + launcher().CallOnAppPrepared(); } void VerifyLaunchStateCrashKey(KioskLaunchState state) { @@ -212,7 +212,7 @@ VerifyLaunchStateCrashKey(KioskLaunchState::kLauncherStarted); profile_controls().OnProfileLoaded(profile()); - launch_controls().OnAppInstalling(); + launcher().CallOnAppInstalling(); EXPECT_THAT( view(), @@ -223,9 +223,9 @@ TEST_F(KioskLaunchControllerTest, AppPreparedShouldUpdateInternalState) { controller().Start(kiosk_app_id(), /*auto_launch=*/false); profile_controls().OnProfileLoaded(profile()); - launch_controls().OnAppInstalling(); + launcher().CallOnAppInstalling(); - launch_controls().OnAppPrepared(); + launcher().CallOnAppPrepared(); EXPECT_THAT(controller(), HasState(AppState::kInstalled, NetworkUIState::kNotShowing)); @@ -249,7 +249,7 @@ SplashScreenTimerShouldNotLaunchUnpreparedApp) { controller().Start(kiosk_app_id(), /*auto_launch=*/false); profile_controls().OnProfileLoaded(profile()); - launch_controls().OnAppInstalling(); + launcher().CallOnAppInstalling(); EXPECT_CALL(launcher(), LaunchApp()).Times(0); FireSplashScreenTimer(); @@ -257,14 +257,14 @@ Mock::VerifyAndClearExpectations(&launcher()); EXPECT_CALL(launcher(), LaunchApp()).Times(1); - launch_controls().OnAppPrepared(); + launcher().CallOnAppPrepared(); } TEST_F(KioskLaunchControllerTest, AppLaunchedShouldStartSession) { RunUntilAppPrepared(); FireSplashScreenTimer(); - launch_controls().OnAppLaunched(); + launcher().CallOnAppLaunched(); EXPECT_THAT(controller(), HasState(AppState::kLaunched, NetworkUIState::kNotShowing)); @@ -280,7 +280,7 @@ controller().Start(kiosk_app_id(), /*auto_launch=*/false); profile_controls().OnProfileLoaded(profile()); - launch_controls().InitializeNetwork(); + network_delegate().InitializeNetwork(); EXPECT_THAT(controller(), HasState(AppState::kInitNetwork, NetworkUIState::kNotShowing)); EXPECT_THAT( @@ -297,7 +297,7 @@ controller().Start(kiosk_app_id(), /*auto_launch=*/false); profile_controls().OnProfileLoaded(profile()); - launch_controls().InitializeNetwork(); + network_delegate().InitializeNetwork(); EXPECT_THAT(controller(), HasState(AppState::kInitNetwork, NetworkUIState::kNotShowing)); EXPECT_THAT( @@ -343,7 +343,7 @@ EXPECT_CALL(launcher(), Initialize()).Times(1); profile_controls().OnProfileLoaded(profile()); - launch_controls().OnAppInstalling(); + launcher().CallOnAppInstalling(); // User presses the hotkey, current installation is canceled. EXPECT_CALL(launcher(), RestartLauncher()).Times(1); @@ -401,12 +401,12 @@ RunUntilAppPrepared(); FireSplashScreenTimer(); - launch_controls().InitializeNetwork(); + network_delegate().InitializeNetwork(); EXPECT_THAT(controller(), HasState(AppState::kInitNetwork, NetworkUIState::kNotShowing)); EXPECT_CALL(launcher(), LaunchApp()).Times(1); - launch_controls().OnAppPrepared(); + launcher().CallOnAppPrepared(); } class KioskLaunchControllerWithExtensionTest @@ -465,7 +465,7 @@ EXPECT_CALL(launcher(), LaunchApp()).Times(1); FireSplashScreenTimer(); - launch_controls().OnAppLaunched(); + launcher().CallOnAppLaunched(); EXPECT_THAT(controller(), HasState(AppState::kLaunched, NetworkUIState::kNotShowing)); EXPECT_THAT(
diff --git a/chrome/browser/ash/login/saml/saml_browsertest.cc b/chrome/browser/ash/login/saml/saml_browsertest.cc index e327408..2fabd1d 100644 --- a/chrome/browser/ash/login/saml/saml_browsertest.cc +++ b/chrome/browser/ash/login/saml/saml_browsertest.cc
@@ -1968,7 +1968,14 @@ // Verify that device attestation is not available when device is not enterprise // enrolled. -IN_PROC_BROWSER_TEST_F(SAMLDeviceAttestationTest, NotEnterpriseEnrolledError) { +// TODO(crbug.com/1407565): Re-enable when no longer flaky. +#if BUILDFLAG(IS_LINUX) +#define MAYBE_NotEnterpriseEnrolledError DISABLED_NotEnterpriseEnrolledError +#else +#define MAYBE_NotEnterpriseEnrolledError NotEnterpriseEnrolledError +#endif +IN_PROC_BROWSER_TEST_F(SAMLDeviceAttestationTest, + MAYBE_NotEnterpriseEnrolledError) { SetAllowedUrlsPolicy({fake_saml_idp()->GetIdpHost()}); StartSamlAndWaitForIdpPageLoad(
diff --git a/chrome/browser/ash/profiles/profile_helper.cc b/chrome/browser/ash/profiles/profile_helper.cc index 1db89f1..33148df 100644 --- a/chrome/browser/ash/profiles/profile_helper.cc +++ b/chrome/browser/ash/profiles/profile_helper.cc
@@ -35,20 +35,6 @@ #include "content/public/browser/browser_thread.h" namespace ash { -namespace { - -class UsernameHashMatcher { - public: - explicit UsernameHashMatcher(const std::string& h) : username_hash(h) {} - bool operator()(const user_manager::User* user) const { - return user->username_hash() == username_hash; - } - - private: - const std::string& username_hash; -}; - -} // anonymous namespace // static bool ProfileHelper::enable_profile_to_user_testing = false; @@ -338,15 +324,11 @@ return user_manager->GetActiveUser(); } - // Finds the matching user in logged-in user list since only a logged-in - // user would have a profile. - const std::string username_hash = - ProfileHelper::GetUserIdHashFromProfile(profile); - const user_manager::UserList& users = user_manager->GetLoggedInUsers(); - const user_manager::UserList::const_iterator pos = - base::ranges::find_if(users, UsernameHashMatcher(username_hash)); - if (pos != users.end()) - return *pos; + if (const auto* user = browser_context_helper_->GetUserByBrowserContext( + const_cast<Profile*>(profile)); + user) { + return user; + } // Many tests do not have their users registered with UserManager and // runs here. If |active_user_| matches |profile|, returns it.
diff --git a/chrome/browser/ash/profiles/profile_helper.h b/chrome/browser/ash/profiles/profile_helper.h index 65cd92d..12fccce8 100644 --- a/chrome/browser/ash/profiles/profile_helper.h +++ b/chrome/browser/ash/profiles/profile_helper.h
@@ -158,6 +158,8 @@ // Otherwise, returns NULL. virtual Profile* GetProfileByUser(const user_manager::User* user) = 0; + // DEPRECATED: Please use + // BrowserContextHelper::GetUserByBrowserContext() instead. // Returns NULL if User is not created. virtual const user_manager::User* GetUserByProfile( const Profile* profile) const = 0;
diff --git a/chrome/browser/banners/android/java/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java b/chrome/browser/banners/android/java/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java index e995296..0660d8a 100644 --- a/chrome/browser/banners/android/java/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java +++ b/chrome/browser/banners/android/java/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
@@ -478,6 +478,29 @@ }); } + private void dismissAmbientBadgeMessage(ChromeActivityTestRule<? extends ChromeActivity> rule) + throws Exception { + if (ChromeFeatureList.isEnabled(ChromeFeatureList.INSTALLABLE_AMBIENT_BADGE_MESSAGE)) { + WindowAndroid windowAndroid = rule.getActivity().getWindowAndroid(); + + MessageDispatcher dispatcher = TestThreadUtils.runOnUiThreadBlocking( + () -> MessageDispatcherProvider.from(windowAndroid)); + PropertyModel model = TestThreadUtils.runOnUiThreadBlocking( + () + -> MessagesTestHelper.getCurrentMessage( + MessagesTestHelper + .getEnqueuedMessages(dispatcher, + MessageIdentifier.INSTALLABLE_AMBIENT_BADGE) + .get(0))); + TestThreadUtils.runOnUiThreadBlocking( + () -> { dispatcher.dismissMessage(model, DismissReason.GESTURE); }); + CriteriaHelper.pollUiThread( + () + -> Criteria.checkThat(MessagesTestHelper.getMessageCount(windowAndroid), + Matchers.is(0))); + } + } + @Test @SmallTest @Feature({"AppBanners"}) @@ -1127,6 +1150,8 @@ Tab tab = mTabbedActivityTestRule.getActivity().getActivityTab(); new TabLoadObserver(tab).fullyLoadUrl(webBannerUrl); waitUntilAmbientBadgePromptAppears(mTabbedActivityTestRule); + // Dismiss the message so it will not overlap with the IPH. + dismissAmbientBadgeMessage(mTabbedActivityTestRule); waitForHelpBubble(withText(R.string.iph_pwa_install_available_text)).perform(click()); assertThat(mTracker.wasDismissed(), is(true)); @@ -1228,4 +1253,23 @@ Tab tab = mTabbedActivityTestRule.getActivity().getActivityTab(); tapAndWaitForModalBanner(tab); } + + @Test + @MediumTest + @Feature({"AppBanners"}) + public void testAppBannerDismissedAfterNavigation() throws Exception { + String url = WebappTestPage.getServiceWorkerUrlWithAction( + mTestServer, "call_stashed_prompt_on_click"); + resetEngagementForUrl(url, 10); + + mTabbedActivityTestRule.loadUrlInNewTab(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL); + navigateToUrlAndWaitForBannerManager(mTabbedActivityTestRule, url); + waitUntilAmbientBadgePromptAppears(mTabbedActivityTestRule); + + Tab tab = mTabbedActivityTestRule.getActivity().getActivityTab(); + tapAndWaitForModalBanner(tab); + + mTabbedActivityTestRule.loadUrl(ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL); + waitUntilNoDialogsShowing(tab); + } }
diff --git a/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc b/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc index e685234..baf53426 100644 --- a/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc +++ b/chrome/browser/browsing_data/counters/passwords_counter_browsertest.cc
@@ -34,7 +34,7 @@ void SetUpOnMainThread() override { finished_ = false; time_ = base::Time::Now(); - times_used_ = 0; + times_used_in_html_form_ = 0; store_ = PasswordStoreFactory::GetForProfile( browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) .get(); @@ -74,7 +74,7 @@ void RevertTimeInDays(int days) { time_ -= base::Days(days); } - void SetTimesUsed(int occurrences) { times_used_ = occurrences; } + void SetTimesUsed(int occurrences) { times_used_in_html_form_ = occurrences; } void WaitForCounting() { // The counting takes place on the background thread. Wait until it @@ -141,7 +141,7 @@ } result.blocked_by_user = blocked_by_user; result.date_created = time_; - result.times_used = times_used_; + result.times_used_in_html_form = times_used_in_html_form_; return result; } @@ -149,7 +149,7 @@ std::unique_ptr<base::RunLoop> run_loop_; base::Time time_; - int times_used_; + int times_used_in_html_form_; bool finished_; BrowsingDataCounter::ResultInt result_;
diff --git a/chrome/browser/cart/cart_discount_link_fetcher.cc b/chrome/browser/cart/cart_discount_link_fetcher.cc index f132e87..72f5760 100644 --- a/chrome/browser/cart/cart_discount_link_fetcher.cc +++ b/chrome/browser/cart/cart_discount_link_fetcher.cc
@@ -164,10 +164,10 @@ absl::optional<base::Value> value = base::JSONReader::Read(responses->response); - if (!value || !value->is_dict() || !value->FindKey("url")) { + if (!value || !value->is_dict() || !value->GetDict().FindString("url")) { NOTREACHED() << "empty response or wrong format"; std::move(callback).Run(GURL()); return; } - std::move(callback).Run(GURL(value->FindKey("url")->GetString())); + std::move(callback).Run(GURL(*value->GetDict().FindString("url"))); }
diff --git a/chrome/browser/content_settings/content_settings_browsertest.cc b/chrome/browser/content_settings/content_settings_browsertest.cc index 2ecd474e..ff7c129 100644 --- a/chrome/browser/content_settings/content_settings_browsertest.cc +++ b/chrome/browser/content_settings/content_settings_browsertest.cc
@@ -1533,7 +1533,7 @@ EXPECT_TRUE(navigation_manager.WaitForRequestStart()); navigation_manager.ResumeNavigation(); cookie_observer.Wait(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); auto* prerender_pscs = PageSpecificContentSettings::GetForFrame(prerender_frame);
diff --git a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.cc b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.cc index 733198d..27d9e57 100644 --- a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.cc +++ b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.cc
@@ -6,10 +6,12 @@ #include <memory> +#include "base/metrics/histogram_functions.h" #include "chrome/browser/fast_checkout/fast_checkout_features.h" #include "chrome/browser/fast_checkout/fast_checkout_funnels.pb.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" +#include "services/network/public/mojom/url_response_head.mojom.h" #include "url/origin.h" namespace { @@ -18,6 +20,15 @@ "https://www.gstatic.com/autofill/fast_checkout/funnels.binarypb"; constexpr base::TimeDelta kCacheTimeout(base::Minutes(10)); constexpr base::TimeDelta kFetchTimeout(base::Seconds(3)); +constexpr char kUmaKeyCacheStateIsTriggerFormSupported[] = + "Autofill.FastCheckout.CapabilitiesFetcher." + "CacheStateForIsTriggerFormSupported"; +constexpr char kUmaKeyParsingResult[] = + "Autofill.FastCheckout.CapabilitiesFetcher.ParsingResult"; +constexpr char kUmaKeyResponseAndNetErrorCode[] = + "Autofill.FastCheckout.CapabilitiesFetcher.HttpResponseAndNetErrorCode"; +constexpr char kUmaKeyResponseTime[] = + "Autofill.FastCheckout.CapabilitiesFetcher.ResponseTime"; } // namespace FastCheckoutCapabilitiesFetcherImpl::FastCheckoutFunnel::FastCheckoutFunnel() = @@ -88,7 +99,7 @@ url_loader_->DownloadToString( url_loader_factory_.get(), base::BindOnce(&FastCheckoutCapabilitiesFetcherImpl::OnFetchComplete, - base::Unretained(this)), + base::Unretained(this), base::TimeTicks::Now()), kMaxDownloadSizeInBytes); } @@ -98,31 +109,45 @@ } void FastCheckoutCapabilitiesFetcherImpl::OnFetchComplete( + base::TimeTicks start_time, std::unique_ptr<std::string> response_body) { - // TODO(crbug.com/1334642): Log duration. + base::UmaHistogramTimes(kUmaKeyResponseTime, + base::TimeTicks::Now() - start_time); int net_error = url_loader_->NetError(); + bool report_http_response_code = + (net_error == net::OK || + net_error == net::ERR_HTTP_RESPONSE_CODE_FAILURE) && + url_loader_->ResponseInfo() && url_loader_->ResponseInfo()->headers; + base::UmaHistogramSparse( + kUmaKeyResponseAndNetErrorCode, + report_http_response_code + ? url_loader_->ResponseInfo()->headers->response_code() + : net_error); // Reset `url_loader_` so that another request could be made. url_loader_.reset(); last_fetch_timestamp_ = base::TimeTicks::Now(); if (net_error != net::OK) { - // TODO(crbug.com/1334642): Log `url_loader_->NetError()`. return; } if (!response_body) { - // TODO(crbug.com/1334642): Log no response received. + base::UmaHistogramEnumeration(kUmaKeyParsingResult, + ParsingResult::kNullResponse); return; } ::fast_checkout::FastCheckoutFunnels funnels; if (!funnels.ParseFromString(*response_body)) { - // TODO(crbug.com/1334642): Log parsing error. + base::UmaHistogramEnumeration(kUmaKeyParsingResult, + ParsingResult::kParsingError); return; } + base::UmaHistogramEnumeration(kUmaKeyParsingResult, ParsingResult::kSuccess); + for (const ::fast_checkout::FastCheckoutFunnels_FastCheckoutFunnel& funnel_proto : funnels.funnels()) { FastCheckoutFunnel funnel; @@ -150,11 +175,19 @@ } if (!cache_.contains(origin)) { - // TODO(crbug.com/1334642): Log `origin` not in `cache_`. + base::UmaHistogramEnumeration( + kUmaKeyCacheStateIsTriggerFormSupported, + url_loader_ ? CacheStateForIsTriggerFormSupported::kFetchOngoing + : CacheStateForIsTriggerFormSupported::kEntryNotAvailable); return false; } bool is_supported = cache_.at(origin).trigger.contains(form_signature); - // TODO(crbug.com/1334642): Log `is_supported`. + base::UmaHistogramEnumeration( + kUmaKeyCacheStateIsTriggerFormSupported, + is_supported + ? CacheStateForIsTriggerFormSupported::kEntryAvailableAndFormSupported + : CacheStateForIsTriggerFormSupported:: + kEntryAvailableAndFormNotSupported); return is_supported; }
diff --git a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.h b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.h index c966ee25..69f8f7e 100644 --- a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.h +++ b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.h
@@ -15,6 +15,57 @@ class FastCheckoutCapabilitiesFetcherImpl : public FastCheckoutCapabilitiesFetcher { public: + // Possible different cache states that `FastCheckoutCapabilitiesFetcherImpl` + // can encounter when `IsTriggerFormSupported` is called. + // + // Needs to be kept in sync with + // `FastCheckoutCacheStateForIsTriggerFormSupported` in + // tools/metrics/histograms/enums.xml. + // + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + enum class CacheStateForIsTriggerFormSupported { + // Availability is currently being fetched but the request has not completed + // yet. + kFetchOngoing = 0, + + // There is a valid cache entry for this origin and the form signature that + // is being checked is not supported. + kEntryAvailableAndFormNotSupported = 1, + + // There is a valid cache entry for this origin and the form signature that + // is being checked is supported. + kEntryAvailableAndFormSupported = 2, + + // No availability was fetched for this origin within the lifetime of the + // cache. + kEntryNotAvailable = 3, + + kMaxValue = kEntryNotAvailable + }; + + // Possible states of parsing the response body when a fetch completes in + // `FastCheckoutCapabilitiesFetcherImpl`. + // + // Needs to be kept in sync with `FastCheckoutCapabilitiesParsingResult` in + // tools/metrics/histograms/enums.xml. + // + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + enum class ParsingResult { + // The response body was null. + kNullResponse = 0, + + // The response body could not be parsed as `FastCheckoutFunnels` proto + // message. + kParsingError = 1, + + // Parsing was successful. + kSuccess = 2, + + kMaxValue = kSuccess + }; + explicit FastCheckoutCapabilitiesFetcherImpl( scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory); ~FastCheckoutCapabilitiesFetcherImpl() override; @@ -38,7 +89,8 @@ base::flat_set<autofill::FormSignature> fill; }; // Called when the request's response arrives. - void OnFetchComplete(std::unique_ptr<std::string> response_body); + void OnFetchComplete(base::TimeTicks start_time, + std::unique_ptr<std::string> response_body); // Returns if the cache is stale, i.e. if `kCacheTimeout` minutes since the // last successful request have passed or if no request was done yet. bool IsCacheStale() const;
diff --git a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl_unittest.cc b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl_unittest.cc index 2ebeb400..f558427b 100644 --- a/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl_unittest.cc +++ b/chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl_unittest.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.h" +#include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "chrome/browser/fast_checkout/fast_checkout_funnels.pb.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" @@ -13,7 +14,7 @@ namespace { constexpr char kFastCheckoutFunnelsUrl[] = "https://www.gstatic.com/autofill/fast_checkout/funnels.binarypb"; - +constexpr char kInvalidResponseBody[] = "invalid response body"; constexpr char kDomain[] = "https://www.example.com"; constexpr char kUnsupportedDomain[] = "https://www.example2.com"; constexpr char kInvalidDomain[] = "invaliddomain"; @@ -24,6 +25,15 @@ autofill::FormSignature(1234567890UL); constexpr autofill::FormSignature kFillFormSignature = autofill::FormSignature(9876543210UL); +constexpr char kUmaKeyCacheStateIsTriggerFormSupported[] = + "Autofill.FastCheckout.CapabilitiesFetcher." + "CacheStateForIsTriggerFormSupported"; +constexpr char kUmaKeyParsingResult[] = + "Autofill.FastCheckout.CapabilitiesFetcher.ParsingResult"; +constexpr char kUmaKeyResponseAndNetErrorCode[] = + "Autofill.FastCheckout.CapabilitiesFetcher.HttpResponseAndNetErrorCode"; +constexpr char kUmaKeyResponseTime[] = + "Autofill.FastCheckout.CapabilitiesFetcher.ResponseTime"; std::string CreateBinaryProtoResponse() { ::fast_checkout::FastCheckoutFunnels funnels; @@ -74,6 +84,7 @@ task_environment()->FastForwardBy(delta); } + base::HistogramTester& histogram_tester() { return histogram_tester_; } const std::string& GetBinaryProtoResponse() { return binary_proto_response_; } const url::Origin& GetOrigin() { return origin_; } const url::Origin& GetUnsupportedOrigin() { return unsupported_origin_; } @@ -96,6 +107,7 @@ std::unique_ptr<network::TestURLLoaderFactory> test_url_loader_factory_; scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_; std::unique_ptr<FastCheckoutCapabilitiesFetcherImpl> fetcher_; + base::HistogramTester histogram_tester_; std::string binary_proto_response_; url::Origin origin_; url::Origin unsupported_origin_; @@ -167,6 +179,97 @@ TEST_F(FastCheckoutCapabilitiesFetcherImplTest, IsTriggerFormSupported_ReturnsFalseIfRequestFailed) { - EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse(net::HTTP_BAD_REQUEST)); + net::HttpStatusCode http_status = net::HTTP_BAD_REQUEST; + + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse(http_status)); EXPECT_FALSE(IsTriggerFormSupportedOnSupportedDomain()); + + histogram_tester().ExpectUniqueSample(kUmaKeyResponseAndNetErrorCode, + http_status, 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + OnFetchComplete_RecordsResponseTime) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + + histogram_tester().ExpectTotalCount(kUmaKeyResponseTime, 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + OnFetchComplete_SuccessfulRequest_RecordsHttpOkCode) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + + histogram_tester().ExpectUniqueSample(kUmaKeyResponseAndNetErrorCode, + net::HTTP_OK, 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + OnFetchComplete_ValidResponseBody_RecordsSucessfulParsing) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + + histogram_tester().ExpectUniqueSample( + kUmaKeyParsingResult, + FastCheckoutCapabilitiesFetcherImpl::ParsingResult::kSuccess, 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + OnFetchComplete_InvalidResponseBody_RecordsParsingError) { + fetcher()->FetchCapabilities(); + EXPECT_TRUE(url_loader_factory()->SimulateResponseForPendingRequest( + kFastCheckoutFunnelsUrl, kInvalidResponseBody)); + + histogram_tester().ExpectUniqueSample( + kUmaKeyParsingResult, + FastCheckoutCapabilitiesFetcherImpl::ParsingResult::kParsingError, 1u); +} + +TEST_F( + FastCheckoutCapabilitiesFetcherImplTest, + IsTriggerFormSupported_TriggerFormSignature_RecordsTriggerFormSupported) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + EXPECT_TRUE(IsTriggerFormSupportedOnSupportedDomain()); + + histogram_tester().ExpectUniqueSample( + kUmaKeyCacheStateIsTriggerFormSupported, + FastCheckoutCapabilitiesFetcherImpl::CacheStateForIsTriggerFormSupported:: + kEntryAvailableAndFormSupported, + 1u); +} + +TEST_F( + FastCheckoutCapabilitiesFetcherImplTest, + IsTriggerFormSupported_FillFormSignature_RecordsTriggerFormNotSupported) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + EXPECT_FALSE( + fetcher()->IsTriggerFormSupported(GetOrigin(), kFillFormSignature)); + + histogram_tester().ExpectUniqueSample( + kUmaKeyCacheStateIsTriggerFormSupported, + FastCheckoutCapabilitiesFetcherImpl::CacheStateForIsTriggerFormSupported:: + kEntryAvailableAndFormNotSupported, + 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + IsTriggerFormSupported_FetchOngoing_RecordsFetchOngoing) { + fetcher()->FetchCapabilities(); + EXPECT_FALSE(IsTriggerFormSupportedOnSupportedDomain()); + + histogram_tester().ExpectUniqueSample( + kUmaKeyCacheStateIsTriggerFormSupported, + FastCheckoutCapabilitiesFetcherImpl::CacheStateForIsTriggerFormSupported:: + kFetchOngoing, + 1u); +} + +TEST_F(FastCheckoutCapabilitiesFetcherImplTest, + IsTriggerFormSupported_InvalidDomain_RecordsNotAvailable) { + EXPECT_TRUE(FetchCapabilitiesAndSimulateResponse()); + fetcher()->IsTriggerFormSupported(GetInvalidOrigin(), kTriggerFormSignature); + + histogram_tester().ExpectUniqueSample( + kUmaKeyCacheStateIsTriggerFormSupported, + FastCheckoutCapabilitiesFetcherImpl::CacheStateForIsTriggerFormSupported:: + kEntryNotAvailable, + 1u); }
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 738da6f..2177277 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -580,7 +580,7 @@ { "name": "autofill-keyboard-accessory-view", "owners": [ "fhorschig@chromium.org" ], - "expiry_milestone": 111 + "expiry_milestone": 114 }, { "name": "autofill-more-prominent-popup", @@ -1774,7 +1774,7 @@ { "name": "enable-autofill-manual-fallback", "owners": [ "fhorschig@chromium.org" ], - "expiry_milestone": 111 + "expiry_milestone": 114 }, { "name": "enable-autofill-refresh-style", @@ -3763,6 +3763,11 @@ "expiry_milestone": 116 }, { + "name": "files-conflict-dialog", + "owners": [ "noel", "//ui/file_manager/OWNERS" ], + "expiry_milestone": 117 + }, + { "name": "files-inline-sync-status", "owners": [ "simmonsjosh@google.com", "benhartney@google.com", "msalomao" ], "expiry_milestone": 111 @@ -4766,6 +4771,11 @@ "expiry_milestone": 84 }, { + "name": "multiline-fade-truncating-label", + "owners": [ "christianxu", "stkhapugin", "bling-flags@google.com"], + "expiry_milestone": 120 + }, + { "name": "mute-notification-snooze-action", "owners": [ "knollr@chromium.org", "peter@chromium.org" ], "expiry_milestone": 96 @@ -5888,7 +5898,7 @@ { "name": "recover-from-never-save-android", "owners": [ "ioanap", "fhorschig" ], - "expiry_milestone": 111 + "expiry_milestone": 114 }, { "name": "reduce-accept-language", @@ -6072,11 +6082,6 @@ "expiry_milestone": 109 }, { - "name": "sanitizer-api-v0", - "owners": [ "//third_party/blink/renderer/modules/sanitizer_api/OWNERS" ], - "expiry_milestone": 109 - }, - { "name": "scheduler-configuration", "owners": [ "kerrnel", "mnissler" ], // This flag never expires because some users need to override CPU security
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index f92f5c9..d321ac6 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -3334,12 +3334,6 @@ const char kSanitizerApiDescription[] = "Enable the Sanitizer API. See: https://github.com/WICG/sanitizer-api"; -const char kSanitizerApiv0Name[] = "Sanitizer API, Initial version"; -const char kSanitizerApiv0Description[] = - "Enable the initial version of the Sanitizer API. This includes the " - "Element.setHTML method, but not any sanitization methods on the " - "Sanitizer instances. See also the #sanitizer-api flag."; - const char kUsePassthroughCommandDecoderName[] = "Use passthrough command decoder"; const char kUsePassthroughCommandDecoderDescription[] = @@ -5385,6 +5379,11 @@ "Enable experimental UI features for Files app. Experimental features are " "expected to be non functional to end users."; +const char kFilesConflictDialogName[] = "Files app conflict dialog"; +const char kFilesConflictDialogDescription[] = + "When enabled, the conflict dialog will be shown during file transfers " + "if a file entry in the transfer exists at the destination."; + const char kFilesExtractArchiveName[] = "Extract archive in Files app"; const char kFilesExtractArchiveDescription[] = "Enable the simplified archive extraction feature in Files app";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index e541628a..2a0a014 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1907,9 +1907,6 @@ extern const char kSanitizerApiName[]; extern const char kSanitizerApiDescription[]; -extern const char kSanitizerApiv0Name[]; -extern const char kSanitizerApiv0Description[]; - extern const char kUsePassthroughCommandDecoderName[]; extern const char kUsePassthroughCommandDecoderDescription[]; @@ -3087,6 +3084,9 @@ extern const char kFilesAppExperimentalName[]; extern const char kFilesAppExperimentalDescription[]; +extern const char kFilesConflictDialogName[]; +extern const char kFilesConflictDialogDescription[]; + extern const char kFilesExtractArchiveName[]; extern const char kFilesExtractArchiveDescription[];
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc index 516be25..4496601fae 100644 --- a/chrome/browser/media/router/media_router_feature.cc +++ b/chrome/browser/media/router/media_router_feature.cc
@@ -53,6 +53,9 @@ BASE_FEATURE(kDialMediaRouteProvider, "DialMediaRouteProvider", base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kStartCastSessionWithoutTerminating, + "StartCastSessionWithoutTerminating", + base::FEATURE_ENABLED_BY_DEFAULT); #if BUILDFLAG(IS_CHROMEOS) BASE_FEATURE(kGlobalMediaControlsCastStartStop,
diff --git a/chrome/browser/media/router/media_router_feature.h b/chrome/browser/media/router/media_router_feature.h index c1256da27..7abbf02 100644 --- a/chrome/browser/media/router/media_router_feature.h +++ b/chrome/browser/media/router/media_router_feature.h
@@ -50,6 +50,10 @@ // Presentation API. If disabled, only the allowlisted sites can do so. BASE_DECLARE_FEATURE(kAllowAllSitesToInitiateMirroring); +// If enabled, the Cast Media Route Provider starts a session without +// terminating any existing session on the same sink. +BASE_DECLARE_FEATURE(kStartCastSessionWithoutTerminating); + // Registers |kMediaRouterCastAllowAllIPs| with local state pref |registry|. void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc index c0495d44..1f28d1f5 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
@@ -10,6 +10,7 @@ #include "base/containers/contains.h" #include "base/containers/cxx20_erase.h" +#include "base/feature_list.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/json/json_reader.h" @@ -18,6 +19,7 @@ #include "base/strings/strcat.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/media/router/data_decoder_util.h" +#include "chrome/browser/media/router/media_router_feature.h" #include "chrome/browser/media/router/providers/cast/app_activity.h" #include "chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics.h" #include "chrome/browser/media/router/providers/cast/cast_session_client.h" @@ -160,26 +162,29 @@ frame_tree_node_id, std::move(opt_result), std::move(callback)); - // If there is currently a session on the sink, it must be terminated before - // the new session can be launched. - auto activity_it = - base::ranges::find(activities_, sink_id, [](const auto& activity) { - return activity.second->route().media_sink_id(); - }); - + auto activity_it = FindActivityBySink(sink); if (activity_it == activities_.end()) { DoLaunchSession(std::move(params)); } else { - const MediaRoute::Id& existing_route_id = - activity_it->second->route().media_route_id(); - // We cannot launch the new session in the TerminateSession() callback - // because if we create a session there, then it may get deleted when - // OnSessionRemoved() is called to notify that the previous session - // was removed on the receiver. - TerminateSession(existing_route_id, base::DoNothing()); - // The new session will be launched when OnSessionRemoved() is called for - // the old session. - SetPendingLaunch(std::move(params)); + if (base::FeatureList::IsEnabled(kStartCastSessionWithoutTerminating)) { + // Here we assume that when OnSessionRemoved() is next called for + // `sink_id`, it will be for removing the pre-existing activity. + pending_activity_removal_ = { + activity_it->second->sink().id(), + activity_it->second->route().media_route_id()}; + DoLaunchSession(std::move(params)); + } else { + const MediaRoute::Id& existing_route_id = + activity_it->second->route().media_route_id(); + // We cannot launch the new session in the TerminateSession() callback + // because if we create a session there, then it may get deleted when + // OnSessionRemoved() is called to notify that the previous session + // was removed on the receiver. + TerminateSession(existing_route_id, base::DoNothing()); + // The new session will be launched when OnSessionRemoved() is called for + // the old session. + SetPendingLaunch(std::move(params)); + } } } @@ -607,7 +612,15 @@ } void CastActivityManager::OnSessionRemoved(const MediaSinkInternal& sink) { - auto activity_it = FindActivityBySink(sink); + auto activity_it = activities_.end(); + if (base::FeatureList::IsEnabled(kStartCastSessionWithoutTerminating) && + pending_activity_removal_ && + pending_activity_removal_->first == sink.id()) { + activity_it = activities_.find(pending_activity_removal_->second); + pending_activity_removal_.reset(); + } else { + activity_it = FindActivityBySink(sink); + } if (activity_it != activities_.end()) { logger_->LogInfo( mojom::LogCategory::kRoute, kLoggerComponent, @@ -617,7 +630,8 @@ RemoveActivity(activity_it, PresentationConnectionState::TERMINATED, PresentationConnectionCloseReason::CLOSED); } - if (pending_launch_ && pending_launch_->sink.id() == sink.id()) { + if (!base::FeatureList::IsEnabled(kStartCastSessionWithoutTerminating) && + pending_launch_ && pending_launch_->sink.id() == sink.id()) { DoLaunchSession(std::move(*pending_launch_)); pending_launch_.reset(); }
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h index 81d1d25..71b8cb6 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
@@ -136,13 +136,15 @@ private: friend class CastActivityManagerTest; - FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, + FRIEND_TEST_ALL_PREFIXES(CastActivityManagerWithTerminatingTest, LaunchSessionTerminatesExistingSessionOnSink); FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, LaunchSessionTerminatesExistingSessionFromTab); FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, LaunchSessionTerminatesPendingLaunchFromTab); FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, SendMediaRequestToReceiver); + FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, + StartSessionAndRemoveExistingSessionOnSink); using ActivityMap = base::flat_map<MediaRoute::Id, std::unique_ptr<CastActivity>>; @@ -314,9 +316,15 @@ // Information for a session that will be launched once |this| is notified // that the existing session on the receiver has been removed. We only store // one pending launch at a time so that we don't accumulate orphaned pending - // launches over time. + // launches over time. Used only when the feature + // `kStartCastSessionWithoutTerminating` is disabled. absl::optional<DoLaunchSessionParams> pending_launch_; + // Used only when the feature `kStartCastSessionWithoutTerminating` is + // enabled. + absl::optional<std::pair<MediaSink::Id, MediaRoute::Id>> + pending_activity_removal_; + // The following raw pointer fields are assumed to outlive |this|. const raw_ptr<MediaSinkServiceBase> media_sink_service_; const raw_ptr<CastSessionTracker> session_tracker_;
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc index 81f9401..8176884 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc
@@ -18,8 +18,10 @@ #include "base/strings/strcat.h" #include "base/test/bind.h" #include "base/test/mock_callback.h" +#include "base/test/scoped_feature_list.h" #include "base/test/values_test_util.h" #include "base/values.h" +#include "chrome/browser/media/router/media_router_feature.h" #include "chrome/browser/media/router/providers/cast/cast_session_client.h" #include "chrome/browser/media/router/providers/cast/mirroring_activity.h" #include "chrome/browser/media/router/providers/cast/mock_app_activity.h" @@ -440,8 +442,8 @@ }); } - // Expect a call to OnRoutesUpdated() with a single route, which will - // optionally be saved in the variable pointed to by |route_ptr|. + // Expect a call to OnRoutesUpdated() with a single route, which will be saved + // in |updated_route_|. void ExpectSingleRouteUpdate() { updated_route_ = absl::nullopt; EXPECT_CALL(mock_router_, OnRoutesUpdated(mojom::MediaRouteProviderId::CAST, @@ -711,49 +713,6 @@ RunUntilIdle(); } -TEST_F(CastActivityManagerTest, LaunchSessionTerminatesExistingSessionOnSink) { - LaunchAppSession(); - ExpectAppActivityStoppedTimes(1); - - { - testing::InSequence dummy; - - // Existing route is terminated before new route is created. - // MediaRouter is notified of terminated route. - ExpectEmptyRouteUpdate(); - - // After existing route is terminated, new route is created. - // MediaRouter is notified of new route. - ExpectSingleRouteUpdate(); - } - - // Launch a new session on the same sink. - auto source = CastMediaSource::FromMediaSourceId(MakeSourceId(kAppId2)); - // Use LaunchSessionParsed() instead of LaunchSession() here because - // LaunchSessionParsed() is called asynchronously and will fail the test. - manager_->LaunchSessionParsed( - // TODO(crbug.com/1291744): Verify that presentation ID is used correctly. - *source, sink_, kPresentationId2, origin_, - kFrameTreeNodeId2, /*incognito*/ - false, - base::BindOnce(&CastActivityManagerTest::ExpectLaunchSessionSuccess, - base::Unretained(this)), - data_decoder::DataDecoder::ValueOrError()); - - // LaunchSession() should not be called until we notify |mananger_| that the - // previous session was removed. - EXPECT_CALL(message_handler_, - LaunchSession(kChannelId, "BBBBBBBB", kDefaultLaunchTimeout, - testing::ElementsAre("WEB"), - /* absl::optional<base::Value> appParams */ - testing::Eq(absl::nullopt), _)) - .WillOnce(WithArg<5>([this](auto callback) { - launch_session_callback_ = std::move(callback); - })); - - manager_->OnSessionRemoved(sink_); -} - TEST_F(CastActivityManagerTest, LaunchSessionTerminatesExistingSessionFromTab) { LaunchAppSession(); ExpectAppActivityStoppedTimes(1); @@ -908,30 +867,6 @@ manager_->OnMediaStatusUpdated(sink_, ParseJsonDict(status), request_id); } -TEST_F(CastActivityManagerTest, SecondPendingRequestCancelsTheFirst) { - auto source = - CastMediaSource::FromMediaSourceId(MakeSourceId(kAppId1, "", kClientId)); - MockLaunchSessionCallback callback; - // Launch a session so that the next launch request gets queued. - LaunchAppSession(); - - // Ignore StopSession() so that pending requests don't get executed. - EXPECT_CALL(message_handler_, StopSession).WillRepeatedly([]() {}); - // The first request gets queued, then cancelled when the second request - // replaces it. - EXPECT_CALL(callback, Run) - .WillOnce(WithArg<3>([](mojom::RouteRequestResultCode code) { - EXPECT_EQ(mojom::RouteRequestResultCode::CANCELLED, code); - })); - for (int i = 0; i < 2; i++) { - manager_->LaunchSession(*source, sink_, kPresentationId, origin_, - kFrameTreeNodeId, - /*incognito*/ false, - base::BindOnce(&MockLaunchSessionCallback::Run, - base::Unretained(&callback))); - } -} - TEST_F(CastActivityManagerTest, OnSourceChanged) { LaunchNonSdkMirroringSession(); @@ -967,4 +902,110 @@ route_id2); } +TEST_F(CastActivityManagerTest, StartSessionAndRemoveExistingSessionOnSink) { + LaunchAppSession(); + + // Launch another route on the same sink and store it in `route_`. + EXPECT_CALL(message_handler_, LaunchSession(kChannelId, kAppId2, _, _, _, _)) + .WillOnce(WithArg<5>([this](auto callback) { + launch_session_callback_ = std::move(callback); + })); + auto source = CastMediaSource::FromMediaSourceId(MakeSourceId(kAppId2)); + manager_->LaunchSessionParsed( + *source, sink_, kPresentationId2, origin_, kFrameTreeNodeId2, + /*incognito*/ false, + base::BindOnce(&CastActivityManagerTest::ExpectLaunchSessionSuccess, + base::Unretained(this)), + data_decoder::DataDecoder::ValueOrError()); + RunUntilIdle(); + ReceiveLaunchSuccessResponseFromReceiver(kAppId2); + + // Removing a session from the sink removes the first route, leaving us with + // `route_`. + ExpectSingleRouteUpdate(); + manager_->OnSessionRemoved(sink_); + RunUntilIdle(); + EXPECT_EQ(updated_route_->media_route_id(), route_->media_route_id()); +} + +class CastActivityManagerWithTerminatingTest : public CastActivityManagerTest { + public: + void SetUp() override { + feature_list_.InitAndDisableFeature(kStartCastSessionWithoutTerminating); + CastActivityManagerTest::SetUp(); + } + + protected: + base::test::ScopedFeatureList feature_list_; +}; + +TEST_F(CastActivityManagerWithTerminatingTest, + LaunchSessionTerminatesExistingSessionOnSink) { + LaunchAppSession(); + ExpectAppActivityStoppedTimes(1); + + { + testing::InSequence dummy; + + // Existing route is terminated before new route is created. + // MediaRouter is notified of terminated route. + ExpectEmptyRouteUpdate(); + + // After existing route is terminated, new route is created. + // MediaRouter is notified of new route. + ExpectSingleRouteUpdate(); + } + + // Launch a new session on the same sink. + auto source = CastMediaSource::FromMediaSourceId(MakeSourceId(kAppId2)); + // Use LaunchSessionParsed() instead of LaunchSession() here because + // LaunchSessionParsed() is called asynchronously and will fail the test. + manager_->LaunchSessionParsed( + // TODO(crbug.com/1291744): Verify that presentation ID is used correctly. + *source, sink_, kPresentationId2, origin_, + kFrameTreeNodeId2, /*incognito*/ + false, + base::BindOnce(&CastActivityManagerTest::ExpectLaunchSessionSuccess, + base::Unretained(this)), + data_decoder::DataDecoder::ValueOrError()); + + // LaunchSession() should not be called until we notify |mananger_| that the + // previous session was removed. + EXPECT_CALL(message_handler_, + LaunchSession(kChannelId, "BBBBBBBB", kDefaultLaunchTimeout, + testing::ElementsAre("WEB"), + /* absl::optional<base::Value> appParams */ + testing::Eq(absl::nullopt), _)) + .WillOnce(WithArg<5>([this](auto callback) { + launch_session_callback_ = std::move(callback); + })); + + manager_->OnSessionRemoved(sink_); +} + +TEST_F(CastActivityManagerWithTerminatingTest, + SecondPendingRequestCancelsTheFirst) { + auto source = + CastMediaSource::FromMediaSourceId(MakeSourceId(kAppId1, "", kClientId)); + MockLaunchSessionCallback callback; + // Launch a session so that the next launch request gets queued. + LaunchAppSession(); + + // Ignore StopSession() so that pending requests don't get executed. + EXPECT_CALL(message_handler_, StopSession).WillRepeatedly([]() {}); + // The first request gets queued, then cancelled when the second request + // replaces it. + EXPECT_CALL(callback, Run) + .WillOnce(WithArg<3>([](mojom::RouteRequestResultCode code) { + EXPECT_EQ(mojom::RouteRequestResultCode::CANCELLED, code); + })); + for (int i = 0; i < 2; i++) { + manager_->LaunchSession(*source, sink_, kPresentationId, origin_, + kFrameTreeNodeId, + /*incognito*/ false, + base::BindOnce(&MockLaunchSessionCallback::Run, + base::Unretained(&callback))); + } +} + } // namespace media_router
diff --git a/chrome/browser/metrics/tab_stats/OWNERS b/chrome/browser/metrics/tab_stats/OWNERS index 98b3c81d..0a7f67c 100644 --- a/chrome/browser/metrics/tab_stats/OWNERS +++ b/chrome/browser/metrics/tab_stats/OWNERS
@@ -1,2 +1,3 @@ fdoray@chromium.org olivierli@chromium.org +pmonette@chromium.org \ No newline at end of file
diff --git a/chrome/browser/password_manager/credential_manager_browsertest.cc b/chrome/browser/password_manager/credential_manager_browsertest.cc index 23454ef..504d8ce 100644 --- a/chrome/browser/password_manager/credential_manager_browsertest.cc +++ b/chrome/browser/password_manager/credential_manager_browsertest.cc
@@ -967,7 +967,7 @@ EXPECT_FALSE(prompt_observer.IsSavePromptShownAutomatically()); EXPECT_FALSE(prompt_observer.IsUpdatePromptShownAutomatically()); signin_form.skip_zero_click = false; - signin_form.times_used = 1; + signin_form.times_used_in_html_form = 1; signin_form.password_value = u"API"; password_manager::TestPasswordStore::PasswordMap stored = password_store->stored_passwords();
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index d1e9f21..ded48982 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -4755,7 +4755,7 @@ { content::TestNavigationManager manager(guest_view->web_contents(), stream_url); - manager.WaitForFirstYieldAfterDidStartNavigation(); + ASSERT_TRUE(manager.WaitForFirstYieldAfterDidStartNavigation()); } // Now, close Incognito and destroy its profile. This is subtle: simply
diff --git a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/RadioButtonGroupPreloadPagesSettings.java b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/RadioButtonGroupPreloadPagesSettings.java index c26f287..453bafc 100644 --- a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/RadioButtonGroupPreloadPagesSettings.java +++ b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/RadioButtonGroupPreloadPagesSettings.java
@@ -122,7 +122,10 @@ */ public void setManagedPreferenceDelegate(ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + // The value of `allowManagedIcon` doesn't matter, because the corresponding layout doesn't + // define an icon view. + ManagedPreferencesUtils.initPreference( + mManagedPrefDelegate, this, /*allowManagedIcon=*/true, /*hasCustomLayout=*/true); } /**
diff --git a/chrome/browser/preloading/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc b/chrome/browser/preloading/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc index 53919aab..9c79af59b8 100644 --- a/chrome/browser/preloading/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc +++ b/chrome/browser/preloading/prefetch/no_state_prefetch/prerender_nostate_prefetch_browsertest.cc
@@ -1773,12 +1773,11 @@ protected: void SetUp() override { - // kOmniboxTriggerForPrerender2 or kOmniboxTriggerForNoStatePrefetch can be - // enabled in the experiment. Explicitly disable - // kOmniboxTriggerForPrerender2 as fieldtrial tests run with a config to - // enable it by default. - feature_list_.InitWithFeatures({}, - {features::kOmniboxTriggerForPrerender2}); + // kOmniboxTriggerForNoStatePrefetch or kOmniboxTriggerForPrerender2 can be + // enabled in the experiment. Explicitly enable and disable these flags. + feature_list_.InitWithFeatures( + {features::kOmniboxTriggerForNoStatePrefetch}, + {features::kOmniboxTriggerForPrerender2}); NoStatePrefetchBrowserTest::SetUp(); }
diff --git a/chrome/browser/preloading/prerender/omnibox_prerender_browsertest.cc b/chrome/browser/preloading/prerender/omnibox_prerender_browsertest.cc index 5a6e27b4..294c163 100644 --- a/chrome/browser/preloading/prerender/omnibox_prerender_browsertest.cc +++ b/chrome/browser/preloading/prerender/omnibox_prerender_browsertest.cc
@@ -59,10 +59,7 @@ OmniboxPrerenderBrowserTest() : prerender_helper_(base::BindRepeating( &OmniboxPrerenderBrowserTest::GetActiveWebContents, - base::Unretained(this))) { - scoped_feature_list_.InitAndEnableFeature( - features::kOmniboxTriggerForPrerender2); - } + base::Unretained(this))) {} void SetUp() override { prerender_helper_.SetUp(embedded_test_server()); @@ -120,7 +117,6 @@ std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_ukm_recorder_; std::unique_ptr<content::test::PreloadingAttemptUkmEntryBuilder> ukm_entry_builder_; - base::test::ScopedFeatureList scoped_feature_list_; }; // Tests that Prerender2 cannot be triggered when preload setting is disabled.
diff --git a/chrome/browser/preloading/prerender/prerender_omnibox_ui_browsertest.cc b/chrome/browser/preloading/prerender/prerender_omnibox_ui_browsertest.cc index 27efa83b7..d1d9e8cc 100644 --- a/chrome/browser/preloading/prerender/prerender_omnibox_ui_browsertest.cc +++ b/chrome/browser/preloading/prerender/prerender_omnibox_ui_browsertest.cc
@@ -107,10 +107,7 @@ PrerenderOmniboxUIBrowserTest() : prerender_helper_(base::BindRepeating( &PrerenderOmniboxUIBrowserTest::GetActiveWebContents, - base::Unretained(this))) { - scoped_feature_list_.InitAndEnableFeature( - features::kOmniboxTriggerForPrerender2); - } + base::Unretained(this))) {} void SetUp() override { prerender_helper_.SetUp(embedded_test_server()); @@ -247,7 +244,6 @@ } content::test::PrerenderTestHelper prerender_helper_; - base::test::ScopedFeatureList scoped_feature_list_; ui::PageTransition last_finished_page_transition_type_; std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_ukm_recorder_; std::unique_ptr<content::test::PreloadingAttemptUkmEntryBuilder> @@ -501,8 +497,7 @@ public: PrerenderPreloaderHoldbackBrowserTest() { feature_list_.InitWithFeatures( - /*enabled_features=*/{features::kOmniboxTriggerForPrerender2, - features::kPrerender2Holdback}, + /*enabled_features=*/{features::kPrerender2Holdback}, /* disabled_features=*/{}); } ~PrerenderPreloaderHoldbackBrowserTest() override = default;
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc index 0b0a9158..370d3ef 100644 --- a/chrome/browser/printing/print_browsertest.cc +++ b/chrome/browser/printing/print_browsertest.cc
@@ -2171,7 +2171,7 @@ })"; EXPECT_TRUE(ExecJs(fenced_frame_parent, content::JsReplace(kAddFencedFrameScript, url))); - navigation.WaitForNavigationFinished(); + EXPECT_TRUE(navigation.WaitForNavigationFinished()); content::RenderFrameHost* new_frame = ChildFrameAt(fenced_frame_parent, 0);
diff --git a/chrome/browser/privacy_budget/identifiability_study_state.cc b/chrome/browser/privacy_budget/identifiability_study_state.cc index dc6f4d56..0453861 100644 --- a/chrome/browser/privacy_budget/identifiability_study_state.cc +++ b/chrome/browser/privacy_budget/identifiability_study_state.cc
@@ -65,7 +65,8 @@ // However, `MesaDistribution` needs a `pivot_point` parameter // bigger than 0. : 1, - kMesaDistributionRatio), + kMesaDistributionRatio, + kMesaDistributionGeometricDistributionParam), reid_estimator_( PrivacyBudgetReidScoreEstimator(&settings_, pref_service)) { InitializeGlobalStudySettings();
diff --git a/chrome/browser/privacy_budget/identifiability_study_state.h b/chrome/browser/privacy_budget/identifiability_study_state.h index 8996e8c..1fa3ff2 100644 --- a/chrome/browser/privacy_budget/identifiability_study_state.h +++ b/chrome/browser/privacy_budget/identifiability_study_state.h
@@ -135,6 +135,10 @@ // of random numbers for selecting identifiable surface for measurement. static constexpr double kMesaDistributionRatio = 0.9; + // The parameter of the geometric distribution used for the tail of the Mesa + // distribution. + static constexpr double kMesaDistributionGeometricDistributionParam = 0.5; + private: friend class test_utils::InspectableIdentifiabilityStudyState;
diff --git a/chrome/browser/privacy_budget/mesa_distribution.h b/chrome/browser/privacy_budget/mesa_distribution.h index 01427a0..635d358 100644 --- a/chrome/browser/privacy_budget/mesa_distribution.h +++ b/chrome/browser/privacy_budget/mesa_distribution.h
@@ -15,14 +15,13 @@ // // The PDF is: // -// ⎧ 0 ... if x < 0 +// ⎧ 0 ... if x < 0 // ⎪ -// ⎪ λ ... if 0 <= x < T -// P(x) = ⎨ -// ⎪ λ (1 - γ)⁽ˣ⁻ᵀ⁾ ... otherwise +// P(x) = ⎨ λ ... if 0 <= x < T // ⎪ -// ⎩ -// where ... +// ⎩ (1 - τ) * γ * (1 - γ)^{X - T} ... otherwise +// +// where // // T = Value at which the PDF switches from a uniform to a geometric // distribution. Referred to in code as the `pivot_point`. @@ -31,16 +30,14 @@ // then 90% of the probability space is in the linear region. The ratio is // referred to in code as `dist_ratio`. // +// γ = Parameter of the geometric distribution. +// // τ // λ = ─── // T // -// λ τ -// γ = ───── = ─────────── -// 1 - τ T * (1 - τ) -// // In otherwords, the PDF is uniform up to T with a probability of λ, and then -// switches to a geometric distribution with parameter λ that extends to +// switches to a geometric distribution with parameter γ that extends to // infinity. // // It looks like this in the form of a graph which should make a little bit more @@ -73,11 +70,12 @@ std::enable_if_t<std::is_integral<ResultType>::value, int> = 0> class MesaDistribution { public: - MesaDistribution(ResultType pivot_point, double dist_ratio) + MesaDistribution(ResultType pivot_point, + double dist_ratio, + double geometric_distribution_param) : pivot_point_(pivot_point), uniform_distribution_(0, std::ceil(pivot_point / dist_ratio)), - geometric_distribution_(dist_ratio / - (pivot_point * (1.0l - dist_ratio))) { + geometric_distribution_(geometric_distribution_param) { DCHECK_GT(pivot_point, static_cast<ResultType>(0)); DCHECK_GT(dist_ratio, 0); DCHECK_LT(dist_ratio, 1);
diff --git a/chrome/browser/privacy_budget/mesa_distribution_unittest.cc b/chrome/browser/privacy_budget/mesa_distribution_unittest.cc index 7e16815..039e148c 100644 --- a/chrome/browser/privacy_budget/mesa_distribution_unittest.cc +++ b/chrome/browser/privacy_budget/mesa_distribution_unittest.cc
@@ -17,10 +17,12 @@ constexpr auto kSeed = 3; constexpr auto kPivotPoint = 300; constexpr auto kDistRatio = 0.9l; +constexpr auto kGeometricDistributionParam = 0.5l; } // namespace TEST(MesaDistributionTest, Get) { - MesaDistribution<int> mesa(kPivotPoint, kDistRatio); + MesaDistribution<int> mesa(kPivotPoint, kDistRatio, + kGeometricDistributionParam); std::mt19937 g(kSeed); auto v1 = mesa.Get(g); g.seed(kSeed); @@ -69,7 +71,7 @@ std::array<double, kMaxOffset + 1> occurrences = {0.0}; // The distribution under test: - MesaDistribution<int> mesa(kPivotPoint, kDistRatio); + MesaDistribution<int> mesa(kPivotPoint, kDistRatio, kGamma); std::mt19937 random_bit_generator(kSeed);
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java index 596a795..c43bba06e 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogConsentEEAV4.java
@@ -103,6 +103,7 @@ PrivacySandboxBridge.promptActionOccurred(PromptAction.CONSENT_DECLINED); dismissAndMaybeShowNotice(); } else if (id == R.id.more_button) { + PrivacySandboxBridge.promptActionOccurred(PromptAction.CONSENT_MORE_BUTTON_CLICKED); if (mScrollView.canScrollVertically(ScrollView.FOCUS_DOWN)) { mScrollView.post(() -> { mScrollView.pageScroll(ScrollView.FOCUS_DOWN); }); } else {
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeEEAV4.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeEEAV4.java index 42e2d7a5..4f310443 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeEEAV4.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeEEAV4.java
@@ -99,6 +99,7 @@ PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings( getContext(), mSettingsLauncher, PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE); } else if (id == R.id.more_button) { + PrivacySandboxBridge.promptActionOccurred(PromptAction.NOTICE_MORE_BUTTON_CLICKED); if (mScrollView.canScrollVertically(ScrollView.FOCUS_DOWN)) { mScrollView.post(() -> { mScrollView.pageScroll(ScrollView.FOCUS_DOWN); }); } else {
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeROWV4.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeROWV4.java index 22d21a1..cd565120 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeROWV4.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeROWV4.java
@@ -95,6 +95,7 @@ PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings( getContext(), mSettingsLauncher, PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE); } else if (id == R.id.more_button) { + PrivacySandboxBridge.promptActionOccurred(PromptAction.NOTICE_MORE_BUTTON_CLICKED); if (mScrollView.canScrollVertically(ScrollView.FOCUS_DOWN)) { mScrollView.post(() -> { mScrollView.pageScroll(ScrollView.FOCUS_DOWN); }); } else {
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java index 4e5802f..a670737 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java
@@ -164,6 +164,15 @@ while (true) { try { onView(withId(R.id.more_button)).perform(click()); + var promptType = mFakePrivacySandboxBridge.getRequiredPromptType(); + if (promptType == PromptType.M1_CONSENT) { + assertEquals("Last dialog action", PromptAction.CONSENT_MORE_BUTTON_CLICKED, + (int) mFakePrivacySandboxBridge.getLastPromptAction()); + } else if (promptType == PromptType.M1_NOTICE_EEA + || promptType == PromptType.M1_NOTICE_ROW) { + assertEquals("Last dialog action", PromptAction.NOTICE_MORE_BUTTON_CLICKED, + (int) mFakePrivacySandboxBridge.getLastPromptAction()); + } } catch (PerformException e) { return; }
diff --git a/chrome/browser/resource_coordinator/OWNERS b/chrome/browser/resource_coordinator/OWNERS index cf204923..2035bf95 100644 --- a/chrome/browser/resource_coordinator/OWNERS +++ b/chrome/browser/resource_coordinator/OWNERS
@@ -1,6 +1,7 @@ file://services/resource_coordinator/OWNERS fdoray@chromium.org +pmonette@chromium.org # ChromeOS tab manager related implementation. per-file *chromeos*=vovoy@chromium.org
diff --git a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts index 01ac70d..15a3fdf 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts
@@ -132,11 +132,12 @@ private cancelSetup(): void { if (this.currentPage instanceof OneDriveUploadPageElement) { // No need to show the cancel dialog as setup is finished. - this.proxy.handler.respondAndClose(UserAction.kCancel); + this.proxy.handler.respondWithUserActionAndClose(UserAction.kCancel); return; } this.cancelDialog.show( - () => this.proxy.handler.respondAndClose(UserAction.kCancel)); + () => this.proxy.handler.respondWithUserActionAndClose( + UserAction.kCancel)); } /**
diff --git a/chrome/browser/resources/chromeos/cloud_upload/drive_upload_page.ts b/chrome/browser/resources/chromeos/cloud_upload/drive_upload_page.ts index a88499e..6df30c2 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/drive_upload_page.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/drive_upload_page.ts
@@ -35,12 +35,12 @@ } private onContinueButtonClick(): void { - this.proxy.handler.respondAndClose( + this.proxy.handler.respondWithUserActionAndClose( UserAction.kConfirmOrUploadToGoogleDrive); } private onCancelButtonClick(): void { - this.proxy.handler.respondAndClose(UserAction.kCancel); + this.proxy.handler.respondWithUserActionAndClose(UserAction.kCancel); } }
diff --git a/chrome/browser/resources/chromeos/cloud_upload/file_handler_page.ts b/chrome/browser/resources/chromeos/cloud_upload/file_handler_page.ts index 1107d66..2d29337e 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/file_handler_page.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/file_handler_page.ts
@@ -6,15 +6,20 @@ import {assert} from 'chrome://resources/js/assert_ts.js'; -import {UserAction} from './cloud_upload.mojom-webui.js'; +import {DialogTask, UserAction} from './cloud_upload.mojom-webui.js'; import {CloudUploadBrowserProxy} from './cloud_upload_browser_proxy.js'; import {getTemplate} from './file_handler_page.html.js'; /** * The FileHandlerPageElement represents the setup page the user sees after - * choosing Docs/Sheets/Slides. + * choosing Docs/Sheets/Slides or the Office PWA. */ export class FileHandlerPageElement extends HTMLElement { + /** + * The local file tasks that the user could use to open the file. There are + * separate buttons for the Drive and Office PWA apps. + */ + tasks: DialogTask[] = []; private proxy: CloudUploadBrowserProxy = CloudUploadBrowserProxy.getInstance(); @@ -44,27 +49,65 @@ this.proxy.handler.isOfficeWebAppInstalled(), ]); assert(dialogArgs.args); + assert(dialogArgs.args.tasks); - if (isOfficePwaInstalled) { - this.shadowRoot!.querySelector('#available-to-install')!.remove(); - } + // Element which marks the start of the section of uninstalled apps. + const uninstalledApps = this.$('#available-to-install'); - const fileNameElement = - this.shadowRoot!.querySelector<HTMLSpanElement>('#file-name'); + const fileNameElement = this.$<HTMLSpanElement>('#file-name'); assert(fileNameElement); fileNameElement.innerText = dialogArgs.args.fileNames[0] || ''; const {name, icon} = this.getDriveAppInfo(dialogArgs.args.fileNames); - const driveAppNameElement = - this.shadowRoot!.querySelector<HTMLSpanElement>('#drive-app-name'); + const driveAppNameElement = this.$<HTMLSpanElement>('#drive-app-name'); assert(driveAppNameElement); driveAppNameElement.innerText = name; - const driveAppIconElement = - this.shadowRoot!.querySelector<HTMLSpanElement>('#drive-app-icon'); + const driveAppIconElement = this.$<HTMLSpanElement>('#drive-app-icon'); assert(driveAppIconElement); driveAppIconElement.classList.add(icon); + const form = this.$<HTMLSpanElement>('form'); + // For each local file task, create a clickable label. + for (const task of dialogArgs.args.tasks) { + assert(task); + + const label = document.createElement('label'); + label.className = 'radio-label'; + + const input = document.createElement('input'); + input.type = 'radio'; + input.name = 'app-choice'; + // Expect the position to be positive. + assert(task.position >= 0); + input.id = this.toStringId(task.position); + + const div = document.createElement('div'); + div.className = 'icon start'; + div.setAttribute( + 'style', 'background-image: url(' + task.iconUrl + ')'); + + const span = document.createElement('span'); + span.innerText = task.title; + + label.append(input); + label.append(div); + label.append(span); + // Put the label in the installed apps section. + form!.insertBefore(label, uninstalledApps!); + } + + // Remove the text for the section of uninstalled apps if the Office PWA, + // the only uninstalled app, is already installed. + // TODO(cassycc): Check if the Office PWA should be in the at the top, + // below Drive, in this case. + if (isOfficePwaInstalled) { + uninstalledApps!.remove(); + } + + // Set `this.tasks` at end of `initDynamicContent` as an indication of + // completion. + this.tasks = dialogArgs.args.tasks; } catch (e) { // TODO(b:243095484) Define expected behavior. @@ -72,6 +115,16 @@ } } + $<T extends HTMLElement>(query: string): T { + return this.shadowRoot!.querySelector(query)!; + } + + // Convert a number to a string that can be used as an id for an element. Add + // the prefix 'id' so it can be found with the `querySelector`. + private toStringId(i: number): string { + return 'id' + i; + } + // Return the name and icon of the specific Google app i.e. Docs/Sheets/Slides // that will be used to open these files. When there are multiple files of // different types, or any error finding the right app, we just default to @@ -88,21 +141,56 @@ } } - private getUserChoice() { - if (this.shadowRoot!.querySelector<HTMLInputElement>('#drive')!.checked) { + // If the user clicked on the Drive or Office PWA app return the corresponding + // `UserAction`. Otherwise return null. + private getSelectedCloudProvider() { + if (this.$<HTMLInputElement>('#drive')!.checked) { // TODO(petermarshall): Remove the kSetUpGoogleDrive step or use it here. return UserAction.kConfirmOrUploadToGoogleDrive; - } else { + } else if (this.$<HTMLInputElement>('#onedrive')!.checked) { return UserAction.kSetUpOneDrive; + } else { + return null; } } - private onOpenButtonClick(): void { - this.proxy.handler.respondAndClose(this.getUserChoice()); + // Return the (positive) id of the local file task clicked on by the user. If + // not found, return -1. + private getSelectedLocalTask(): number { + for (const task of this.tasks) { + if (this.shadowRoot! + .querySelector<HTMLInputElement>( + '#' + this.toStringId(task.position))!.checked) { + return task.position; + } + } + console.error('Unable to get selected local file task.'); + return -1; } + // Invoked when the open file button is clicked. If the user previously + // clicked on the Drive or Office PWA app, trigger the right + // `respondWithUserActionAndClose` mojo request. If the user previously + // clicked on a local file task, trigger the right + // `respondWithLocalTaskAndClose` mojo request. + private onOpenButtonClick(): void { + const userChoice = this.getSelectedCloudProvider(); + if (userChoice) { + this.proxy.handler.respondWithUserActionAndClose(userChoice); + } else { + // TODO(cassycc): It is possible that the click can happen before + // initDynamicContent (as I found in my tests). Should we be enforcing + // ordering? Would adding an await solve it? + const taskPosition = this.getSelectedLocalTask(); + if (0 <= taskPosition) { + this.proxy.handler.respondWithLocalTaskAndClose(taskPosition); + } + } + } + + private onCancelButtonClick(): void { - this.proxy.handler.respondAndClose(UserAction.kCancel); + this.proxy.handler.respondWithUserActionAndClose(UserAction.kCancel); } }
diff --git a/chrome/browser/resources/chromeos/cloud_upload/move_confirmation_page.ts b/chrome/browser/resources/chromeos/cloud_upload/move_confirmation_page.ts index faed50a8..e4dff1b4 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/move_confirmation_page.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/move_confirmation_page.ts
@@ -67,14 +67,16 @@ this.proxy.handler.setAlwaysMoveOfficeFiles(checkbox.checked); if (this.cloudProvider === CloudProvider.ONE_DRIVE) { - this.proxy.handler.respondAndClose(UserAction.kUploadToOneDrive); + this.proxy.handler.respondWithUserActionAndClose( + UserAction.kUploadToOneDrive); } else { - this.proxy.handler.respondAndClose(UserAction.kUploadToGoogleDrive); + this.proxy.handler.respondWithUserActionAndClose( + UserAction.kUploadToGoogleDrive); } } private onCancelButtonClick(): void { - this.proxy.handler.respondAndClose(UserAction.kCancel); + this.proxy.handler.respondWithUserActionAndClose(UserAction.kCancel); } }
diff --git a/chrome/browser/resources/chromeos/cloud_upload/one_drive_upload_page.ts b/chrome/browser/resources/chromeos/cloud_upload/one_drive_upload_page.ts index a34ba75..b32ab7c 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/one_drive_upload_page.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/one_drive_upload_page.ts
@@ -61,7 +61,8 @@ } private onUploadButtonClick(): void { - this.proxy.handler.respondAndClose(UserAction.kConfirmOrUploadToOneDrive); + this.proxy.handler.respondWithUserActionAndClose( + UserAction.kConfirmOrUploadToOneDrive); } private onCancelButtonClick(): void {
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html index 7c37bfb..41a13c1 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html
@@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta name="color-scheme" content="light dark"> - <title>Combined dialog</title> + <title>$i18n{adPrivacyPageTitle}</title> <link rel="stylesheet" href="chrome://resources/css/md_colors.css"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> <style>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html index 0591a584..550742e 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
@@ -3,7 +3,7 @@ <div class="content-area custom-scrollbar" scrollable tabindex="-1"> <div class="header"> <img class="logo" alt=""> - <h2>$i18n{m1ConsentTitle}</h2> + <h1>$i18n{m1ConsentTitle}</h1> </div> <div class="section cr-secondary-text"> $i18n{m1ConsentDescription1} @@ -12,7 +12,7 @@ $i18n{m1ConsentDescription2} </div> <div class="banner"> - <img class="topics-banner" alt="$i18n{m1ConsentBannerImageA11yDescription}"> + <img class="topics-banner" alt=""> </div> <div class="section cr-secondary-text"> $i18n{m1ConsentDescription3}
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html index 0962f3b..1f6436f 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
@@ -18,7 +18,7 @@ <div class="content-wrapper"> <div class="header"> <img class="logo" alt=""> - <h2>$i18n{m1NoticeEeaTitle}</h2> + <h1>$i18n{m1NoticeEeaTitle}</h1> </div> <div class="section cr-secondary-text"> $i18n{m1NoticeEeaDescription1} @@ -33,13 +33,13 @@ <privacy-sandbox-dialog-learn-more class="learn-more-section" expanded="{{expanded_}}" title="$i18n{m1NoticeEeaLearnMoreExpandLabel}"> - <div><b>$i18n{m1NoticeEeaLearnMoreHeading1}</b></div> + <h2>$i18n{m1NoticeEeaLearnMoreHeading1}</h2> <ul class="cr-secondary-text"> <li>$i18nRaw{m1NoticeEeaLearnMoreBullet1}</li> <li>$i18nRaw{m1NoticeEeaLearnMoreBullet2}</li> <li>$i18nRaw{m1NoticeEeaLearnMoreBullet3}</li> </ul> - <div><b>$i18n{m1NoticeEeaLearnMoreHeading2}</b></div> + <h2>$i18n{m1NoticeEeaLearnMoreHeading2}</h2> <div class="cr-secondary-text"> $i18n{m1NoticeEeaLearnMoreDescription} </div>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html index 4fb6156..da5de11 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html
@@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta name="color-scheme" content="light dark"> - <title>Notice dialog</title> + <title>$i18n{adPrivacyPageTitle}</title> <link rel="stylesheet" href="chrome://resources/css/md_colors.css"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> <style>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html index 7cf39f7..833bc6c 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
@@ -4,7 +4,7 @@ <div class="content-area custom-scrollbar" scrollable tabindex="-1"> <div class="header"> <img class="logo" alt=""> - <h2>$i18n{m1NoticeRowTitle}</h2> + <h1>$i18n{m1NoticeRowTitle}</h1> </div> <div class="section cr-secondary-text"> $i18n{m1NoticeRowDescription1} @@ -13,8 +13,7 @@ $i18n{m1NoticeRowDescription2} </div> <div class="banner"> - <img class="topics-banner" - alt="$i18n{m1NoticeRowBannerImageA11yDescription}"> + <img class="topics-banner" alt=""> </div> <div class="section cr-secondary-text"> $i18n{m1NoticeRowDescription3} @@ -23,8 +22,8 @@ expanded="{{expanded_}}" title="$i18n{m1NoticeRowLearnMoreExpandLabel}"> <div class="paragraph"> - <div><b>$i18n{m1NoticeRowLearnMoreHeading1}</b></div> - <div class="cr-secondary-text"> + <h2>$i18n{m1NoticeRowLearnMoreHeading1}</h2> + <div class="cr-secondary-text"> $i18n{m1NoticeRowLearnMoreDescription1} </div> <ul class="cr-secondary-text"> @@ -39,7 +38,7 @@ $i18n{m1NoticeRowLearnMoreDescription3} </div> <div class="paragraph"> - <div><b>$i18n{m1NoticeRowLearnMoreHeading2}</b></div> + <h2>$i18n{m1NoticeRowLearnMoreHeading2}</h2> <div class="cr-secondary-text"> $i18n{m1NoticeRowLearnMoreDescription4} </div>
diff --git a/chrome/browser/resources/privacy_sandbox/shared_style.css b/chrome/browser/resources/privacy_sandbox/shared_style.css index fe6ae35..316237f4 100644 --- a/chrome/browser/resources/privacy_sandbox/shared_style.css +++ b/chrome/browser/resources/privacy_sandbox/shared_style.css
@@ -38,7 +38,8 @@ text-align: center; } -.header h2 { +.header h1 { + font-size: 18px; font-weight: 500; line-height: 22px; margin: 0; @@ -111,13 +112,21 @@ padding-bottom: 8px; } +.learn-more-section h2 { + color: initial; + font-size: inherit; + font-weight: 400; + margin: 0; + margin-bottom: 8px; +} + .learn-more-section b { color: initial; font-weight: 400; } .learn-more-section .paragraph { - padding: 8px 0; + padding-bottom: 12px; } .learn-more-section > ul.cr-secondary-text {
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html index 83b4e8e..dcb3f12 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_fledge_subpage.html
@@ -93,11 +93,14 @@ <template is="dom-if" if="[[isFledgeEnabledAndLoaded_( prefs.privacy_sandbox.m1.fledge_enabled.value, isSitesListLoaded_)]]" restamp> - <template is="dom-repeat" items="[[mainSitesList_]]"> - <privacy-sandbox-interest-item interest="[[item]]" - on-interest-changed="onInterestChanged_"> - </privacy-sandbox-interest-item> - </template> + <div role="region" + aria-label="$i18n{fledgePageCurrentSitesRegionA11yDescription}"> + <template is="dom-repeat" items="[[mainSitesList_]]"> + <privacy-sandbox-interest-item interest="[[item]]" + on-interest-changed="onInterestChanged_"> + </privacy-sandbox-interest-item> + </template> + </div> <template is="dom-if" if="[[!isRemainingSitesListEmpty_( remainingSitesList_.length)]]" restamp> <cr-expand-button id="seeAllSites" @@ -105,11 +108,14 @@ $i18n{fledgePageSeeAllSitesLabel} </cr-expand-button> <iron-collapse opened="[[seeAllSitesExpanded_]]"> - <template is="dom-repeat" items="[[remainingSitesList_]]"> - <privacy-sandbox-interest-item interest="[[item]]" - on-interest-changed="onInterestChanged_"> - </privacy-sandbox-interest-item> - </template> + <div role="region" + aria-label="$i18n{fledgePageCurrentSitesRegionA11yDescription}"> + <template is="dom-repeat" items="[[remainingSitesList_]]"> + <privacy-sandbox-interest-item interest="[[item]]" + on-interest-changed="onInterestChanged_"> + </privacy-sandbox-interest-item> + </template> + </div> </iron-collapse> </template> <div id="currentSitesDescriptionEmpty" @@ -135,7 +141,8 @@ class="cr-row continuation cr-secondary-text"> [[computeBlockedSitesDescription_(blockedSitesList_.length)]] </div> - <div id="blockedSitesList"> + <div id="blockedSitesList" role="region" + aria-label="$i18n{fledgePageBlockedSitesRegionA11yDescription}"> <template is="dom-repeat" items="[[blockedSitesList_]]"> <privacy-sandbox-interest-item interest="[[item]]" on-interest-changed="onInterestChanged_">
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_topics_subpage.html b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_topics_subpage.html index 61b79f0..2fe30d8 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_topics_subpage.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_topics_subpage.html
@@ -88,11 +88,14 @@ <template is="dom-if" if="[[isTopicsEnabledAndLoaded_( prefs.privacy_sandbox.m1.topics_enabled.value, isTopicsListLoaded_)]]" restamp> - <template is="dom-repeat" items="[[topicsList_]]"> - <privacy-sandbox-interest-item interest="[[item]]" - on-interest-changed="onInterestChanged_"> - </privacy-sandbox-interest-item> - </template> + <div role="region" + aria-label="$i18n{topicsPageCurrentTopicsRegionA11yDescription}"> + <template is="dom-repeat" items="[[topicsList_]]"> + <privacy-sandbox-interest-item interest="[[item]]" + on-interest-changed="onInterestChanged_"> + </privacy-sandbox-interest-item> + </template> + </div> <div id="currentTopicsDescriptionEmpty" class="no-topics cr-secondary-text" hidden="[[!isTopicsListEmpty_(topicsList_.length)]]"> @@ -116,7 +119,8 @@ class="cr-row continuation cr-secondary-text"> [[computeBlockedTopicsDescription_(blockedTopicsList_.length)]] </div> - <div id="blockedTopicsList"> + <div id="blockedTopicsList" role="region" + aria-label="$i18n{topicsPageBlockedTopicsRegionA11yDescription}"> <template is="dom-repeat" items="[[blockedTopicsList_]]"> <privacy-sandbox-interest-item interest="[[item]]" on-interest-changed="onInterestChanged_">
diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java index b6d8947..34e4703 100644 --- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java +++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java
@@ -148,7 +148,10 @@ */ public void setManagedPreferenceDelegate(ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + // The value of `allowManagedIcon` doesn't matter, because the corresponding layout doesn't + // define an icon view. + ManagedPreferencesUtils.initPreference( + mManagedPrefDelegate, this, /*allowManagedIcon=*/true, /*hasCustomLayout=*/true); } /**
diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn index 307e1cef..e37c3fc 100644 --- a/chrome/browser/settings/BUILD.gn +++ b/chrome/browser/settings/BUILD.gn
@@ -15,13 +15,16 @@ "//chrome/browser/profiles/android:java", "//chrome/browser/ui/android/favicon:java", "//components/browser_ui/settings/android:java", + "//components/browser_ui/settings/android:managed_prefs_java_resources", "//components/browser_ui/widget/android:java", "//components/favicon/android:java", "//components/prefs/android:java", "//components/user_prefs/android:java", + "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_fragment_fragment_java", "//url:gurl_java", ] + resources_package = "org.chromium.chrome.browser.settings" } android_library("test_support_java") {
diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeManagedPreferenceDelegate.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeManagedPreferenceDelegate.java index 823e8bf..e35b102 100644 --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeManagedPreferenceDelegate.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeManagedPreferenceDelegate.java
@@ -4,16 +4,16 @@ package org.chromium.chrome.browser.settings; +import androidx.annotation.LayoutRes; import androidx.preference.Preference; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; +import org.chromium.components.browser_ui.settings.SettingsFeatureList; import org.chromium.components.user_prefs.UserPrefs; -/** - * A ManagedPreferenceDelegate with Chrome-specific default behavior. - */ +/** A ManagedPreferenceDelegate with Chrome-specific default behavior. */ public interface ChromeManagedPreferenceDelegate extends ManagedPreferenceDelegate { @Override default boolean isPreferenceControlledByCustodian(Preference preference) { @@ -26,4 +26,12 @@ .getString(Pref.SUPERVISED_USER_SECOND_CUSTODIAN_NAME) .isEmpty(); } + + @Override + default @LayoutRes int defaultPreferenceLayoutResource() { + return SettingsFeatureList.isEnabled( + SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID) + ? R.layout.chrome_managed_preference + : 0; + } }
diff --git a/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.cc b/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.cc index 2135c8c..bacddb3 100644 --- a/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.cc +++ b/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.cc
@@ -38,16 +38,6 @@ blocking_task_runner), profile_(profile) {} -std::string FakeSyncGCMDriver::GenerateTokenImpl( - const std::string& app_id, - const std::string& authorized_entity, - const std::string& scope) { - // TODO(crbug.com/1331206): Implement deleting token and generating a new one - // for the same profile. - return app_id + "_" + authorized_entity + "_" + scope + "_" + - profile_->GetDebugName(); -} - void FakeSyncGCMDriver::EncryptMessage(const std::string& app_id, const std::string& authorized_entity, const std::string& p256dh,
diff --git a/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.h b/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.h index 6d209c9..3bc12684 100644 --- a/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.h +++ b/chrome/browser/sync/test/integration/fake_sync_gcm_driver_for_instance_id.h
@@ -33,10 +33,6 @@ protected: // FakeGCMDriverForInstanceID overrides: - std::string GenerateTokenImpl(const std::string& app_id, - const std::string& authorized_entity, - const std::string& scope) override; - void EncryptMessage(const std::string& app_id, const std::string& authorized_entity, const std::string& p256dh,
diff --git a/chrome/browser/task_manager/task_manager_browsertest.cc b/chrome/browser/task_manager/task_manager_browsertest.cc index a3a5ee0..74b49b3 100644 --- a/chrome/browser/task_manager/task_manager_browsertest.cc +++ b/chrome/browser/task_manager/task_manager_browsertest.cc
@@ -1473,7 +1473,6 @@ { {features::kBackForwardCache, {{"TimeToLiveInBackForwardCacheInSeconds", "3600"}}}, - {features::kOmniboxTriggerForPrerender2, {}}, }, /*disabled_features=*/{}); EXPECT_TRUE(content::BackForwardCache::IsBackForwardCacheFeatureEnabled());
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb index d23bff0..e73e0916 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">رسم الشعار المبتكر من Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">قائمة القراءة</translation> <translation id="1266864766717917324">تعذَّرت مشاركة <ph name="CONTENT_TYPE" />.</translation> +<translation id="1273937721055267968">حظر <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">النقر للتوسيع</translation> <translation id="1285310382777185058">تغيير اللغة</translation> <translation id="1291207594882862231">محو السجل وملفات تعريف الارتباط وبيانات المواقع الإلكترونية وذاكرة التخزين المؤقت…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">النشاط على الويب وفي التطبيقات</translation> <translation id="2239812875700136898">يمكنك التحكُّم بقصصك عبر زر "خيارات الاقتراحات".</translation> <translation id="2248941474044011069">يتم تشفير كلمات المرور على جهازك قبل حفظها في "مدير كلمات المرور" من Google.</translation> +<translation id="2249635629516220541">تخصيص المعلومات التي تستخدمها المواقع الإلكترونية لعرض الإعلانات لك</translation> <translation id="2259659629660284697">تصدير كلمات المرور...</translation> <translation id="2276231040576210443">يمكنك متى شئت اختيار البيانات التي تريد مزامنتها، وذلك من خلال <ph name="BEGIN_LINK1" />الإعدادات<ph name="END_LINK1" />. وقد تستخدم Google السجلّ لتخصيص "بحث Google" والخدمات الأخرى.</translation> <translation id="2276696007612801991">يُرجى تسجيل الدخول إلى حسابك على Google للتحقُّق من كلمات المرور.</translation> @@ -290,6 +292,7 @@ <translation id="2612676031748830579">رقم البطاقة</translation> <translation id="2625189173221582860">تم نسخ كلمة المرور</translation> <translation id="2642087927315268160">تم إغلاق البطاقة السفلية لتسجيل الدخول.</translation> +<translation id="2643064289437760082">يمكنك في أي وقت حذف بيانات قياس أداء الإعلانات عن طريق حذف بيانات التصفّح.</translation> <translation id="2647434099613338025">إضافة لغة</translation> <translation id="2649068648233607930">إدارة متصفِّحك من خلال <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">تم إغلاق شرح دليل الخصوصية.</translation> @@ -373,6 +376,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />الحصول على مساعدة<ph name="END_LINK" /></translation> <translation id="3037177537145227281">تتبُّع السعر</translation> <translation id="3037517125981011456">عرض رسائل مطالبة تسجيل الدخول إلى Chrome</translation> +<translation id="3038272154009688107">عرض كل المواقع الإلكترونية</translation> <translation id="3046945242843292318">الوصول إلى هذا الموقع الإلكتروني بسرعة أكبر في المرة القادمة</translation> <translation id="3055113921564083271">الاهتمامات التي أزلتها</translation> <translation id="3055259925215945098">تم نقل الإشارة المرجعية</translation> @@ -422,6 +426,7 @@ <translation id="3282568296779691940">تسجيل الدخول إلى Chrome</translation> <translation id="3285080554353377245">فيديوهات حول كيفية استخدام Chrome</translation> <translation id="3290249595466894471">يُرسِل هذا الوضع أيضًا عددًا قليلاً من الصفحات وعمليات التنزيل وأنشطة الإضافات ومعلومات النظام للمساعدة في اكتشاف التهديدات الجديدة.</translation> +<translation id="3293181007446299124">يتم الحفاظ على خصوصية سجلّ التصفُّح في جهازك ويتم تأخير إرسال التقارير بهدف حماية هويتك.</translation> <translation id="3297344142967351106">المساعَدة الصوتية</translation> <translation id="3303414029551471755">هل ترغب في الاستمرار في تنزيل المحتوى؟</translation> <translation id="3305795716056605962">يمكنك ترجمة الصفحات بالنقر على زر "خيارات إضافية".</translation> @@ -533,6 +538,7 @@ <translation id="397583555483684758">توقفت المزامنة</translation> <translation id="3976396876660209797">إزالة هذا الاختصار وإعادة إنشائه</translation> <translation id="3981902534690264083">يمكن للمعلنين التعرّف على مستوى أداء الإعلانات.</translation> +<translation id="3985022125189960801">يمكنك إعادة إضافة موقع إلكتروني إذا أردت إدراجه ضمن مجموعة المواقع الإلكترونية التي يمكنها تخمين ما يعجبك.</translation> <translation id="3985215325736559418">هل تريد تنزيل <ph name="FILE_NAME" /> مرة أخرى؟</translation> <translation id="3987993985790029246">نسخ الرابط</translation> <translation id="3999683152997576765">يمكنك الاطّلاع على المواضيع التي تهمّك وتستخدمها المواقع الإلكترونية لعرض الإعلانات لك، وبإمكانك كذلك إزالة ما تشاء من هذه المواضيع. ويعمل Chrome على تقديم تقديرات حول اهتماماتك بناءً على سجل التصفّح الأخير.</translation> @@ -597,6 +603,7 @@ <translation id="433213510553688132">جارٍ المتابعة…</translation> <translation id="4335835283689002019">التصفُّح الآمن غير مُفعّل.</translation> <translation id="4351244548802238354">إغلاق مربع الحوار</translation> +<translation id="4369735607080757018">تتم مشاركة أنواع محدودة من البيانات بين المواقع الإلكترونية لقياس أداء إعلاناتها، مثل الوقت الذي تم فيه عرض الإعلان.</translation> <translation id="4378154925671717803">هاتف</translation> <translation id="438319986296050901">مشاركة البطاقة فقط</translation> <translation id="4384468725000734951">استخدام محرك Sogou للبحث</translation> @@ -620,6 +627,7 @@ <translation id="4504667196171871375">على شبكة Wi-Fi وبيانات الجوّال</translation> <translation id="4508528996305412043">قائمة بطاقة الخلاصة مفتوحة</translation> <translation id="4508642716788467538">اختيار اللغة</translation> +<translation id="4509501256689523862">أثناء التصفّح، يعتمد تخصيص الإعلان المعروض على هذا الخيار و<ph name="BEGIN_LINK_1" />مواضيع الإعلانات<ph name="END_LINK_1" /> و<ph name="BEGIN_LINK_2" />إعدادات ملفات تعريف الارتباط<ph name="END_LINK_2" /> وما إذا كان الموقع الإلكتروني الذي تعرضه يخصِّص الإعلانات.</translation> <translation id="4513387527876475750">{DAYS,plural, =1{قبل يوم واحد (#)}zero{قبل # يوم}two{قبل يومين (#)}few{قبل # أيام}many{قبل # يومًا}other{قبل # يوم}}</translation> <translation id="451872707440238414">البحث في الإشارات المرجعية</translation> <translation id="4521489764227272523">تمت إزالة البيانات المُحددة من متصفح Chrome والأجهزة التي تمت مزامنتها. @@ -647,6 +655,7 @@ <translation id="4662373422909645029">يجب ألا يضم اللقب أرقامًا</translation> <translation id="4663499661119906179">الاطّلاع على أهم المواقع الإلكترونية والأخبار المُقترَحة لك</translation> <translation id="4663756553811254707">تم حذف <ph name="NUMBER_OF_BOOKMARKS" /> من الإشارات المرجعية</translation> +<translation id="4668279686271488041">يتم بانتظام حذف بيانات "قياس أداء الإعلانات" من جهازك.</translation> <translation id="4668347365065281350">جميع البيانات المُخزَّنة من خلال المواقع الإلكترونية بما في ذلك ملفات تعريف الارتباط وغيرها من البيانات المُخزَّنَة محليًا</translation> <translation id="4678082183394354975">وضع "المظهر الداكن" مفعَّل للمواقع الإلكترونية في Chrome.</translation> <translation id="4684427112815847243">مزامنة كل شيء</translation> @@ -738,6 +747,7 @@ <translation id="5091199029769593641">قريبًا، ستظهر لك قصص من <ph name="SITE_NAME" /> عند فتح علامة تبويب جديدة. تم حفظ المواقع الإلكترونية التي تتابعها في حسابك على Google. ويمكنك إدارة هذه المواقع الإلكترونية من خلال إعدادات "اقتراحات".</translation> <translation id="5091249083535528968">بيانات الاستخدام الموسَّعة</translation> <translation id="509429900233858213">حدث خطأ.</translation> +<translation id="5097349930204431044">يمكن للمواقع الإلكترونية التي تنتقل إليها تحديد اهتماماتك، ثم اقتراح الإعلانات أثناء مواصلة التصفُّح.</translation> <translation id="5099845111805573968">عند اختيار موقع إلكتروني متوافق مع أجهزة الكمبيوتر المكتبي مرة واحدة، يتم تطبيق الإعداد على هذا الموقع الإلكتروني في كل مرة تنتقل فيها إليه.</translation> <translation id="5102401324271069229">وإذا حاول موقع إلكتروني سرقة كلمة المرور أو إذا نزّلت ملفًا ضارًا، قد يرسل متصفّح Chrome أيضًا عناوين URL تتضمّن أجزاء من محتوى الصفحة إلى "التصفّح الآمن".</translation> <translation id="510275257476243843">يتبقى ساعة واحدة</translation> @@ -1032,6 +1042,7 @@ <translation id="6659594942844771486">علامة تبويب</translation> <translation id="666731172850799929">الفتح في <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">نسخ الصورة</translation> +<translation id="6672917148207387131">إضافة <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">لبدء المزامنة، يجب إدخال عبارة المرور.</translation> <translation id="6676840375528380067">هل تريد محو بيانات Chrome من هذا الجهاز؟</translation> <translation id="6676927815633975364">تسجيل الدخول إلى هذا الموقع الإلكتروني وإلى متصفِّح Chrome</translation> @@ -1044,6 +1055,7 @@ <translation id="6737612727720318154">يمكنك السماح باهتمام أو موقع إلكتروني إذا كنت تعتقد أنّ الإعلانات ذات الصلة بهذا الاهتمام أو الموقع الإلكتروني ستكون مفيدة لك.</translation> <translation id="6738516213925468394">تم ترميز بياناتك باستخدام <ph name="BEGIN_LINK" />عبارة مرور المزامنة<ph name="END_LINK" /> في <ph name="TIME" />. يُرجى إدخالها لبدء المزامنة.</translation> <translation id="6738867403308150051">جارٍ التنزيل…</translation> +<translation id="674388916582496364">إنّ المواقع الإلكترونية التي تنتقل إليها تتذكّر عادةً اهتماماتك لتخصيص تجربتك. يمكن أيضًا أن تخزّن المواقع الإلكترونية في متصفِّح Chrome معلومات عن اهتماماتك.</translation> <translation id="6751521182688001123">يتيح لك هذا الزر فتح علامة تبويب جديدة بسرعة. ولتعديل هذا الاختصار، انقر مع الاستمرار.</translation> <translation id="6756507620369789050">مشاركة الملاحظات والآراء</translation> <translation id="6767294960381293877">قائمة الأجهزة التي يمكن مشاركة علامة تبويب معها، مفتوحة على طول النصف السفلي من الشاشة.</translation> @@ -1087,6 +1099,7 @@ <translation id="6963766334940102469">حذف الإشارات المرجعية</translation> <translation id="696447261358045621">مغادرة وضع التصفُّح المتخفي</translation> <translation id="6971862865055170158">عدم الموافقة</translation> +<translation id="6978717888677691380">المواقع الإلكترونية التي حظرتها</translation> <translation id="6979737339423435258">جميع الأوقات</translation> <translation id="6987047470128880212">علامة التبويب في وضع التصفُّح المتخفي غير متوفّرة على هذا الجهاز.</translation> <translation id="6995899638241819463">التحذير إذا تم الكشف عن كلمات المرور في عملية اختراق بيانات</translation> @@ -1131,6 +1144,7 @@ <translation id="7242755609445462077">ملاحظة مميّزة تم تنميطها بتاريخ <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">يُرجى التأكّد من تفعيل مزامنة <ph name="TARGET_DEVICE_NAME" /> في Chrome.</translation> <translation id="7252076891734325316">قرِّب هاتفك من الكمبيوتر</translation> +<translation id="7260367682327802201">قد يتضمّن جهاز Android خيارًا مشابهًا. في حال تفعيل ميزة "قياس أداء الإعلانات" في Chrome وعلى جهاز Android، يمكن للشركة قياس مدى فاعلية الإعلان المعروض على المواقع الإلكترونية التي تزورها والتطبيقات التي تستخدمها.</translation> <translation id="727288900855680735">هل تريد إرسال <ph name="ONE_TIME_CODE" /> إلى <ph name="ORIGIN" />؟</translation> <translation id="7274013316676448362">الموقع المحظور</translation> <translation id="7286572596625053347">هل تريد تغيير اللغة <ph name="LANGUAGE" />؟</translation> @@ -1211,6 +1225,7 @@ <translation id="766587987807204883">تظهر المقالات هنا، ويمكنك الاطّلاع عليها حتى عندما لا يكون الجهاز متّصلًا بالإنترنت.</translation> <translation id="768232549260819724">تم نسخ ملف GIF.</translation> <translation id="7682724950699840886">يمكنك تجربة النصائح التالية: تأكد من توفر مساحة كافية على جهازك وحاول التصدير مرة أخرى.</translation> +<translation id="7686086654630106285">مزيد من المعلومات عن الإعلانات التي تقترحها المواقع الإلكترونية</translation> <translation id="768618399695552958">إنّ بعض الصفحات التي تنتقل إليها يتم تحميلها مُسبقًا. يمكن تحميل صفحات الويب مُسبقًا من خلال خوادم Google عند ربطها من موقع مصمَّم في "مواقع Google".</translation> <translation id="7698359219371678927">إنشاء بريد إلكتروني في <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">الإكمال التلقائي لعناوين URL وعمليات البحث</translation> @@ -1263,7 +1278,7 @@ <translation id="7961015016161918242">مطلقًا</translation> <translation id="7961926449547174351">لقد أوقفت إذن الوصول إلى "مساحة التخزين". يُرجى الانتقال إلى "الإعدادات" لتفعيله.</translation> <translation id="7963646190083259054">المورّد:</translation> -<translation id="7965838025086216108">يمكنك استخدام كلمات المرور المحفوظة على أي جهاز. تُحفظ كلمات المرور في تطبيق "مدير كلمات المرور من Google" لدى <ph name="ACCOUNT" />.</translation> +<translation id="7965838025086216108">يمكنك استخدام كلمات المرور المحفوظة على أي جهاز. تُحفظ كلمات المرور في تطبيق "مدير كلمات المرور في Google" لدى <ph name="ACCOUNT" />.</translation> <translation id="7968014550143838305">تمت الإضافة إلى قائمة القراءة.</translation> <translation id="7971136598759319605">نشط قبل يوم واحد</translation> <translation id="7975379999046275268">معاينة صفحة <ph name="BEGIN_NEW" />ميزة جديدة<ph name="END_NEW" /></translation> @@ -1379,6 +1394,7 @@ <translation id="8540136935098276800">يُرجى إدخال عنوان URL بتنسيق صحيح.</translation> <translation id="854522910157234410">فتح هذه الصفحة</translation> <translation id="8551513938758868521">قفل علامات التبويب في وضع التصفُّح المتخفي عند إغلاق Chrome</translation> +<translation id="8559961053328923750">يحد متصفِّح Chrome من إجمالي البيانات التي يمكن للمواقع الإلكترونية مشاركتها من خلال المتصفّح لقياس أداء الإعلانات.</translation> <translation id="8559990750235505898">اقتراح ترجمة الصفحات المكتوبة بلغات أخرى</translation> <translation id="8560602726703398413">العثور على قائمة القراءة في الإشارات المرجعية</translation> <translation id="8562452229998620586">ستظهر هنا كلمات المرور المحفوظة.</translation> @@ -1419,6 +1435,7 @@ <translation id="8773160212632396039">جارٍ معالجة الطلب</translation> <translation id="8788265440806329501">يتم إغلاق سجلّ التنقُّل.</translation> <translation id="8788968922598763114">إعادة فتح آخر علامة تبويب تم إغلاقها</translation> +<translation id="879027982257117598">على سبيل المثال، إذا انتقلت إلى موقع إلكتروني يبيع أحذية الركض لمسافة طويلة، قد يحدِّد هذا الموقع الإلكتروني أنّك مهتم بسباقات الماراثون. وعند زيارة موقع إلكتروني آخر لاحقًا، يمكن أن يعرض هذا الموقع الإلكتروني إعلانًا عن الأحذية المخصّصة للركض مقترَحًا من الموقع الإلكتروني الأول.</translation> <translation id="8798449543960971550">مقروءة</translation> <translation id="8803526663383843427">عندما تكون الميزة مفعَّلة</translation> <translation id="8805097383171548551">لمسح رمز استجابة سريعة ضوئيًا، يجب استخدام جهاز مُزوّد بكاميرا.</translation> @@ -1461,6 +1478,7 @@ <translation id="8996847606757455498">اختيار مقدِّم خدمة آخر</translation> <translation id="8998729206196772491">يتم تسجيل دخولك باستخدام حساب تتم إدارته من خلال <ph name="MANAGED_DOMAIN" /> ومنح مشرفه الحق في التحكم في بياناتك على Chrome. سيؤدي ذلك إلى جعل بياناتك مرتبطة دائمًا بهذا الحساب. كما سيؤدي الخروج من Chrome إلى حذف بياناتك من هذا الجهاز، ولكن ستظل هذه البيانات مخزَّنة على حسابك في Google.</translation> <translation id="9022774213089566801">المواقع الإلكترونية التي تزورها بشكلٍ متكرر</translation> +<translation id="9022871169049522985">يمكن للمواقع الإلكترونية والمعلنين قياس أداء إعلاناتهم.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{فيديو واحد (#)}zero{# فيديو}two{فيديوهان (#)}few{# فيديوهات}many{# فيديو}other{# فيديو}}</translation> <translation id="9042893549633094279">الخصوصية والأمان</translation> <translation id="9050666287014529139">عبارة المرور</translation> @@ -1482,11 +1500,13 @@ <translation id="9108312223223904744">إتاحة استخدام الهاتف كمفتاح أمان</translation> <translation id="9108808586816295166">قد لا يكون نظام أسماء النطاقات الآمن متاحًا طوال الوقت.</translation> <translation id="9128984223251192329">تم فتح إشعار "مبادرة حماية الخصوصية" في نصف الشاشة.</translation> +<translation id="9131209053278896908">تظهر في هذه القائمة المواقع الإلكترونية التي تحظرها.</translation> <translation id="9133397713400217035">الاطّلاع بلا اتصال بالإنترنت</translation> <translation id="9148126808321036104">تسجيل الدخول مرة أخرى</translation> <translation id="9158770349521403363">مشاركة المحتوى فقط</translation> <translation id="9159716826369098114">استعادة مجموعة تضم <ph name="TAB_COUNT" /> علامة تبويب كمجموعة علامات تبويب جديدة في الخلفية</translation> <translation id="9169507124922466868">سجلّ التنقل مفتوح جزئيًا</translation> +<translation id="9183331776983279456">يحذف Chrome تلقائيًا المواقع الإلكترونية التي مر عليها أكثر من 4 أسابيع. وقد يظهر في القائمة مرة أخرى أي موقع إلكتروني تكرِّر زيارته، أو يمكنك منع موقع إلكتروني من اقتراح إعلانات لك.</translation> <translation id="9190276265094487094">سيظهر لك سجل التصفّح على جميع الأجهزة التي تتم مزامنة حسابك معها، ما يعني أنه يمكنك مواصلة التصفّح من حيث توقفت.</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{تمّ إجراء عملية التحقُّق قبل دقيقة واحدة.}zero{تمّ إجراء عملية التحقُّق قبل # دقيقة.}two{تمّ إجراء عملية التحقُّق قبل دقيقتَين.}few{تمّ إجراء عملية التحقُّق قبل # دقائق.}many{تمّ إجراء عملية التحقُّق قبل # دقيقة.}other{تمّ إجراء عملية التحقُّق قبل # دقيقة.}}</translation> <translation id="9204836675896933765">ملف واحد متبقٍ</translation> @@ -1508,6 +1528,7 @@ <translation id="96681097142096641">هل تريد عرض صفحة مبسّطة؟</translation> <translation id="968900484120156207">يتم عرض الصفحات التي تزورها هنا.</translation> <translation id="970715775301869095">عدد الدقائق المتبقية: <ph name="MINUTES" /></translation> +<translation id="978317418833355355">يمكنك حظر المواقع الإلكترونية التي لا تريدها. يحذف Chrome أيضًا تلقائيًا من القائمة المواقع الإلكترونية التي مر عليها أكثر من 4 أسابيع. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> <translation id="981121421437150478">بلا اتصال</translation> <translation id="983192555821071799">إغلاق جميع علامات التبويب</translation> <translation id="987264212798334818">عام</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb index 82713a7..f2dfb5b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Llista de lectura</translation> <translation id="1266864766717917324">No s'ha pogut compartir <ph name="CONTENT_TYPE" />.</translation> +<translation id="1273937721055267968">Bloqueja <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Toca per desplegar</translation> <translation id="1285310382777185058">Canvia d'idioma</translation> <translation id="1291207594882862231">Esborra l'historial, les galetes, les dades dels llocs web, la memòria cau, etc.</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Activitat al web i en aplicacions</translation> <translation id="2239812875700136898">Controla les teves històries amb el botó Opcions per a Discover</translation> <translation id="2248941474044011069">Les contrasenyes s'encripten al dispositiu abans de desar-les al gestor de contrasenyes de Google</translation> +<translation id="2249635629516220541">Personalitza la informació que utilitzen els llocs web per mostrar-te anuncis</translation> <translation id="2259659629660284697">Exporta les contrasenyes…</translation> <translation id="2276231040576210443">Sempre pots anar a la <ph name="BEGIN_LINK1" />configuració<ph name="END_LINK1" /> per decidir què vols sincronitzar. És possible que Google personalitzi la Cerca i altres serveis en funció del teu historial.</translation> <translation id="2276696007612801991">Inicia la sessió al teu Compte de Google per comprovar les contrasenyes</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Número de targeta</translation> <translation id="2625189173221582860">S'ha copiat la contrasenya</translation> <translation id="2642087927315268160">El full inferior d'inici de sessió està tancat.</translation> +<translation id="2643064289437760082">Pots suprimir les dades de mesurament d'anuncis en qualsevol moment suprimint les dades de navegació</translation> <translation id="2647434099613338025">Afegeix un idioma</translation> <translation id="2649068648233607930">El navegador està gestionat per <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">L'explicació de la guia de privadesa s'ha tancat</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Obteniu ajuda<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Estàs fent un seguiment del preu</translation> <translation id="3037517125981011456">Mostra sol·licituds per iniciar la sessió a Chrome</translation> +<translation id="3038272154009688107">Mostra tots els llocs web</translation> <translation id="3046945242843292318">Arriba a aquest lloc web més ràpidament la propera vegada</translation> <translation id="3055113921564083271">Interessos que has suprimit</translation> <translation id="3055259925215945098">S'ha mogut l'adreça d'interès</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Inicia la sessió a Chrome</translation> <translation id="3285080554353377245">Vídeos sobre com s'utilitza Chrome</translation> <translation id="3290249595466894471">També envia una petita mostra de pàgines, baixades, activitat d'extensions i informació del sistema per ajudar a detectar amenaces noves</translation> +<translation id="3293181007446299124">L'historial de navegació es desa en privat al teu dispositiu i els informes s'envien amb retard per protegir la teva identitat</translation> <translation id="3297344142967351106">Assistència per veu</translation> <translation id="3303414029551471755">Voleu baixar el contingut?</translation> <translation id="3305795716056605962">Tradueix pàgines des del botó Més opcions</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">La sincronització ha deixat de funcionar</translation> <translation id="3976396876660209797">Suprimeix aquesta drecera i torna-la a crear</translation> <translation id="3981902534690264083">Els anunciants poden entendre el rendiment dels anuncis</translation> +<translation id="3985022125189960801">Torna a afegir un lloc web si vols que aparegui al grup de llocs web que poden determinar què t'agrada</translation> <translation id="3985215325736559418">Vols tornar a baixar <ph name="FILE_NAME" />?</translation> <translation id="3987993985790029246">Copia l'enllaç</translation> <translation id="3999683152997576765">Pots veure i suprimir els temes d'interès que els llocs web utilitzen per mostrar-te anuncis. Chrome estima els teus interessos basant-se en l'historial de navegació recent.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">S'està seguint...</translation> <translation id="4335835283689002019">La funció Navegació segura està desactivada</translation> <translation id="4351244548802238354">Tanca el quadre de diàleg</translation> +<translation id="4369735607080757018">Es comparteixen tipus de dades limitats entre llocs web per mesurar el rendiment dels anuncis, com ara l'hora del dia en què se t'ha mostrat un anunci</translation> <translation id="4378154925671717803">Telèfon</translation> <translation id="438319986296050901">Comparteix només la targeta</translation> <translation id="4384468725000734951">S'utilitza Sogou per a la cerca</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Amb Wi‑Fi i dades mòbils</translation> <translation id="4508528996305412043">El menú de la targeta del tauler està obert</translation> <translation id="4508642716788467538">Tria l'idioma</translation> +<translation id="4509501256689523862">El fet que els anuncis que veus mentre navegues es personalitzin o no dependrà d'aquesta opció de configuració, dels <ph name="BEGIN_LINK_1" />temes dels anuncis<ph name="END_LINK_1" />, de la <ph name="BEGIN_LINK_2" />configuració de les galetes<ph name="END_LINK_2" /> i de si el lloc web que estàs visitant personalitza els anuncis</translation> <translation id="4513387527876475750">{DAYS,plural, =1{fa # dia}other{fa # dies}}</translation> <translation id="451872707440238414">Cerca a les adreces d'interès</translation> <translation id="4521489764227272523">Les dades seleccionades s'han suprimit de Chrome i dels dispositius sincronitzats. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">L'àlies no pot incloure nombres</translation> <translation id="4663499661119906179">Consulta els llocs web i les històries que més visites</translation> <translation id="4663756553811254707">S'han suprimit <ph name="NUMBER_OF_BOOKMARKS" /> adreces d'interès</translation> +<translation id="4668279686271488041">Les dades de mesurament d'anuncis se suprimeixen regularment del dispositiu</translation> <translation id="4668347365065281350">Totes les dades que emmagatzemen els llocs web, com ara les galetes i altres dades emmagatzemades localment</translation> <translation id="4678082183394354975">El tema fosc per als llocs web està activat a Chrome</translation> <translation id="4684427112815847243">Sincronitza-ho tot</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Aviat, quan obris una pestanya nova, veuràs històries de: <ph name="SITE_NAME" />. Els llocs web que segueixes es desen al teu Compte de Google. Pots gestionar-los a la configuració de Discover.</translation> <translation id="5091249083535528968">Dades d'ús ampliades</translation> <translation id="509429900233858213">S'ha produït un error.</translation> +<translation id="5097349930204431044">Els llocs web que visites poden determinar què t'agrada i, després, suggerir-te anuncis mentre continues navegant</translation> <translation id="5099845111805573968">Quan seleccionis "lloc web per a ordinadors" una vegada, aquesta opció s'aplicarà al lloc web cada vegada que el visitis.</translation> <translation id="5102401324271069229">Si un lloc web prova de robar-te la contrasenya o si baixes un fitxer maliciós, és possible que Chrome n'enviï els URL, inclosos fragments de contingut de les pàgines, a Navegació segura</translation> <translation id="510275257476243843">Queda 1 hora</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Pestanya</translation> <translation id="666731172850799929">Obre a <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Copia la imatge</translation> +<translation id="6672917148207387131">Afegeix <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Per iniciar la sincronització, introdueix la frase de contrasenya</translation> <translation id="6676840375528380067">Vols esborrar les dades de Chrome del dispositiu?</translation> <translation id="6676927815633975364">Inicia la sessió en aquest lloc web i a Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Permet un interès o un lloc web si creus que els anuncis relacionats amb l'element et serien útils</translation> <translation id="6738516213925468394">Les teves dades es van encriptar el dia <ph name="TIME" /> amb la teva <ph name="BEGIN_LINK" />frase de contrasenya de sincronització<ph name="END_LINK" />. Introdueix-la per començar la sincronització.</translation> <translation id="6738867403308150051">S'està baixant...</translation> +<translation id="674388916582496364">És habitual que els llocs web que visites recordin coses que t'interessen per personalitzar la teva experiència. Els llocs web també poden emmagatzemar informació a Chrome sobre els teus interessos.</translation> <translation id="6751521182688001123">Obre ràpidament una pestanya nova. Mantingues premuda aquesta drecera per editar-la.</translation> <translation id="6756507620369789050">Comparteix suggeriments</translation> <translation id="6767294960381293877">La llista de dispositius amb què es compartirà una pestanya s'ha obert a mitja alçada.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Suprimeix les adreces d'interès</translation> <translation id="696447261358045621">Surt del mode d'incògnit</translation> <translation id="6971862865055170158">No aprovis</translation> +<translation id="6978717888677691380">Llocs web que has bloquejat</translation> <translation id="6979737339423435258">Sempre</translation> <translation id="6987047470128880212">El mode d'incògnit no està disponible en aquest dispositiu</translation> <translation id="6995899638241819463">Rep un advertiment si les contrasenyes queden exposades en l'àmbit d'una violació de les dades</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Marca estilitzada el dia <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Comprova que <ph name="TARGET_DEVICE_NAME" /> tingui la sincronització activada a Chrome</translation> <translation id="7252076891734325316">Acosta el telèfon a l'ordinador</translation> +<translation id="7260367682327802201">És possible que el teu dispositiu Android inclogui una opció de configuració similar. Si el mesurament d'anuncis està activat a Chrome i al teu dispositiu Android, les empreses podrien mesurar l'efectivitat d'un anunci als llocs web que visites i a les aplicacions que fas servir.</translation> <translation id="727288900855680735">Vols enviar <ph name="ONE_TIME_CODE" /> a <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Lloc bloquejat</translation> <translation id="7286572596625053347">Vols canviar <ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Els articles es mostren aquí i els pots llegir fins i tot sense connexió</translation> <translation id="768232549260819724">S'ha copiat el GIF</translation> <translation id="7682724950699840886">Segueix aquests consells: comprova que hi hagi prou espai al dispositiu i prova d'exportar les contrasenyes de nou.</translation> +<translation id="7686086654630106285">Més informació sobre els anuncis suggerits per llocs web</translation> <translation id="768618399695552958">Algunes de les pàgines que visites estan precarregades. És possible que les pàgines es precarreguin a través dels servidors de Google quan s'enllacin des d'un lloc web de Google.</translation> <translation id="7698359219371678927">Crea una adreça electrònica a <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completa automàticament les cerques i els URL</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Introdueix un URL amb el format correcte</translation> <translation id="854522910157234410">Obre aquesta pàgina</translation> <translation id="8551513938758868521">Bloqueja les pestanyes d'incògnit després de sortir de Chrome</translation> +<translation id="8559961053328923750">Chrome limita la quantitat total de dades que els llocs web poden compartir a través del navegador per mesurar el rendiment dels anuncis</translation> <translation id="8559990750235505898">Proposa traduir les pàgines en altres idiomes</translation> <translation id="8560602726703398413">Troba la teva llista de lectura a les adreces d'interès</translation> <translation id="8562452229998620586">Les contrasenyes desades apareixeran aquí.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">S'està processant la sol·licitud</translation> <translation id="8788265440806329501">L'historial de navegació està tancat</translation> <translation id="8788968922598763114">Torna a obrir l'última pestanya tancada</translation> +<translation id="879027982257117598">Per exemple, si visites un lloc web que ven sabatilles de curses de fons, és possible que el lloc web decideixi que t'interessa córrer maratons. Més endavant, si visites un altre lloc web, aquest altre lloc web et pot mostrar un anunci de sabatilles per córrer suggerit pel primer lloc web.</translation> <translation id="8798449543960971550">Llegits</translation> <translation id="8803526663383843427">Quan està activada</translation> <translation id="8805097383171548551">Per escanejar un codi QR, utilitza un dispositiu amb càmera.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Tria un altre proveïdor</translation> <translation id="8998729206196772491">Estàs iniciant la sessió amb un compte gestionat per <ph name="MANAGED_DOMAIN" /> i estàs donant a l'administrador el control de les teves dades de Chrome. Les dades passaran a estar vinculades a aquest compte permanentment. Si tanques la sessió de Chrome, se suprimiran les teves dades d'aquest dispositiu, però continuaran emmagatzemades al teu compte de Google.</translation> <translation id="9022774213089566801">Visitats amb freqüència</translation> +<translation id="9022871169049522985">Els llocs web i els anunciants poden mesurar el rendiment dels seus anuncis</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vídeo}other{# vídeos}}</translation> <translation id="9042893549633094279">Privadesa i seguretat</translation> <translation id="9050666287014529139">Frase de contrasenya</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">el telèfon com a clau de seguretat</translation> <translation id="9108808586816295166">És possible que el DNS segur no estigui disponible en tot moment</translation> <translation id="9128984223251192329">La sol·licitud de Privacy Sandbox s'ha obert a mitja alçada</translation> +<translation id="9131209053278896908">Els llocs web bloquejats es mostren aquí</translation> <translation id="9133397713400217035">Explora sense connexió</translation> <translation id="9148126808321036104">Torna a iniciar la sessió</translation> <translation id="9158770349521403363">Comparteix només el contingut</translation> <translation id="9159716826369098114">Restaura el grup de <ph name="TAB_COUNT" /> pestanyes com un nou grup de pestanyes en segon pla.</translation> <translation id="9169507124922466868">L'historial de navegació està obert fins a la meitat</translation> +<translation id="9183331776983279456">Chrome suprimeix automàticament els llocs web que tenen més de 4 setmanes. És possible que un lloc web que tornis a visitar aparegui de nou a la llista. També pots bloquejar un lloc web per impedir que et suggereixi anuncis.</translation> <translation id="9190276265094487094">Tindràs l'historial en tots els dispositius sincronitzats perquè puguis continuar el que estaves fent</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{S'ha comprovat fa 1 minut}other{S'ha comprovat fa # minuts}}</translation> <translation id="9204836675896933765">Queda 1 fitxer</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Vols mostrar la pàgina simplificada?</translation> <translation id="968900484120156207">Les pàgines que visitis es mostraran aquí</translation> <translation id="970715775301869095">Queden <ph name="MINUTES" /> minuts</translation> +<translation id="978317418833355355">Pots bloquejar els llocs web que no t'interessen. Chrome també suprimeix automàticament els llocs web de la llista que tenen més de 4 setmanes. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation> <translation id="981121421437150478">Sense connexió</translation> <translation id="983192555821071799">Tanca totes les pestanyes</translation> <translation id="987264212798334818">General</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb index 5a4a58c..b900a86 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Rhestr ddarllen</translation> <translation id="1266864766717917324">Ni ellid rhannu <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Rhwystro <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Tapiwch i ehangu</translation> <translation id="1285310382777185058">Newid iaith</translation> <translation id="1291207594882862231">Clirio hanes, cwcis, data gwefan, storfa…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Gweithgarwch ar y We ac Apiau</translation> <translation id="2239812875700136898">Rheoli'ch straeon o'r botwm Dewisiadau ar gyfer Discover</translation> <translation id="2248941474044011069">Mae eich cyfrineiriau yn cael eu hamgryptio ar eich dyfais cyn iddynt gael eu cadw i Reolwr Cyfrineiriau Google</translation> +<translation id="2249635629516220541">Addaswch y wybodaeth a ddefnyddir gan wefannau i ddangos hysbysebion i chi</translation> <translation id="2259659629660284697">Allforio cyfrineiriau…</translation> <translation id="2276231040576210443">Gallwch bob amser ddewis beth i'w gysoni yn y <ph name="BEGIN_LINK1" />gosodiadau<ph name="END_LINK1" />. Gall Google bersonoleiddio Search a gwasanaethau eraill yn seiliedig ar eich hanes.</translation> <translation id="2276696007612801991">Mewngofnodwch i'ch cyfrif Google i wirio eich cyfrineiriau</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Rhif y cerdyn</translation> <translation id="2625189173221582860">Copïwyd cyfrinair</translation> <translation id="2642087927315268160">Mae'r ddalen waelod mewngofnodi ar gau.</translation> +<translation id="2643064289437760082">Gallwch bob amser ddileu data mesur hysbyseb wrth ddileu eich data pori</translation> <translation id="2647434099613338025">Ychwanegu iaith</translation> <translation id="2649068648233607930">Rheolir eich porwr gan <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Esboniad canllaw preifatrwydd ar gau</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Cael help<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Yn dilyn y pris</translation> <translation id="3037517125981011456">Dangos anogwyr i fewngofnodi i Chrome</translation> +<translation id="3038272154009688107">Gweld pob gwefan</translation> <translation id="3046945242843292318">Cyrraedd y wefan hon yn gyflymach y tro nesaf</translation> <translation id="3055113921564083271">Diddordebau y gwnaethoch eu tynnu</translation> <translation id="3055259925215945098">Wedi symud y nod tudalen</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Mewngofnodi i Chrome</translation> <translation id="3285080554353377245">Fideos am sut i ddefnyddio Chrome</translation> <translation id="3290249595466894471">Hefyd yn anfon sampl fach o dudalennau, lawrlwythiadau, gweithgarwch estyniadau, a gwybodaeth system i helpu i ddarganfod bygythiadau newydd</translation> +<translation id="3293181007446299124">Mae eich hanes pori yn cael ei gadw'n breifat ar eich dyfais ac anfonir adroddiadau gydag oedi er mwyn diogelu eich hunaniaeth</translation> <translation id="3297344142967351106">Cymorth llais</translation> <translation id="3303414029551471755">Parhau i lawrlwytho'r cynnwys?</translation> <translation id="3305795716056605962">Cyfieithwch dudalennau o'r botwm Rhagor o Opsiynau</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Mae cysoni wedi stopio gweithio</translation> <translation id="3976396876660209797">Tynnwch ac ail-grëwch y llwybr byr hwn</translation> <translation id="3981902534690264083">Gall hysbysebwyr ddeall sut mae hysbysebion yn perfformio</translation> +<translation id="3985022125189960801">Ychwanegu gwefan yn ôl os ydych ei heisiau yn y gronfa o wefannau sy'n gallu dyfalu beth rydych yn ei hoffi</translation> <translation id="3985215325736559418">Ydych chi am lawrlwytho <ph name="FILE_NAME" /> eto?</translation> <translation id="3987993985790029246">Copïo'r ddolen</translation> <translation id="3999683152997576765">Gallwch weld a dileu pynciau o ddiddordeb y mae gwefannau'n eu defnyddio i ddangos hysbysebion i chi. Mae Chrome yn amcangyfrif eich diddordebau yn seiliedig ar eich hanes pori diweddar.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Yn dilyn...</translation> <translation id="4335835283689002019">Mae Pori'n Ddiogel wedi'i ddiffodd</translation> <translation id="4351244548802238354">Cau deialog</translation> +<translation id="4369735607080757018">Rhennir mathau cyfyngedig o ddata rhwng gwefannau i fesur perfformiadau eu hysbysebion, megis yr amser o'r dydd a ddangoswyd hysbyseb i chi</translation> <translation id="4378154925671717803">Ffôn</translation> <translation id="438319986296050901">Rhannu cerdyn yn unig</translation> <translation id="4384468725000734951">Wrthi'n defnyddio Sogou i chwilio</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Ar Wi-Fi a data symudol</translation> <translation id="4508528996305412043">Mae dewislen cerdyn ffrwd ar agor</translation> <translation id="4508642716788467538">Dewiswch eich iaith</translation> +<translation id="4509501256689523862">Wrth i chi bori, mae p'un a yw hysbyseb a welwch wedi'i phersonoleiddio yn dibynnu ar y gosodiad hwn, <ph name="BEGIN_LINK_1" />Pynciau hysbysebion<ph name="END_LINK_1" />, eich <ph name="BEGIN_LINK_2" />gosodiadau cwcis<ph name="END_LINK_2" />, ac os yw'r wefan rydych yn edrych arni yn personoleiddio hysbysebion</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# diwrnod yn ôl}zero{# diwrnod yn ôl}two{# ddiwrnod yn ôl}few{# diwrnod yn ôl}many{# diwrnod yn ôl}other{# diwrnod yn ôl}}</translation> <translation id="451872707440238414">Chwilio eich nodau tudalen</translation> <translation id="4521489764227272523">Mae'r data a ddewiswyd wedi'u tynnu o Chrome a'ch dyfeisiau sydd wedi'u cysoni. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Ni all llysenw gynnwys rhifau</translation> <translation id="4663499661119906179">Gweld y gwefannau a'r straeon gorau i chi</translation> <translation id="4663756553811254707">Mae <ph name="NUMBER_OF_BOOKMARKS" /> nod tudalen wedi'u dileu</translation> +<translation id="4668279686271488041">Mae data mesur hysbyseb yn cael eu dileu yn rheolaidd o'ch dyfais</translation> <translation id="4668347365065281350">Yr holl ddata sy'n cael eu cadw gan wefannau, gan gynnwys cwcis a'r holl ddata eraill sy'n cael eu cadw'n lleol</translation> <translation id="4678082183394354975">Mae'r thema dywyll ar gyfer gwefannau ymlaen yn Chrome</translation> <translation id="4684427112815847243">Cysoni popeth</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Yn fuan, byddwch yn gweld straeon o <ph name="SITE_NAME" /> pan fyddwch yn agor tab newydd. Mae gwefannau rydych yn eu dilyn yn cael eu cadw yn eich cyfrif Google. Gallwch eu rheoli yn y gosodiadau Discover.</translation> <translation id="5091249083535528968">Data defnydd estynedig</translation> <translation id="509429900233858213">Bu gwall.</translation> +<translation id="5097349930204431044">Gall gwefannau rydych yn ymweld â nhw benderfynu beth rydych yn ei hoffi ac yna awgrymu hysbysebion wrth i chi barhau i bori</translation> <translation id="5099845111805573968">Pan fyddwch yn dewis gwefan bwrdd gwaith unwaith, mae'r gosodiad yn cael ei gymhwyso i'r wefan bob tro y byddwch yn ymweld</translation> <translation id="5102401324271069229">Os yw gwefan yn ceisio dwyn eich cyfrinair, neu pan fyddwch yn lawrlwytho ffeil niweidiol, gall Chrome anfon cyfeiriadau URL, gan gynnwys darnau o gynnwys tudalen, i Pori'n Ddiogel</translation> <translation id="510275257476243843">1 awr ar ôl</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Tab</translation> <translation id="666731172850799929">Agor yn <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Copïo’r llun</translation> +<translation id="6672917148207387131">Ychwanegu <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">I ddechrau cysoni, rhowch eich cyfrinymadrodd</translation> <translation id="6676840375528380067">Clirio'ch data Chrome o'r ddyfais hon?</translation> <translation id="6676927815633975364">Mewngofnodi i'r wefan hon a Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Caniatáu diddordeb neu wefan os ydych yn meddwl y byddai hysbysebion sy'n gysylltiedig â nhw yn ddefnyddiol i chi</translation> <translation id="6738516213925468394">Amgryptiwyd eich data â'ch <ph name="BEGIN_LINK" />cyfrinymadrodd cysoni<ph name="END_LINK" /> ar <ph name="TIME" />. Rhowch eich cyfrinymadrodd i ddechrau cysoni.</translation> <translation id="6738867403308150051">Wrthi'n lawrlwytho…</translation> +<translation id="674388916582496364">Mae'n gyffredin i wefannau y byddwch yn ymweld â nhw gofio pethau y mae gennych ddiddordeb ynddynt, i bersonoleiddio'ch profiad. Gall gwefannau hefyd storio gwybodaeth am eich diddordebau gyda Chrome.</translation> <translation id="6751521182688001123">Agor tab newydd yn gyflym. I olygu'r llwybr byr hwn, cyffwrddwch a daliwch.</translation> <translation id="6756507620369789050">Rhannu adborth</translation> <translation id="6767294960381293877">Agorodd rhestr o ddyfeisiau i rannu tab â nhw ar hanner uchder.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Dileu nodau tudalen</translation> <translation id="696447261358045621">Gadael y modd Anhysbys</translation> <translation id="6971862865055170158">Peidio â chymeradwyo</translation> +<translation id="6978717888677691380">Gwefannau rydych wedi'u rhwystro</translation> <translation id="6979737339423435258">Pob un</translation> <translation id="6987047470128880212">Nid yw Anhysbys ar gael ar y ddyfais hon</translation> <translation id="6995899638241819463">Yn eich rhybuddio os yw cyfrineiriau'n cael eu datgelu mewn tor data</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Amlygu sydd wedi'i arddullio <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Gwnewch yn siŵr bod cysoni yn <ph name="TARGET_DEVICE_NAME" /> wedi'i droi ymlaen yn Chrome.</translation> <translation id="7252076891734325316">Rhowch eich ffôn yn agos at y cyfrifiadur</translation> +<translation id="7260367682327802201">Gall eich dyfais Android gynnwys gosodiad tebyg. Os caiff Mesur Hysbysebion ei droi ymlaen yn Chrome ac ar eich dyfais Android, mae'n bosib y gall cwmni fesur effeithiolrwydd hysbyseb ar draws gwefannau rydych yn ymweld â nhw a'r apiau rydych yn eu defnyddio.</translation> <translation id="727288900855680735">Cyflwyno <ph name="ONE_TIME_CODE" /> i <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Mae gwefan wedi'i hatal</translation> <translation id="7286572596625053347">Newid <ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Mae erthyglau yn ymddangos yma, y gallwch eu darllen hyd yn oed pan fyddwch all-lein</translation> <translation id="768232549260819724">Copïwyd GIF</translation> <translation id="7682724950699840886">Rhowch gynnig ar yr argymhellion canlynol: gwnewch yn siŵr bod digon o le ar eich dyfais, rhowch gynnig arall ar allforio.</translation> +<translation id="7686086654630106285">Rhagor am hysbysebion a awgrymir gan wefan</translation> <translation id="768618399695552958">Mae rhai o'r tudalennau rydych yn ymweld â nhw wedi'u rhaglwytho. Gellir rhaglwytho tudalennau drwy weinyddion Google pan fyddant wedi'u cysylltu o wefan Google.</translation> <translation id="7698359219371678927">Crëwch e-bost yn <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Awtogwblhau chwiliadau a chyfeiriadau URL</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Rhowch URL sydd wedi'i fformatio'n gywir</translation> <translation id="854522910157234410">Agor y dudalen hon</translation> <translation id="8551513938758868521">Cloi tabiau Anhysbys pan fyddwch yn cau Chrome</translation> +<translation id="8559961053328923750">Mae Chrome yn cyfyngu ar gyfanswm y data y gall gwefannau eu rhannu drwy'r porwr er mwyn mesur perfformiad hysbysebion</translation> <translation id="8559990750235505898">Cynnig cyfieithu tudalennau mewn ieithoedd eraill</translation> <translation id="8560602726703398413">Dewch o hyd i'ch rhestr ddarllen yn Nodau Darllen</translation> <translation id="8562452229998620586">Bydd cyfrineiriau sydd wedi'u cadw yn ymddangos yma.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Wrthi'n prosesu'r cais</translation> <translation id="8788265440806329501">Mae hanes llywio ar gau</translation> <translation id="8788968922598763114">Ailagor y tab a gaewyd diwethaf</translation> +<translation id="879027982257117598">Er enghraifft, os ydych yn ymweld â gwefan sy'n gwerthu esgidiau rhedeg pellter hir, mae'n bosib y bydd y wefan yn penderfynu bod gennych ddiddordeb mewn rhedeg marathonau. Yn ddiweddarach, os byddwch yn ymweld â gwefan wahanol, bydd y wefan honno yn dangos hysbyseb i chi ar gyfer esgidiau rhedeg a awgrymir gan y wefan gyntaf.</translation> <translation id="8798449543960971550">Wedi darllen</translation> <translation id="8803526663383843427">Pan fydd ymlaen</translation> <translation id="8805097383171548551">I sganio Cod QR, defnyddiwch ddyfais gyda chamera.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Dewiswch ddarparwr arall</translation> <translation id="8998729206196772491">Rydych yn mewngofnodi gyda chyfrif a reolir gan <ph name="MANAGED_DOMAIN" /> ac yn rhoi rheolaeth dros eich data Chrome i'w weinyddwr. Bydd eich data yn cael eu cysylltu'n barhaol i'r cyfrif hwn. Bydd allgofnodi o Chrome yn dileu eich data o'r ddyfais hon, ond bydd yn parhau i gael ei storio yn eich Cyfrif Google.</translation> <translation id="9022774213089566801">Ymwelir yn aml</translation> +<translation id="9022871169049522985">Gall gwefannau a hysbysebwyr fesur perfformiad eu hysbysebion</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Fideo}zero{# Fideo}two{# Fideo}few{# Fideo}many{# Fideo}other{# Fideo}}</translation> <translation id="9042893549633094279">Preifatrwydd a diogelwch</translation> <translation id="9050666287014529139">Cyfrinymadrodd</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Cymorth Defnyddio Ffôn fel Allwedd Ddiogelwch</translation> <translation id="9108808586816295166">Mae'n bosib na fydd y DNS diogel ar gael o hyd</translation> <translation id="9128984223251192329">Anogwr Privacy Sandbox wedi'i agor ar hanner uchder</translation> +<translation id="9131209053278896908">Bydd gwefannau sydd wedi'u rhwystro yn ymddangos yma</translation> <translation id="9133397713400217035">Archwilio All-lein</translation> <translation id="9148126808321036104">Mewngofnodwch eto</translation> <translation id="9158770349521403363">Rhannu cynnwys yn unig</translation> <translation id="9159716826369098114">Adfer grŵp tabiau o <ph name="TAB_COUNT" /> o dabiau fel grŵp tabiau cefndirol newydd.</translation> <translation id="9169507124922466868">Mae hanes llywio wedi'i hanner agor</translation> +<translation id="9183331776983279456">Mae Chrome yn dileu gwefannau yn awtomatig sy'n hŷn na 4 wythnos. Mae'n bosib y bydd gwefan y byddwch yn ymweld â hi eto yn ailymddangos ar y rhestr. Neu gallwch rwystro gwefan rhag awgrymu hysbysebion i chi.</translation> <translation id="9190276265094487094">Bydd gennych eich hanes ar eich holl ddyfeisiau sydd wedi'u cysoni felly gallwch barhau â'r hyn yr oeddech yn ei wneud</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Gwiriwyd 1 funud yn ôl}zero{Gwiriwyd # munud yn ôl}two{Gwiriwyd # funud yn ôl}few{Gwiriwyd # munud yn ôl}many{Gwiriwyd # munud yn ôl}other{Gwiriwyd # munud yn ôl}}</translation> <translation id="9204836675896933765">1 ffeil yn weddill</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Gweld tudalen sydd wedi'i symleiddio?</translation> <translation id="968900484120156207">Mae'r tudalennau yr ymwelwch â nhw yn ymddangos yma</translation> <translation id="970715775301869095"><ph name="MINUTES" /> o funudau ar ôl</translation> +<translation id="978317418833355355">Gallwch rwystro gwefannau nad ydych eu heisiau. Mae Chrome hefyd yn dileu gwefannau yn awtomatig o'r rhestr sy'n hŷn na 4 wythnos. <ph name="BEGIN_LINK" />Dysgu rhagor<ph name="END_LINK" /></translation> <translation id="981121421437150478">All-lein</translation> <translation id="983192555821071799">Cau pob tab</translation> <translation id="987264212798334818">Cyffredinol</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index dadbeae..8affb23 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -357,6 +357,7 @@ <translation id="2979025552038692506">Valgt inkognitofane</translation> <translation id="2979639724566107830">Åbn i nyt vindue</translation> <translation id="2981364137500752533">Du kan have op til 5 vinduer.</translation> +<translation id="2983102365694924129">Baseret på din aktivitet på et website. Denne indstilling er deaktiveret.</translation> <translation id="2984978667043170458">Medtag omgivende tekst i Google-søgninger</translation> <translation id="2987620471460279764">Tekst, der er delt fra en anden enhed</translation> <translation id="2989523299700148168">Besøgt for nylig</translation> @@ -369,6 +370,7 @@ <translation id="301080557829842765">Guide til privatlivsindstillinger</translation> <translation id="3016635187733453316">Sørg for, at din enhed har forbindelse til internettet</translation> <translation id="3026955690410463085">Medtag link</translation> +<translation id="3027644380269727216">Baseret på din aktivitet på et website. Denne indstilling er aktiveret.</translation> <translation id="3029276696788198026">Ingen forudindlæsning</translation> <translation id="3029704984691124060">Adgangssætningerne stemmer ikke overens</translation> <translation id="3031225630520268969">Brugerflade for samtykke i forbindelse med stemmesøgning i Assistent</translation> @@ -575,6 +577,7 @@ <translation id="4162867837470729563">Listen over delingsindstillinger er åbnet i fuld højde.</translation> <translation id="4170011742729630528">Tjenesten er ikke tilgængelig. Prøv igen senere.</translation> <translation id="4177222230309051052">Få alle dine bogmærker</translation> +<translation id="4177501066905053472">Annonceemner</translation> <translation id="4181841719683918333">Sprog</translation> <translation id="4195643157523330669">Åbn på ny fane</translation> <translation id="4196597275619698563">Opret kort</translation> @@ -659,6 +662,7 @@ <translation id="4678082183394354975">Mørkt tema på websites er aktiveret i Chrome</translation> <translation id="4684427112815847243">Synkroniser alt</translation> <translation id="4685741273709472646">Vælg fra rullelisten</translation> +<translation id="4687718960473379118">Foreslåede annoncer fra websites</translation> <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> mere}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> mere}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> mere}}</translation> <translation id="4699172675775169585">Billeder og filer, der er gemt i cache</translation> <translation id="4719927025381752090">Tilbyd at oversætte</translation> @@ -937,6 +941,7 @@ <translation id="6193448654517602979">Vælg faner</translation> <translation id="6196315980958524839">Adgangskoder gemmes i Google Adgangskodeadministrator på denne enhed</translation> <translation id="6202812185118613467">Log ind igen for at synkronisere</translation> +<translation id="6205314730813004066">Annoncer og privatliv</translation> <translation id="6210748933810148297">Ikke <ph name="EMAIL" />?</translation> <translation id="6211386937064921208">Forhåndsvisning af denne side</translation> <translation id="6221633008163990886">Lås op for at eksportere dine adgangskoder</translation> @@ -1167,6 +1172,7 @@ <translation id="7375125077091615385">Type:</translation> <translation id="7376560087009844242">Medtag mere af sideteksten for at se bedre resultater, når du bruger Tryk for at søge. Du kan altid gå til <ph name="BEGIN_LINK" />indstillingerne<ph name="END_LINK" /> for at ændre dette.</translation> <translation id="7379900596734708416">Mørkt tema på websites er tilgængeligt</translation> +<translation id="7388615499319468910">Websites og annoncører kan få indblik i, hvordan annoncer klarer sig. Denne indstilling er deaktiveret.</translation> <translation id="7400418766976504921">Webadresse</translation> <translation id="7403691278183511381">Førstegangsoplevelse af Chrome</translation> <translation id="7411224099004328643">Google-kontoens bruger</translation> @@ -1178,6 +1184,7 @@ <translation id="7443901082822119557">Når du er i inkognitotilstand, kan websites ikke bruge dine cookies til at se din browseraktivitet på forskellige websites, f.eks. til at tilpasse annoncer. Funktioner på visse websites virker muligvis ikke.</translation> <translation id="7453467225369441013">Logger dig ud af de fleste websites. Du bliver ikke logget ud af din Google-konto.</translation> <translation id="7454641608352164238">Der er ikke nok plads</translation> +<translation id="7455988709578031708">Baseret på din browserhistorik. Denne indstilling er aktiveret.</translation> <translation id="7456774706094330779">Udvidet forudindlæsning</translation> <translation id="7474822150871987353">Læs om emner på websites uden at forlade siden. Vælg ét eller flere ord på siden for at søge efter dem.</translation> <translation id="7475192538862203634">Hvis du ser dette jævnligt, kan du prøve disse <ph name="BEGIN_LINK" />forslag<ph name="END_LINK" />.</translation> @@ -1491,9 +1498,11 @@ <translation id="9081543426177426948">De websites, du besøger, gemmes ikke i inkognitotilstand</translation> <translation id="9086302186042011942">Synkroniserer</translation> <translation id="9086455579313502267">Der kunne ikke opnås adgang til netværket</translation> +<translation id="9099220545925418560">Baseret på din browserhistorik. Denne indstilling er deaktiveret.</translation> <translation id="9100610230175265781">Adgangssætning kræves</translation> <translation id="9101137867221042551">Administration</translation> <translation id="9102803872260866941">Fanen forhåndsvisning er åben</translation> +<translation id="9102864637938129124">Websites og annoncører kan få indblik i, hvordan annoncer klarer sig. Denne indstilling er aktiveret.</translation> <translation id="9104217018994036254">Liste over enheder, der skal deles en fane med.</translation> <translation id="9106148373857059373">Flow til lagring af bogmærker er lukket</translation> <translation id="9108312223223904744">Understøttelse af telefonen som en sikkerhedsnøgle</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb index 824e25b..60d88cc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -223,7 +223,7 @@ <translation id="2230777942707397948">Ventana vacía</translation> <translation id="223356358902285214">Actividad en la Web y en Aplicaciones</translation> <translation id="2239812875700136898">Controla tus historias con el botón Opciones de Discover</translation> -<translation id="2248941474044011069">Tus contraseñas se cifran en tu dispositivo antes de guardarse en el gestor de contraseñas de Google</translation> +<translation id="2248941474044011069">Tus contraseñas se cifran en tu dispositivo antes de guardarse en el Gestor de contraseñas de Google</translation> <translation id="2259659629660284697">Exportar contraseñas…</translation> <translation id="2276231040576210443">Siempre puedes seleccionar qué contenido quieres sincronizar en los <ph name="BEGIN_LINK1" />ajustes<ph name="END_LINK1" />. Google puede personalizar la Búsqueda y otros servicios en función de tu historial.</translation> <translation id="2276696007612801991">Inicia sesión en tu cuenta de Google para comprobar tus contraseñas</translation> @@ -925,7 +925,7 @@ <translation id="6186394685773237175">No se ha encontrado ninguna contraseña vulnerada</translation> <translation id="6192907950379606605">Obtener descripciones</translation> <translation id="6193448654517602979">Selecciona pestañas</translation> -<translation id="6196315980958524839">Las contraseñas se guardan en el gestor de contraseñas de Google en este dispositivo</translation> +<translation id="6196315980958524839">Las contraseñas se guardan en el Gestor de contraseñas de Google en este dispositivo</translation> <translation id="6202812185118613467">Vuelve a iniciar sesión para iniciar la sincronización</translation> <translation id="6210748933810148297">¿No eres <ph name="EMAIL" />?</translation> <translation id="6211386937064921208">Mostrando vista previa de esta página</translation> @@ -1262,7 +1262,7 @@ <translation id="7961015016161918242">Nunca</translation> <translation id="7961926449547174351">Has inhabilitado el acceso al almacenamiento; ve a Ajustes para habilitarlo.</translation> <translation id="7963646190083259054">Proveedor:</translation> -<translation id="7965838025086216108">Puedes usar las contraseñas guardadas en cualquier dispositivo. Se guardan en el gestor de contraseñas de Google de <ph name="ACCOUNT" />.</translation> +<translation id="7965838025086216108">Puedes usar las contraseñas guardadas en cualquier dispositivo. Se guardan en el Gestor de contraseñas de Google de <ph name="ACCOUNT" />.</translation> <translation id="7968014550143838305">Añadido a la lista de lectura</translation> <translation id="7971136598759319605">Activo hace 1 día</translation> <translation id="7975379999046275268">Revisar página <ph name="BEGIN_NEW" />Nuevo<ph name="END_NEW" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb index b930739a..03b224c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google'i Doodle'i vigurlogo: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Lugemisloend</translation> <translation id="1266864766717917324">Üksust <ph name="CONTENT_TYPE" /> ei õnnestunud jagada</translation> +<translation id="1273937721055267968">Blokeeri <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Laiendamiseks puudutage</translation> <translation id="1285310382777185058">Keele muutmine</translation> <translation id="1291207594882862231">Ajaloo, küpsiste, saidiandmete, vahemälu kustutamine …</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Veebi- ja rakendustegevused</translation> <translation id="2239812875700136898">Hallake oma lugusid funktsiooni Discover nupuga Valikud</translation> <translation id="2248941474044011069">Paroolid krüpteeritakse teie seadmes, enne kui need salvestatakse Google'i paroolihaldurisse</translation> +<translation id="2249635629516220541">Kohandage teavet, mida saidid teile reklaamide kuvamiseks kasutavad</translation> <translation id="2259659629660284697">Paroolide eksportimine …</translation> <translation id="2276231040576210443">Jaotises <ph name="BEGIN_LINK1" />Seaded<ph name="END_LINK1" /> saate igal ajal valida, mida sünkroonida. Google võib Otsingut ja muid teenuseid teie ajaloo alusel isikupärastada.</translation> <translation id="2276696007612801991">Paroolide kontrollimiseks logige sisse oma Google'i kontole</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Kaardi number</translation> <translation id="2625189173221582860">Parool on kopeeritud</translation> <translation id="2642087927315268160">Sisselogimise alumine leht on suletud.</translation> +<translation id="2643064289437760082">Saate alati reklaamide mõõtmise andmed kustutada, kustutades oma sirvimisandmed</translation> <translation id="2647434099613338025">Lisa keel</translation> <translation id="2649068648233607930">Teie brauserit haldab <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Privaatsusjuhendi selgitus on suletud</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Küsige abi<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Jälgite hinda</translation> <translation id="3037517125981011456">Kuvatakse viibad Chrome'i sisselogimiseks</translation> +<translation id="3038272154009688107">Kuva kõik saidid</translation> <translation id="3046945242843292318">Liikuge järgmine kord sellele saidile kiiremini</translation> <translation id="3055113921564083271">Teie eemaldatud huvid</translation> <translation id="3055259925215945098">Järjehoidja teisaldati</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome'i sisselogimine</translation> <translation id="3285080554353377245">Videod Chrome'i kasutamise kohta</translation> <translation id="3290249595466894471">Saadab ka lehtede, allalaadimiste, laienduste tegevuse ja süsteemiteabe näidiseid, et aidata uusi ohte tuvastada.</translation> +<translation id="3293181007446299124">Teie sirvimisajalugu hoitakse teie seadmes privaatsena ja aruanded saadetakse viivitusega, et teie isikut saladuses hoida</translation> <translation id="3297344142967351106">Häälabi</translation> <translation id="3303414029551471755">Kas soovite jätkata sisu allalaadimist?</translation> <translation id="3305795716056605962">Tõlkige lehed nupu Rohkem valikuid kaudu</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Sünkroonimine lakkas töötamast</translation> <translation id="3976396876660209797">Eemaldage see otsetee ja looge see uuesti</translation> <translation id="3981902534690264083">Reklaamijad saavad teavet reklaamide toimivuse kohta</translation> +<translation id="3985022125189960801">Lisage sait tagasi, kui soovite selle kaasata saitide hulka, mis teie huvisid prognoosivad</translation> <translation id="3985215325736559418">Kas soovite faili <ph name="FILE_NAME" /> uuesti alla laadida?</translation> <translation id="3987993985790029246">Kop. link</translation> <translation id="3999683152997576765">Saate vaadata ja eemaldada huvipakkuvaid teemasid, mida saidid teile reklaamide näitamiseks kasutavad. Chrome prognoosib teie huvisid teie hiljutise sirvimisajaloo põhjal.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Jälgimine …</translation> <translation id="4335835283689002019">Google'i ohutu sirvimine on väljas</translation> <translation id="4351244548802238354">Sule dialoog</translation> +<translation id="4369735607080757018">Saitide vahel jagatakse teatud tüüpi andmeid, et mõõta nende reklaamide toimivust (nt millal päeva jooksul teile reklaami näidati)</translation> <translation id="4378154925671717803">Telefon</translation> <translation id="438319986296050901">Jagatakse vaid kaarti</translation> <translation id="4384468725000734951">Otsimiseks kasutatakse teenust Sogou</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">WiFi- ja mobiilsidevõrgus</translation> <translation id="4508528996305412043">Voo kaardimenüü on avatud</translation> <translation id="4508642716788467538">Valige oma keel</translation> +<translation id="4509501256689523862">Sirvimisel kuvatavate reklaamide isikupärastamine oleneb sellest seadest, <ph name="BEGIN_LINK_1" />reklaamiteemadest<ph name="END_LINK_1" />, teie <ph name="BEGIN_LINK_2" />küpsisefailide seadetest<ph name="END_LINK_2" /> ja sellest, kas kuvatud sait isikupärastab reklaame.</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# päev tagasi}other{# päeva tagasi}}</translation> <translation id="451872707440238414">Otsi järjehoidjatest</translation> <translation id="4521489764227272523">Valitud andmed eemaldati Chrome'ist ja teie sünkroonitud seadmetest. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Hüüdnimes ei tohi olla numbreid</translation> <translation id="4663499661119906179">Vaadake oma sageli külastatud saite ja populaarseid lugusid</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> järjehoidjat kustutati</translation> +<translation id="4668279686271488041">Reklaamide mõõtmise andmed kustutatakse regulaarselt teie seadmest</translation> <translation id="4668347365065281350">Kõik saitide salvestatud andmed, sh küpsisefailid ja muud kohalikult salvestatud andmed</translation> <translation id="4678082183394354975">Saitide tume teema on Chrome'is sisse lülitatud</translation> <translation id="4684427112815847243">Sünkrooni kõik</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Varsti näete uue vahelehe avamisel lugusid saidilt <ph name="SITE_NAME" />. Jälgitud saidid salvestatakse teie Google'i kontole. Saate neid hallata teenuse Discover seadetes.</translation> <translation id="5091249083535528968">Laiendatud kasutusandmed</translation> <translation id="509429900233858213">Tekkis viga.</translation> +<translation id="5097349930204431044">Teie külastatavad saidid saavad tuvastada, mis teile meeldib, ja siis sirvimise jätkamisel reklaame soovitada</translation> <translation id="5099845111805573968">Kui valite ühe korra arvutisaidi, rakendatakse seade saidi jaoks ka järgmistel külastuskordadel</translation> <translation id="5102401324271069229">Kui sait üritab teie parooli varastada või laadite alla kahjuliku faili, võib Chrome saata URL-id ja lehe sisu osad teenusele Google'i ohutu sirvimine</translation> <translation id="510275257476243843">Jäänud on 1 tund</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Vaheleht</translation> <translation id="666731172850799929">Ava rakenduses <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Kopeeri kujutis</translation> +<translation id="6672917148207387131">Lisa <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Sünkroonimise alustamiseks sisestage oma parool</translation> <translation id="6676840375528380067">Kas kustutada sellest seadmest Chrome'i andmed?</translation> <translation id="6676927815633975364">Logige sellele saidile ja Chrome'i sisse</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Lubage huvi või sait, kui arvate, et sellega seotud reklaamid oleksid teile kasulikud</translation> <translation id="6738516213925468394">Teie andmed krüpteeriti teie <ph name="BEGIN_LINK" />sünkroonimisparooliga<ph name="END_LINK" /> kuupäeval <ph name="TIME" />. Sisestage see sünkroonimise alustamiseks.</translation> <translation id="6738867403308150051">Allalaadimine ...</translation> +<translation id="674388916582496364">On tavapärane, et teie külastatavad saidid jätavad meelde asju, mis teile huvi pakuvad, et teie kasutuskogemust isikupärastada. Saidid võivad ka talletada Chrome'i teavet teie huvide kohta.</translation> <translation id="6751521182688001123">Uue vahelehe kiire avamine. Selle otsetee muutmiseks puudutage pikalt.</translation> <translation id="6756507620369789050">Tagasiside jagamine</translation> <translation id="6767294960381293877">Vahelehe jagamise seadmete loend (poolel kõrgusel avatud).</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Kustuta järjehoidjad</translation> <translation id="696447261358045621">Lahkumine inkognito režiimist</translation> <translation id="6971862865055170158">Ära kiida heaks</translation> +<translation id="6978717888677691380">Blokeeritud saidid</translation> <translation id="6979737339423435258">Algusest</translation> <translation id="6987047470128880212">Inkognito ei ole selles seadmes saadaval</translation> <translation id="6995899638241819463">Hoiata mind, kui paroolid andmetega seotud rikkumise käigus avalikustatakse</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Stiliseeritud esiletõst kuupäevast <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Veenduge, et seadmes <ph name="TARGET_DEVICE_NAME" /> oleks Chrome'i sünkroonimine sisse lülitatud</translation> <translation id="7252076891734325316">Asetage telefon arvuti lähedale</translation> +<translation id="7260367682327802201">Teie Android-seadmes võib olla sarnane seade. Kui reklaamide mõõtmine on Chrome'is ja teie Android-seadmes sisse lülitatud, võib ettevõttel olla võimalik mõõta reklaami tõhusust veebisaitidel, mida külastate, ja rakendustes, mida kasutate.</translation> <translation id="727288900855680735">Kas saata kood <ph name="ONE_TIME_CODE" /> saidile <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Blokeeritud sait</translation> <translation id="7286572596625053347">Kas muuta keelt <ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Artiklid kuvatakse siin ja saate neid lugeda ka võrguühenduseta</translation> <translation id="768232549260819724">GIF on kopeeritud</translation> <translation id="7682724950699840886">Järgige neid nõuandeid: veenduge, et seadmes oleks piisavalt ruumi, seejärel proovige uuesti eksportida.</translation> +<translation id="7686086654630106285">Lisateave saidi soovitatud reklaamide kohta</translation> <translation id="768618399695552958">Mõned teie külastatavad lehed on eellaaditud. Kui lehed on lingitud Google'i saidilt, võidakse need eellaadida Google'i serverite kaudu.</translation> <translation id="7698359219371678927">Looge meil rakenduses <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Otsingute ja URL-ide automaatne täitmine</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Sisestage õigesti vormindatud URL</translation> <translation id="854522910157234410">Ava leht</translation> <translation id="8551513938758868521">Lukusta Chrome'ist lahkumisel inkognito vahelehed</translation> +<translation id="8559961053328923750">Chrome piirab nende andmete hulka, mida saidid saavad reklaamide toimivuse mõõtmiseks brauseri kaudu jagada</translation> <translation id="8559990750235505898">Paku muudes keeltes olevate lehtede tõlkimist</translation> <translation id="8560602726703398413">Lugemisloendi leiate järjehoidjatest</translation> <translation id="8562452229998620586">Salvestatud paroolid ilmuvad siin.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Taotluse töötlemine</translation> <translation id="8788265440806329501">Navigeerimisajalugu on suletud</translation> <translation id="8788968922598763114">Viimati suletud vahelehe uuesti avamine</translation> +<translation id="879027982257117598">Näiteks kui külastate saiti, millel müüakse pikamaajooksu jalatseid, võib sait otsustada, et olete huvitatud maratoni jooksmisest. Kui külastate hiljem muud saiti, võib see sait näidata teile esimese saidi põhjal jooksujalatsite reklaami.</translation> <translation id="8798449543960971550">Loetud</translation> <translation id="8803526663383843427">Kui on sisse lülitatud</translation> <translation id="8805097383171548551">QR-koodi skannimiseks kasutage kaameraga seadet.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Valige teine teenusepakkuja</translation> <translation id="8998729206196772491">Logite sisse kontoga, mida haldab <ph name="MANAGED_DOMAIN" />, ja annate selle administraatorile üle Chrome'i andmete juhtimise. Teie andmed seotakse jäädavalt selle kontoga. Chrome'ist väljalogimisel kustutatakse teie andmed sellest seadmest, kuid need jäävad alles teie Google'i kontole.</translation> <translation id="9022774213089566801">Sageli külastatud</translation> +<translation id="9022871169049522985">Saidid ja reklaamijad saavad mõõta oma reklaamide toimivust</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# video}other{# videot}}</translation> <translation id="9042893549633094279">Privaatsus ja turvalisus</translation> <translation id="9050666287014529139">Parool</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Tugi telefoni kasutamiseks turvavõtmena</translation> <translation id="9108808586816295166">Turvaline DNS ei pruugi alati saadaval olla</translation> <translation id="9128984223251192329">Privaatsuse liivakasti viip on avatud poolel kõrgusel</translation> +<translation id="9131209053278896908">Blokeeritud saidid kuvatakse siin</translation> <translation id="9133397713400217035">Uurige võrguühenduseta</translation> <translation id="9148126808321036104">Logige uuesti sisse</translation> <translation id="9158770349521403363">Jagatakse vaid sisu</translation> <translation id="9159716826369098114"><ph name="TAB_COUNT" /> vahelehega vahelehegrupi taastamine uue taustal oleva vahelehegrupina.</translation> <translation id="9169507124922466868">Navigeerimisajalugu on pooleldi avatud</translation> +<translation id="9183331776983279456">Chrome kustutab automaatselt saidid, mis on vanemad kui 4 nädalat. Sait, mida uuesti külastate, võidakse uuesti loendis kuvada. Võite ka saidi puhul reklaamide soovitamise blokeerida.</translation> <translation id="9190276265094487094">Teie ajalugu on saadaval kõigis sünkroonitud seadmetes, et saaksite pooleli jäänud toiminguid jätkata</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Kontrolliti 1 minut tagasi}other{Kontrolliti # minutit tagasi}}</translation> <translation id="9204836675896933765">Üks fail on jäänud</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Kas kuvada lihtsustatud leht?</translation> <translation id="968900484120156207">Teie külastatud lehed kuvatakse siin</translation> <translation id="970715775301869095">Jäänud on <ph name="MINUTES" /> minutit</translation> +<translation id="978317418833355355">Saate blokeerida saidid, millel te ei soovi lubada andmeid salvestada. Samuti kustutab Chrome loendist automaatselt saidid, mis on seal olnud kauem kui 4 nädalat. <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation> <translation id="981121421437150478">Võrguühenduseta</translation> <translation id="983192555821071799">Sule kõik vahelehed</translation> <translation id="987264212798334818">Üldine</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index 1ed17e67..47e3688 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle-a: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Irakurketa-zerrenda</translation> <translation id="1266864766717917324">Ezin izan da partekatu <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Blokeatu <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Sakatu zabaltzeko</translation> <translation id="1285310382777185058">Aldatu hizkuntza</translation> <translation id="1291207594882862231">Garbitu historia, cookieak, webguneetako datuak, cachea…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Sareko eta aplikazioetako jarduerak</translation> <translation id="2239812875700136898">Istorioak kontrolatzeko, sakatu "Discover-en aukerak" botoia</translation> <translation id="2248941474044011069">Pasahitzak gailuan bertan enkriptatzen dira Google-ren Pasahitz-kudeatzailea zerbitzuan gorde aurretik</translation> +<translation id="2249635629516220541">Pertsonalizatu webguneek iragarkiak erakusteko erabiltzen duten informazioa</translation> <translation id="2259659629660284697">Esportatu pasahitzak…</translation> <translation id="2276231040576210443">Zer sinkronizatu nahi duzun aukeratzeko, joan <ph name="BEGIN_LINK1" />Ezarpenak<ph name="END_LINK1" /> atalera. Baliteke Google-k Bilaketa eta beste zerbitzu batzuk pertsonalizatzea zure historiaren arabera.</translation> <translation id="2276696007612801991">Hasi saioa Google-ko kontuan pasahitzak egiaztatzeko</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Txartelaren zenbakia</translation> <translation id="2625189173221582860">Kopiatu da pasahitza</translation> <translation id="2642087927315268160">Pantailaren behealdean ainguratutako orria, saioa hasteko balio duena, itxita dago.</translation> +<translation id="2643064289437760082">Iragarkien neurketen datuak ezabatzeko, ezabatu arakatze-datuak.</translation> <translation id="2647434099613338025">Gehitu hizkuntza bat</translation> <translation id="2649068648233607930"><ph name="DOMAIN" /> domeinuak kudeatzen du arakatzailea</translation> <translation id="2650348088770008516">Pribatutasun-gidaren azalpena itxita dago</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Lortu laguntza<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Prezioaren jarraipena egiten ari zara</translation> <translation id="3037517125981011456">Chrome-n saioa hasteko onarpen-mezuak erakusten ditu</translation> +<translation id="3038272154009688107">Ikusi webgune guztiak</translation> <translation id="3046945242843292318">Sartu webgune honetan bizkorrago hurrengoan</translation> <translation id="3055113921564083271">Kendutako interesak</translation> <translation id="3055259925215945098">Mugitu da laster-marka</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Hasi saioa Chrome-n</translation> <translation id="3285080554353377245">Chrome erabiltzeko argibideei buruzko bideoak</translation> <translation id="3290249595466894471">Gainera, orrien, deskargen, luzapenen jardueren eta sistemaren informazioaren lagin txikiak bidaltzen ditu mehatxu berriak aurkitu ahal izateko.</translation> +<translation id="3293181007446299124">Arakatze-historia pribatu mantentzen da gailuan eta txostenak beranduago bidaltzen dira, zure identitatea babesteko.</translation> <translation id="3297344142967351106">Ahozko laguntza</translation> <translation id="3303414029551471755">Aurrera egin eta edukia deskargatu nahi duzu?</translation> <translation id="3305795716056605962">Itzuli orriak Aukera gehiago botoiaren bidez</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Gelditu egin da sinkronizazioa</translation> <translation id="3976396876660209797">Kendu eta sortu berriro lasterbide hau</translation> <translation id="3981902534690264083">Iragarleek iragarkien errendimendua uler dezakete</translation> +<translation id="3985022125189960801">Webgune batek zer gustatzen zaizun igarri ahal izatea nahi baduzu, gehi ezazu berriro</translation> <translation id="3985215325736559418"><ph name="FILE_NAME" /> berriro deskargatu nahi duzu?</translation> <translation id="3987993985790029246">Kopiatu esteka</translation> <translation id="3999683152997576765">Webguneek iragarkiak erakusteko erabili dituzten gai interesgarriak ikusi eta ken ditzakezu. Azkenaldiko arakatze-historian oinarrituta estimatzen ditu Chrome-k zure interesak.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Jarraitzen…</translation> <translation id="4335835283689002019">Desaktibatuta dago arakatze segurua</translation> <translation id="4351244548802238354">Itxi leihoa</translation> +<translation id="4369735607080757018">Iragarkien errendimendua neurtzeko, datu mota jakin batzuk soilik partekatzen dituzte webguneek elkarrekin; adibidez, zer ordutan erakutsi dizuten iragarki bat.</translation> <translation id="4378154925671717803">Telefonoa</translation> <translation id="438319986296050901">Partekatu txartela soilik</translation> <translation id="4384468725000734951">Sogou erabiliko da bilatzaile gisa</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wifi- eta datu-konexioa erabiltzean</translation> <translation id="4508528996305412043">Jarioko txartelaren menua irekita dago</translation> <translation id="4508642716788467538">Aukeratu hizkuntza</translation> +<translation id="4509501256689523862">Arakatzen duzunean, hainbat faktorek zehazten dute ikusten dituzun iragarkiak pertsonalizatuta dauden ala ez: ezarpen hau, <ph name="BEGIN_LINK_1" />Iragarkien gaiak<ph name="END_LINK_1" /> ezarpena, <ph name="BEGIN_LINK_2" />cookieen ezarpenak<ph name="END_LINK_2" /> eta ikusten dituzun webguneek iragarkiak pertsonalizatzen dituzten ala ez</translation> <translation id="4513387527876475750">{DAYS,plural, =1{Duela # egun}other{Duela # egun}}</translation> <translation id="451872707440238414">Bilatu laster-marketan</translation> <translation id="4521489764227272523">Kendu dira hautatutako datuak Chrome-tik eta sinkronizatutako gailuetatik. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Goitizenak ezin du eduki zenbakirik</translation> <translation id="4663499661119906179">Ikusi zuretzat hautatutako webgune eta istorio nagusiak</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> laster-marka ezabatu dira</translation> +<translation id="4668279686271488041">Iragarkien neurketen datuak maiz ezabatzen dira gailutik.</translation> <translation id="4668347365065281350">Webguneek gordetako datu guztiak, cookieak eta gailuan gordetako beste datu batzuk barne</translation> <translation id="4678082183394354975">Webguneetarako gai iluna aktibatuta dago Chrome-n</translation> <translation id="4684427112815847243">Sinkronizatu dena</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Laster, <ph name="SITE_NAME" /> webguneko istorioak ikusiko dituzu fitxa berri bat irekitzean. Jarraitzaile zaituzten webguneak Google-ko kontuan gordetzen dira. Discover-en ezarpenetan kudea ditzakezu webgune horiek.</translation> <translation id="5091249083535528968">Erabilera-datu hedatuak</translation> <translation id="509429900233858213">Errore bat gertatu da.</translation> +<translation id="5097349930204431044">Bisitatzen dituzun webguneek zer gustatzen zaizun zehatz dezakete, eta, arakatzen jarraitzen duzunean, iragarkiak iradoki</translation> <translation id="5099845111805573968">Ordenagailuetarako webgunea behin hautatu ondoren, webgune horri aplikatuko zaio ezarpena hura bisitatzen duzun bakoitzean</translation> <translation id="5102401324271069229">Webguneren bat pasahitza lapurtzen saiatzen bada edo fitxategi kaltegarriren bat deskargatzen baduzu, baliteke Chrome-k URLak bidaltzea (orriko edukiaren zati batzuk barne) Arakatze segurua eginbidera.</translation> <translation id="510275257476243843">Ordubete gelditzen da</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Fitxa</translation> <translation id="666731172850799929">Ireki <ph name="APP_NAME" /> aplikazioan</translation> <translation id="6671495933530132209">Kopiatu irudia</translation> +<translation id="6672917148207387131">Gehitu <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Sinkronizatzen hasteko, idatzi pasaesaldia</translation> <translation id="6676840375528380067">Gailu honetan dituzun Chrome-ko datuak garbitu nahi dituzu?</translation> <translation id="6676927815633975364">Hasi saioa webgune honetan eta Chrome-n</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Gehitu interes edo webgune bat harekin erlazionatutako iragarkiak zuretzat erabilgarriak izango direla uste baduzu</translation> <translation id="6738516213925468394">Data honetan hasi ziren enkriptatzen zure datuak <ph name="BEGIN_LINK" />Sinkronizatzeko pasaesaldiaren<ph name="END_LINK" /> bidez: <ph name="TIME" />. Idatz ezazu sinkronizatzen hasteko.</translation> <translation id="6738867403308150051">Deskargatzen…</translation> +<translation id="674388916582496364">Bisitatzen dituzun webguneek interesatzen zaizkizun gauzak gogoratu ohi dituzte zerbitzua pertsonalizatzeko. Webguneek zure interesei buruzko informazioa ere gorde dezakete Chrome-n.</translation> <translation id="6751521182688001123">Ireki fitxa bat bizkor. Lasterbidea editatzeko, eduki ezazu sakatuta.</translation> <translation id="6756507620369789050">Partekatu iritzia</translation> <translation id="6767294960381293877">Fitxa partekatzeko hautatutako gailuen zerrenda altuera erdian irekita dago.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Ezabatu laster-markak</translation> <translation id="696447261358045621">Irten ezkutuko modutik</translation> <translation id="6971862865055170158">Ez onartu</translation> +<translation id="6978717888677691380">Blokeatu dituzun webguneak</translation> <translation id="6979737339423435258">Guztiak</translation> <translation id="6987047470128880212">Ezkutuko modua ez dago erabilgarri gailu honetan</translation> <translation id="6995899638241819463">Abisatu pasahitzak arriskuan badaude datuen isilpekotasuna urratu delako</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Nabarmentze estilizatua <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Ziurtatu <ph name="TARGET_DEVICE_NAME" /> gailuak Chrome-ren sinkronizazioa aktibatuta daukala</translation> <translation id="7252076891734325316">Jarri telefonoa ordenagailutik gertu</translation> +<translation id="7260367682327802201">Baliteke Android-eko gailuak antzeko ezarpen bat izatea. Chrome-n eta Android-eko gailuan Iragarkien neurketa aktibatuta badaukazu, erabiltzen dituzun webgune eta aplikazioetan agertzen diren iragarkien eraginkortasuna neurtu ahal izango dute enpresek.</translation> <translation id="727288900855680735"><ph name="ORIGIN" /> domeinura bidali nahi duzu <ph name="ONE_TIME_CODE" />?</translation> <translation id="7274013316676448362">Blokeatutako webgunea</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> aldatu nahi duzu?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Artikuluak agertuko dira hemen, nahi duzunean irakur ditzazun, baita konektatuta ez bazaude ere</translation> <translation id="768232549260819724">Kopiatu da GIFa</translation> <translation id="7682724950699840886">Saiatu hau egiten: ziurtatu gailuan behar adina toki duzula eta saiatu berriro esportatzen.</translation> +<translation id="7686086654630106285">Webguneek iradokitako iragarkiei buruzko informazio gehiago</translation> <translation id="768618399695552958">Bisitatzen dituzun orrietako batzuk aurrez kargatzen dira. Baliteke orriak Google-ren zerbitzarien bidez aurrez kargatzea esteka Google-ren webgune batean badago.</translation> <translation id="7698359219371678927">Sortu mezu elektronikoa <ph name="APP_NAME" /> aplikazioan</translation> <translation id="7704317875155739195">Bete automatikoki bilaketak eta URLak</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Idatzi formatu egokia duen URL bat</translation> <translation id="854522910157234410">Ireki orri hau</translation> <translation id="8551513938758868521">Blokeatu ezkutuko moduko fitxak Chrome-tik irteten zarenean</translation> +<translation id="8559961053328923750">Chrome-k mugatu egiten du webguneek arakatzailearen bidez iragarkien errendimendua neurtzeko parteka dezaketen datu kopurua.</translation> <translation id="8559990750235505898">Eskaini beste hizkuntzetako orriak itzultzea</translation> <translation id="8560602726703398413">Aurkitu irakurketa-zerrenda laster-marketan</translation> <translation id="8562452229998620586">Gordetako pasahitzak hemen agertuko dira.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Eskaera prozesatzen</translation> <translation id="8788265440806329501">Nabigazio-historia itxita dago</translation> <translation id="8788968922598763114">Ireki itxitako azken fitxa</translation> +<translation id="879027982257117598">Esaterako, webgune batera joaten bazara distantzia luzeetan korrika egiteko oinetakoak erostera, baliteke webgune horrek maratoiak interesatzen zaizkizula ondorioztatzea. Beranduago, beste webgune batera joaten bazara, litekeena da webgune horrek korrika egiteko oinetakoekin erlazionatutako iragarki bat erakustea, aurreko webguneak iradokita.</translation> <translation id="8798449543960971550">Irakurrita</translation> <translation id="8803526663383843427">Aktibatuta dagoenean</translation> <translation id="8805097383171548551">QR kode bat eskaneatzeko, erabili kamera bat duen gailu bat.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Aukeratu beste hornitzaile bat</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" /> domeinuak kudeatutako kontu batekin hastera zoaz saioa, eta, ondorioz, domeinu horretako administratzaileari emango diozu Chrome datuen kontrola. Datuak betiko lotuko zaizkio kontu honi. Chrome-ko saioa amaitzen baduzu, gailuko datuak ezabatu egingo dira, baina Google-ko kontuan izango dituzu gordeta.</translation> <translation id="9022774213089566801">Gehien bisitatutakoak</translation> +<translation id="9022871169049522985">Webguneek eta iragarleek beren iragarkien errendimendua neur dezakete</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# bideo}other{# bideo}}</translation> <translation id="9042893549633094279">Pribatutasuna eta segurtasuna</translation> <translation id="9050666287014529139">Pasaesaldia</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Telefonoa segurtasun-giltza gisa erabiltzeko aukera</translation> <translation id="9108808586816295166">Baliteke DNS segurua beti erabilgarri ez egotea</translation> <translation id="9128984223251192329">Privacy Sandbox-aren mezua altuera erdian irekita dago</translation> +<translation id="9131209053278896908">Blokeatutako webguneak hemen agertzen dira</translation> <translation id="9133397713400217035">Arakatu konexiorik gabeko edukia</translation> <translation id="9148126808321036104">Hasi saioa berriro</translation> <translation id="9158770349521403363">Partekatu edukia soilik</translation> <translation id="9159716826369098114">Leheneratu <ph name="TAB_COUNT" /> fitxako taldea atzeko planoko fitxa talde berri gisa.</translation> <translation id="9169507124922466868">Nabigazio-historia erdi irekita dago</translation> +<translation id="9183331776983279456">Chrome-k automatikoki ezabatzen ditu lau aste baino gehiago dituzten webguneak. Baliteke beste behin bisitatzen duzun webgune bat berriro ere zerrendan agertzea. Era berean, webgune bat blokeatuta, zuretzako iragarkiak iradokitzea galaraz diezaiokezu.</translation> <translation id="9190276265094487094">Sinkronizatutako gailu guztietan ikusi ahalko duzu historia, egiten ari zinenari berrekiteko</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Duela 1 minutu egiaztatu du}other{Duela # minutu egiaztatu du}}</translation> <translation id="9204836675896933765">1 fitxategi gelditzen da</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Orri sinplifikatua ikusi nahi duzu?</translation> <translation id="968900484120156207">Hemen agertuko dira bisitatzen dituzun orriak</translation> <translation id="970715775301869095"><ph name="MINUTES" /> min gelditzen dira</translation> +<translation id="978317418833355355">Nahi ez dituzun webguneak blokea ditzakezu. Gainera, Chrome-k automatikoki ezabatzen ditu zerrendatik lau aste baino gehiago dituzten webguneak. <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation> <translation id="981121421437150478">Konexiorik gabekoak</translation> <translation id="983192555821071799">Itxi fitxa guztiak</translation> <translation id="987264212798334818">Orokorra</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb index 829d289..4f7296de 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -277,6 +277,7 @@ <translation id="2569733278091928697">Madali mong mapapamahalaan ang mga kontrol ng media, Incognito session, download, at higit pa</translation> <translation id="2571711316400087311">Mag-alok na ipadala sa Google Translate ang mga page na nasa iba pang wika</translation> <translation id="2573452357057307036">Alamin kung paano itakda ang Chrome bilang iyong default</translation> +<translation id="257470231920177468">Kapag naka-on, lalabas dito ang listahan ng mga binibisita mong site na humuhula ng iyong mga interes.</translation> <translation id="2580436639406015883">Umaasa ang pagbawas ng spam at panloloko sa mga private state token para matulungan ang mga site na labanan ang panloloko at matukoy ang mga bot kumpara sa mga tao. Batay sa iyong pakikipag-ugnayan sa isang site, tulad ng regular na pag-sign in sa isang account, puwedeng magbigay ang site na iyon ng private state token sa browser mo. Sa ibang pagkakataon, kung titingin at maghahanap ng valid na private state token ang iba pang site na binibisita mo, malamang na ituring ka nito bilang tao at hindi bot. @@ -354,6 +355,7 @@ <translation id="2979025552038692506">Napiling Tab na Incognito</translation> <translation id="2979639724566107830">Buksan ng bagong window</translation> <translation id="2981364137500752533">Puwede kang magkaroon ng hanggang 5 window.</translation> +<translation id="2983102365694924129">Batay sa iyong aktibidad sa isang site. Naka-off ang setting na ito.</translation> <translation id="2984978667043170458">Isama ang katabing text sa mga paghahanap sa Google</translation> <translation id="2987620471460279764">Ibinahaging text mula sa ibang device</translation> <translation id="2989523299700148168">Mga kamakailang binisita</translation> @@ -366,6 +368,7 @@ <translation id="301080557829842765">Gabay sa privacy</translation> <translation id="3016635187733453316">Siguraduhing nakakonekta ang device sa internet</translation> <translation id="3026955690410463085">Kasama ang link</translation> +<translation id="3027644380269727216">Batay sa iyong aktibidad sa isang site. Naka-on ang setting na ito.</translation> <translation id="3029276696788198026">Walang pag-preload</translation> <translation id="3029704984691124060">Hindi nagtutugma ang mga passphrase</translation> <translation id="3031225630520268969">UI ng pahintulot ng paghahanap gamit ang boses ng Assistant</translation> @@ -569,10 +572,12 @@ <translation id="4162867837470729563">Nakabukas nang buo ang taas ang listahan ng mga opsyon sa pagbabahagi.</translation> <translation id="4170011742729630528">Hindi available ang serbisyo; subukan ulit sa ibang pagkakataon.</translation> <translation id="4177222230309051052">Kunin ang lahat ng bookmark mo</translation> +<translation id="4177501066905053472">Mga paksa ng ad</translation> <translation id="4181841719683918333">Mga Wika</translation> <translation id="4195643157523330669">Buksan sa bagong tab</translation> <translation id="4196597275619698563">Gumawa ng card</translation> <translation id="4198423547019359126">Walang available na lokasyon ng pag-download</translation> +<translation id="4202218894997543208">Mga paksang na-block mo</translation> <translation id="4214315110991671325">Kung papayagan mo ang cookies, posibleng gamitin ng Chrome ang mga ito para sa pag-preload.</translation> <translation id="4225895483398857530">Shortcut ng toolbar</translation> <translation id="4242533952199664413">Buksan ang mga setting</translation> @@ -604,6 +609,7 @@ <translation id="4405224443901389797">Ilipat sa…</translation> <translation id="4405636711880428279">Alisin ang iyong virtual na card?</translation> <translation id="4409271659088619928"><ph name="DSE" /> ang iyong search engine. Tingnan ang mga tagubilin nito para sa pag-delete sa iyong history ng paghahanap, kung naaangkop.</translation> +<translation id="441383202534727410">Posibleng abutin nang hanggang isang linggo bago lumabas dito ang listahan ng mga site batay sa iyong history ng pag-browse.</translation> <translation id="4415276339145661267">Pamahalaan ang iyong Google Account</translation> <translation id="4425140285732600465">Sinusubaybayan ang presyo. Makatanggap ng mga alerto kapag bumaba ang presyo sa alinmang site.</translation> <translation id="442518031075347249">Hindi mo na magagamit ang iyong virtual na card sa Google Pay. <ph name="BEGIN_LINK1" />Matuto pa tungkol sa mga virtual na card<ph name="END_LINK1" /></translation> @@ -650,6 +656,7 @@ <translation id="4678082183394354975">Naka-on sa Chrome ang madilim na tema para sa mga site</translation> <translation id="4684427112815847243">I-sync lahat</translation> <translation id="4685741273709472646">Pumili mula sa dropdown na listahan</translation> +<translation id="4687718960473379118">Mga ad na iminumungkahi ng site</translation> <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> iba pa}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> iba pa}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> na iba pa}}</translation> <translation id="4699172675775169585">Mga naka-cache na larawan at file</translation> <translation id="4719927025381752090">Mag-alok na magsalin</translation> @@ -927,6 +934,7 @@ <translation id="6193448654517602979">Pumili ng mga tab</translation> <translation id="6196315980958524839">Sine-save ang mga password sa Google Password Manager sa device na ito.</translation> <translation id="6202812185118613467">Mag-sign in ulit para simulan ang pag-sync</translation> +<translation id="6205314730813004066">Privacy sa ad</translation> <translation id="6210748933810148297">Hindi si <ph name="EMAIL" />?</translation> <translation id="6211386937064921208">Pini-preview ang page na ito</translation> <translation id="6221633008163990886">I-unlock upang i-export ang iyong mga password</translation> @@ -1153,6 +1161,7 @@ <translation id="7375125077091615385">Uri:</translation> <translation id="7376560087009844242">Kapag nagsama ka ng mas maraming text ng isang page, posibleng makakita ka ng mas magagandang resulta kapag ginagamit mo ang Pindutin para Maghanap. Puwede mong bisitahin ang <ph name="BEGIN_LINK" />mga setting<ph name="END_LINK" /> anumang oras para baguhin ito.</translation> <translation id="7379900596734708416">Available ang Madilim na tema para sa mga site</translation> +<translation id="7388615499319468910">Mauunawaan ng mga site at advertiser ang performance ng mga ad. Naka-off ang setting na ito.</translation> <translation id="7400418766976504921">URL</translation> <translation id="7403691278183511381">Unang Karanasan sa Pagtakbo ng Chrome</translation> <translation id="7411224099004328643">User ng Google Account</translation> @@ -1164,6 +1173,7 @@ <translation id="7443901082822119557">Habang gumagamit ng incognito, hindi magagamit ng mga site ang cookies mo para tingnan ang iyong aktibidad sa pag-browse sa iba't ibang site, halimbawa, para mag-personalize ng mga ad. Posibleng masira ang mga feature sa ilang site.</translation> <translation id="7453467225369441013">Isa-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account.</translation> <translation id="7454641608352164238">Walang sapat na espasyo</translation> +<translation id="7455988709578031708">Batay sa iyong history ng pag-browse. Naka-on ang setting na ito.</translation> <translation id="7456774706094330779">Na-extend na pag-preload</translation> <translation id="7474822150871987353">Matuto tungkol sa mga paksa sa mga website nang hindi umaalis sa page. Pumili ng isa o higit pang salita sa page para hanapin ang mga ito.</translation> <translation id="7475192538862203634">Kung madalas mo itong makita, subukan ang <ph name="BEGIN_LINK" />mga suhestyon<ph name="END_LINK" /> na ito.</translation> @@ -1240,6 +1250,7 @@ <translation id="7851858861565204677">Iba pang device</translation> <translation id="7853202427316060426">Aktibidad</translation> <translation id="7859988229622350291">Huwag isalin kailanman</translation> +<translation id="7864208933699511058">Habang nagba-browse ka, kung naka-personalize ang isang ad na nakikita mo ay nakadepende sa setting na ito, <ph name="BEGIN_LINK_1" />Mga ad na iminumungkahi ng site<ph name="END_LINK_1" />, iyong <ph name="BEGIN_LINK_2" />mga setting ng cookie<ph name="END_LINK_2" />, at kung nagpe-personalize ng mga ad ang site na tinitingnan mo.</translation> <translation id="7866213166286285359">Magsalin ng mga page dito</translation> <translation id="78707286264420418">Nangangailangan ang <ph name="PRODUCT_NAME" /> ng Pahintulot sa mga kalapit na device para makakonekta sa iyong device</translation> <translation id="7875915731392087153">Gumawa ng email</translation> @@ -1332,6 +1343,7 @@ <translation id="829672787777123339">Kumokonekta sa iyong device…</translation> <translation id="8310344678080805313">Mga karaniwang tab</translation> <translation id="831192587911042850">Idinaragdag ang kasalukuyang web site sa listahan ng mga web site na sinusubaybayan mo.</translation> +<translation id="8333340769932050274">Puwede kang mag-block ng mga paksang ayaw mong i-share sa mga site. Awtomatiko ring dine-delete ng Chrome ang iyong mga paksang mas matagal sa 4 na linggo. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation> <translation id="834313815369870491">Huwag isalin kailanman ang mga site</translation> <translation id="8349795646647783032"><ph name="BEGIN_BOLD" />Paano namin ginagamit ang data na ito:<ph name="END_BOLD" /> Puwedeng mag-store ang mga site sa Chrome tungkol sa iyong mga interes. Halimbawa, kung bibisita ka sa isang site para bumili ng mga sapatos para sa isang marathon, posibleng tukuyin ng site ang iyong interes bilang pagtakbo sa mga marathon. Sa ibang pagkakataon, kung bibisita ka sa ibang site para magparehistro para sa isang karera, puwedeng magpakita sa iyo ang site na iyon ng ad para sa running shoes batay sa mga interes mo.</translation> <translation id="8354977102499939946">Mabilis na maghanap gamit ang iyong boses. Para i-edit ang shortcut na ito, pumunta sa Mga Setting.</translation> @@ -1473,9 +1485,11 @@ <translation id="9081543426177426948">Hindi nase-save sa Incognito ang mga site na binibisita mo</translation> <translation id="9086302186042011942">Nagsi-sync</translation> <translation id="9086455579313502267">Hindi magawang ma-access ang network</translation> +<translation id="9099220545925418560">Batay sa iyong history ng pag-browse. Naka-off ang setting na ito.</translation> <translation id="9100610230175265781">Kinakailangan ang passphrase</translation> <translation id="9101137867221042551">Pamamahala</translation> <translation id="9102803872260866941">Nakabukas ang tab na preview</translation> +<translation id="9102864637938129124">Mauunawaan ng mga site at advertiser ang performance ng mga ad. Naka-on ang setting na ito.</translation> <translation id="9104217018994036254">Listahan ng mga device kung saan magbabahagi ng tab.</translation> <translation id="9106148373857059373">Nakasara ang proseso ng pag-save ng bookmark</translation> <translation id="9108312223223904744">Telepono bilang Security Key Support</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb index 04fe725..b5659d2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Daftar bacaan</translation> <translation id="1266864766717917324">Tidak dapat membagikan <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Blokir <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Ketuk untuk meluaskan</translation> <translation id="1285310382777185058">Ubah bahasa</translation> <translation id="1291207594882862231">Menghapus histori, cookie, data situs, cache...</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Aktivitas Web & Aplikasi</translation> <translation id="2239812875700136898">Kontrol artikel Anda dengan tombol Opsi untuk Discover</translation> <translation id="2248941474044011069">Sandi Anda dienkripsi di perangkat sebelum disimpan ke Pengelola Sandi Google</translation> +<translation id="2249635629516220541">Sesuaikan info yang digunakan situs untuk menampilkan iklan</translation> <translation id="2259659629660284697">Ekspor sandi…</translation> <translation id="2276231040576210443">Anda dapat memilih jenis data yang akan disinkronkan di <ph name="BEGIN_LINK1" />setelan<ph name="END_LINK1" /> kapan saja. Google dapat mempersonalisasi Penelusuran dan layanan lainnya berdasarkan histori Anda.</translation> <translation id="2276696007612801991">Login ke Akun Google Anda untuk memeriksa sandi</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Nomor kartu kredit</translation> <translation id="2625189173221582860">Sandi disalin</translation> <translation id="2642087927315268160">Sheet bawah login ditutup.</translation> +<translation id="2643064289437760082">Anda dapat menghapus data pengukuran iklan kapan saja dengan menghapus data penjelajahan</translation> <translation id="2647434099613338025">Tambah bahasa</translation> <translation id="2649068648233607930">Browser Anda dikelola oleh <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Penjelasan panduan privasi ditutup</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Dapatkan bantuan<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Memantau harga</translation> <translation id="3037517125981011456">Menampilkan perintah untuk login ke Chrome</translation> +<translation id="3038272154009688107">Lihat semua situs</translation> <translation id="3046945242843292318">Buka situs ini lebih cepat pada waktu berikutnya</translation> <translation id="3055113921564083271">Minat yang Anda hapus</translation> <translation id="3055259925215945098">Bookmark dipindahkan</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Login ke Chrome</translation> <translation id="3285080554353377245">Video tentang cara menggunakan Chrome</translation> <translation id="3290249595466894471">Juga mengirimkan sedikit contoh halaman, download, aktivitas ekstensi, dan informasi sistem untuk membantu menemukan ancaman baru</translation> +<translation id="3293181007446299124">Histori penjelajahan Anda tetap bersifat pribadi di perangkat Anda dan laporan dikirim dengan penundaan untuk melindungi identitas Anda</translation> <translation id="3297344142967351106">Bantuan suara</translation> <translation id="3303414029551471755">Lanjutkan untuk mendownload konten?</translation> <translation id="3305795716056605962">Terjemahkan halaman dari tombol Opsi Lainnya</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Sinkronisasi berhenti berfungsi</translation> <translation id="3976396876660209797">Hapus dan buat ulang pintasan ini</translation> <translation id="3981902534690264083">Pengiklan dapat memahami performa iklan</translation> +<translation id="3985022125189960801">Tambahkan situs kembali jika Anda menginginkannya berada di kumpulan situs yang dapat menebak hal-hal yang Anda sukai</translation> <translation id="3985215325736559418">Ingin mendownload <ph name="FILE_NAME" /> lagi?</translation> <translation id="3987993985790029246">Salin link</translation> <translation id="3999683152997576765">Anda dapat melihat dan menghapus topik terkait minat yang digunakan situs untuk menampilkan iklan kepada Anda. Chrome memperkirakan minat Anda berdasarkan histori penjelajahan terbaru Anda.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Mengikuti...</translation> <translation id="4335835283689002019">Safe Browsing nonaktif</translation> <translation id="4351244548802238354">Tutup dialog</translation> +<translation id="4369735607080757018">Jenis data tertentu akan dibagikan antar-situs untuk mengukur performa iklan situs tersebut, seperti waktu iklan ditampilkan kepada Anda</translation> <translation id="4378154925671717803">Ponsel</translation> <translation id="438319986296050901">Hanya bagikan kartu</translation> <translation id="4384468725000734951">Menggunakan Sogou untuk penelusuran</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Melalui Wi-Fi & data seluler</translation> <translation id="4508528996305412043">Menu kartu feed terbuka</translation> <translation id="4508642716788467538">Pilih bahasa Anda</translation> +<translation id="4509501256689523862">Saat Anda menjelajah, iklan yang Anda lihat akan dipersonalisasi atau tidak bergantung pada setelan ini, <ph name="BEGIN_LINK_1" />Topik iklan<ph name="END_LINK_1" />, <ph name="BEGIN_LINK_2" />setelan cookie<ph name="END_LINK_2" />, dan apakah situs yang Anda lihat mempersonalisasi iklan</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# hari yang lalu}other{# hari yang lalu}}</translation> <translation id="451872707440238414">Telusuri bookmark</translation> <translation id="4521489764227272523">Data yang dipilih telah dihapus dari Chrome dan perangkat yang disinkronkan. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Nama panggilan tidak boleh berisi angka</translation> <translation id="4663499661119906179">Lihat situs dan artikel teratas untuk Anda</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bookmark dihapus</translation> +<translation id="4668279686271488041">Data pengukuran iklan dihapus secara berkala dari perangkat Anda</translation> <translation id="4668347365065281350">Semua data yang disimpan oleh situs, termasuk cookie dan data lain yang disimpan secara lokal</translation> <translation id="4678082183394354975">Tema gelap untuk situs aktif di Chrome</translation> <translation id="4684427112815847243">Sinkronkan semua</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Sebentar lagi, Anda akan melihat cerita dari <ph name="SITE_NAME" /> saat membuka tab baru. Situs yang Anda ikuti akan disimpan di Akun Google Anda. Anda dapat mengelolanya di setelan Discover.</translation> <translation id="5091249083535528968">Data penggunaan yang diperluas</translation> <translation id="509429900233858213">Terjadi error.</translation> +<translation id="5097349930204431044">Situs yang Anda buka dapat menentukan hal-hal yang Anda sukai, lalu menyarankan iklan saat Anda melanjutkan penjelajahan</translation> <translation id="5099845111805573968">Sekali Anda memilih situs desktop, setelan ini akan diterapkan setiap kali Anda membuka situs</translation> <translation id="5102401324271069229">Jika situs berusaha mencuri sandi Anda, atau jika Anda mendownload file berbahaya, Chrome dapat mengirimkan URL, termasuk bit konten halaman, ke Safe Browsing</translation> <translation id="510275257476243843">1 jam lagi</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Tab</translation> <translation id="666731172850799929">Buka di <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Salin gambar</translation> +<translation id="6672917148207387131">Tambahkan <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Untuk memulai sinkronisasi, masukkan frasa sandi</translation> <translation id="6676840375528380067">Hapus data Chrome Anda dari perangkat ini?</translation> <translation id="6676927815633975364">Login ke situs ini dan Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Izinkan minat atau situs jika menurut Anda iklan yang berkaitan dengan item mungkin berguna untuk Anda</translation> <translation id="6738516213925468394">Data Anda dienkripsi dengan <ph name="BEGIN_LINK" />frasa sandi sinkronisasi<ph name="END_LINK" /> pada tanggal <ph name="TIME" />. Masukkan frasa sandi untuk memulai sinkronisasi.</translation> <translation id="6738867403308150051">Mendownload…</translation> +<translation id="674388916582496364">Situs yang Anda buka biasanya mengingat hal-hal yang Anda minati agar dapat mempersonalisasi pengalaman Anda. Situs juga dapat menyimpan informasi tentang minat Anda ke Chrome.</translation> <translation id="6751521182688001123">Buka tab baru dengan cepat. Sentuh lama untuk mengedit pintasan ini.</translation> <translation id="6756507620369789050">Bagikan masukan</translation> <translation id="6767294960381293877">Daftar perangkat yang dapat digunakan untuk berbagi tab terbuka dalam setengah layar.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Hapus bookmark</translation> <translation id="696447261358045621">Keluar dari mode Samaran</translation> <translation id="6971862865055170158">Jangan setujui</translation> +<translation id="6978717888677691380">Situs yang Anda blokir</translation> <translation id="6979737339423435258">Semua</translation> <translation id="6987047470128880212">Samaran tidak tersedia di perangkat ini</translation> <translation id="6995899638241819463">Berikan peringatan jika sandi Anda terekspos saat terjadi pelanggaran data</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Sorotan bergaya <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Pastikan <ph name="TARGET_DEVICE_NAME" /> telah mengaktifkan sinkronisasi di Chrome</translation> <translation id="7252076891734325316">Letakkan ponsel Anda dekat dengan komputer</translation> +<translation id="7260367682327802201">Perangkat Android Anda mungkin menyertakan setelan serupa. Jika Pengukuran iklan diaktifkan di Chrome dan di perangkat Android Anda, perusahaan iklan mungkin dapat mengukur keefektifan iklan di semua situs yang Anda buka dan aplikasi yang Anda gunakan.</translation> <translation id="727288900855680735">Kirim <ph name="ONE_TIME_CODE" /> ke <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Situs yang diblokir</translation> <translation id="7286572596625053347">Ubah <ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Artikel ditampilkan di sini, yang dapat Anda baca bahkan saat offline</translation> <translation id="768232549260819724">GIF Disalin</translation> <translation id="7682724950699840886">Coba tips berikut ini: pastikan ruang di perangkat Anda mencukupi, lalu coba ekspor lagi.</translation> +<translation id="7686086654630106285">Selengkapnya tentang iklan yang disarankan situs</translation> <translation id="768618399695552958">Beberapa halaman yang Anda buka akan dipramuat. Halaman mungkin dipramuat melalui server Google saat ditautkan dari situs Google.</translation> <translation id="7698359219371678927">Buat email di <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Lengkapi otomatis penelusuran dan URL</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Masukkan URL dengan format yang benar</translation> <translation id="854522910157234410">Buka halaman ini</translation> <translation id="8551513938758868521">Kunci tab Samaran saat Anda menutup Chrome</translation> +<translation id="8559961053328923750">Chrome membatasi jumlah total data yang dapat dibagikan oleh situs melalui browser untuk mengukur performa iklan</translation> <translation id="8559990750235505898">Tawarkan penerjemahan halaman ke dalam bahasa lain</translation> <translation id="8560602726703398413">Temukan daftar bacaan Anda di Bookmark</translation> <translation id="8562452229998620586">Sandi yang disimpan akan muncul di sini.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Memproses permintaan</translation> <translation id="8788265440806329501">Histori navigasi tertutup</translation> <translation id="8788968922598763114">Membuka ulang tab yang terakhir ditutup</translation> +<translation id="879027982257117598">Misalnya, jika Anda membuka situs yang menjual sepatu lari jarak jauh, situs tersebut mungkin menyimpulkan bahwa Anda tertarik berlari maraton. Kemudian, jika Anda membuka situs lain, situs tersebut dapat menampilkan iklan sepatu lari yang disarankan oleh situs pertama.</translation> <translation id="8798449543960971550">Telah dibaca</translation> <translation id="8803526663383843427">Saat aktif</translation> <translation id="8805097383171548551">Untuk memindai Kode QR, gunakan perangkat yang memiliki kamera.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Pilih penyedia lain</translation> <translation id="8998729206196772491">Anda akan login dengan akun yang dikelola oleh <ph name="MANAGED_DOMAIN" /> dan memberikan kontrol data Chrome kepada administratornya. Data akan terikat dengan akun ini secara permanen. Bila Anda logout dari Chrome, data akan dihapus dari perangkat ini, tetapi data tetap tersimpan di Akun Google.</translation> <translation id="9022774213089566801">Sering dikunjungi</translation> +<translation id="9022871169049522985">Situs dan pengiklan dapat mengukur performa iklannya</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Video}other{# Video}}</translation> <translation id="9042893549633094279">Privasi dan keamanan</translation> <translation id="9050666287014529139">Frasa sandi</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Dukungan Ponsel sebagai Kunci Keamanan</translation> <translation id="9108808586816295166">DNS aman mungkin tidak tersedia sepanjang waktu</translation> <translation id="9128984223251192329">Perintah Privacy Sandbox terbuka setengah</translation> +<translation id="9131209053278896908">Situs yang diblokir akan muncul di sini</translation> <translation id="9133397713400217035">Jelajahi Offline</translation> <translation id="9148126808321036104">Login sekali lagi</translation> <translation id="9158770349521403363">Hanya bagikan konten</translation> <translation id="9159716826369098114">Pulihkan grup tab sebanyak <ph name="TAB_COUNT" /> tab sebagai grup tab latar belakang baru.</translation> <translation id="9169507124922466868">Histori navigasi terbuka setengah</translation> +<translation id="9183331776983279456">Chrome akan otomatis menghapus situs yang tersimpan lebih dari 4 minggu. Situs yang Anda buka lagi dapat kembali muncul di daftar. Atau, Anda dapat memblokir situs agar tidak menyarankan iklan untuk Anda.</translation> <translation id="9190276265094487094">Histori Anda akan tersedia di semua perangkat yang disinkronkan, sehingga Anda dapat melanjutkan kegiatan Anda</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Diperiksa 1 menit yang lalu}other{Diperiksa # menit yang lalu}}</translation> <translation id="9204836675896933765">1 file tersisa</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Lihat halaman yang disederhanakan?</translation> <translation id="968900484120156207">Halaman yang Anda kunjungi akan muncul di sini</translation> <translation id="970715775301869095"><ph name="MINUTES" /> menit lagi</translation> +<translation id="978317418833355355">Anda dapat memblokir situs yang tidak diinginkan. Chrome juga otomatis menghapus situs dari daftar yang tersimpan lebih dari 4 minggu. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation> <translation id="981121421437150478">Offline</translation> <translation id="983192555821071799">Tutup semua tab</translation> <translation id="987264212798334818">Umum</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb index b8e5c47..d5d2e8c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google 기념일 로고: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">읽기 목록</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> 공유할 수 없음</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> 차단</translation> <translation id="1283039547216852943">탭하여 펼치기</translation> <translation id="1285310382777185058">언어 변경</translation> <translation id="1291207594882862231">방문 기록, 쿠키, 사이트 데이터, 캐시 삭제…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">웹 및 앱 활동</translation> <translation id="2239812875700136898">디스커버 버튼 옵션으로 새 탭 페이지에 표시될 뉴스를 관리하세요</translation> <translation id="2248941474044011069">비밀번호를 기기 내에서 암호화한 후 Google 비밀번호 관리자에 저장합니다</translation> +<translation id="2249635629516220541">사이트에서 광고를 표시하는 데 사용하는 정보를 맞춤설정합니다.</translation> <translation id="2259659629660284697">비밀번호 내보내기...</translation> <translation id="2276231040576210443">언제든지 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />에서 동기화할 항목을 선택할 수 있습니다. Google에서는 사용자의 방문 기록을 기반으로 Google 검색 및 기타 서비스를 맞춤설정할 수 있습니다.</translation> <translation id="2276696007612801991">비밀번호를 확인하려면 Google 계정에 로그인하세요.</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">카드번호</translation> <translation id="2625189173221582860">비밀번호 복사됨</translation> <translation id="2642087927315268160">로그인 하단 시트가 닫혔습니다.</translation> +<translation id="2643064289437760082">언제든지 인터넷 사용 기록을 삭제하여 광고 측정 데이터를 삭제할 수 있습니다.</translation> <translation id="2647434099613338025">언어 추가</translation> <translation id="2649068648233607930">내 브라우저는 <ph name="DOMAIN" />에서 관리합니다</translation> <translation id="2650348088770008516">개인 정보 보호 가이드 설명이 닫힘</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />도움 받기<ph name="END_LINK" /></translation> <translation id="3037177537145227281">가격 추적</translation> <translation id="3037517125981011456">Chrome에 로그인하기 위한 메시지를 표시합니다.</translation> +<translation id="3038272154009688107">모든 사이트 보기</translation> <translation id="3046945242843292318">다음번에 이 사이트로 빠르게 이동합니다.</translation> <translation id="3055113921564083271">삭제한 관심분야</translation> <translation id="3055259925215945098">북마크 이동됨</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome에 로그인</translation> <translation id="3285080554353377245">Chrome 사용 방법에 관한 동영상</translation> <translation id="3290249595466894471">또한 페이지, 다운로드 항목, 확장 프로그램 활동, 시스템 정보의 표본을 일부 전송하여 새로운 위협을 발견하는 데 도움을 줍니다.</translation> +<translation id="3293181007446299124">방문 기록은 기기에서 비공개로 유지되며 신고는 사용자의 신원을 보호하기 위해 보고서 전송이 지연됩니다.</translation> <translation id="3297344142967351106">음성 지원</translation> <translation id="3303414029551471755">콘텐츠를 다운로드하시겠습니까?</translation> <translation id="3305795716056605962">옵션 더보기 버튼을 눌러 페이지 번역하기</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">동기화가 중지되었습니다.</translation> <translation id="3976396876660209797">이 바로가기 삭제하고 다시 만들기</translation> <translation id="3981902534690264083">광고주가 특정 광고의 성과를 파악할 수 있습니다.</translation> +<translation id="3985022125189960801">내가 원하는 콘텐츠를 추측할 수 있는 사이트 풀에 원하는 사이트를 다시 추가하세요.</translation> <translation id="3985215325736559418"><ph name="FILE_NAME" /> 파일을 다시 다운로드하시겠습니까?</translation> <translation id="3987993985790029246">링크 복사</translation> <translation id="3999683152997576765">사이트에서 광고 표시를 위해 사용하는 관심분야의 주제를 내가 확인하고 삭제할 수 있습니다. Chrome에서는 사용자의 최근 방문 기록을 기반으로 관심분야를 추정합니다.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">팔로우 중...</translation> <translation id="4335835283689002019">세이프 브라우징 사용 안함</translation> <translation id="4351244548802238354">대화상자 닫기</translation> +<translation id="4369735607080757018">광고 실적을 측정할 수 있도록 광고 표시 시간 등 제한된 유형의 데이터가 사이트 간에 공유됩니다.</translation> <translation id="4378154925671717803">전화기</translation> <translation id="438319986296050901">카드만 공유</translation> <translation id="4384468725000734951">검색할 때 Sogou 사용</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wi-Fi 및 모바일 데이터에서</translation> <translation id="4508528996305412043">피드 카드 메뉴가 열림</translation> <translation id="4508642716788467538">언어 선택</translation> +<translation id="4509501256689523862">인터넷을 탐색할 때 이 설정, <ph name="BEGIN_LINK_1" />광고 주제<ph name="END_LINK_1" />, 나의 <ph name="BEGIN_LINK_2" />쿠키 설정<ph name="END_LINK_2" />, 시청 중인 사이트에서 광고를 맞춤설정하는지 여부에 따라 나에게 표시되는 광고의 맞춤설정 여부가 달라집니다.</translation> <translation id="4513387527876475750">{DAYS,plural, =1{#일 전}other{#일 전}}</translation> <translation id="451872707440238414">북마크 검색</translation> <translation id="4521489764227272523">선택한 데이터가 Chrome 및 동기화된 기기에서 삭제되었습니다. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">닉네임에 숫자를 포함할 수 없음</translation> <translation id="4663499661119906179">맞춤 인기 사이트 및 뉴스 보기</translation> <translation id="4663756553811254707">북마크 <ph name="NUMBER_OF_BOOKMARKS" />개 삭제됨</translation> +<translation id="4668279686271488041">광고 측정 데이터가 기기에서 정기적으로 삭제됩니다.</translation> <translation id="4668347365065281350">쿠키 및 기타 로컬에 저장된 데이터 등 사이트에 저장된 모든 데이터</translation> <translation id="4678082183394354975">Chrome에서 사이트의 어두운 테마가 사용 설정되었습니다.</translation> <translation id="4684427112815847243">모두 동기화</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">곧 새 탭을 열 때 <ph name="SITE_NAME" /> 스토리가 표시됩니다. 내가 팔로우하는 사이트는 Google 계정에 저장되며 디스커버 설정에서 관리할 수 있습니다.</translation> <translation id="5091249083535528968">확장된 사용 데이터</translation> <translation id="509429900233858213">오류가 발생했습니다.</translation> +<translation id="5097349930204431044">방문한 사이트에서 내가 좋아하는 콘텐츠가 무엇인지 파악할 수 있으며, 내가 인터넷을 계속 탐색하면 사이트에서 광고를 제안할 수 있습니다.</translation> <translation id="5099845111805573968">데스크톱 사이트를 선택하면 사이트에 방문할 때마다 이 설정이 적용됩니다.</translation> <translation id="5102401324271069229">사이트에서 사용자의 비밀번호를 도용하려고 하거나 사용자가 유해한 파일을 다운로드하는 경우, Chrome에서 페이지 콘텐츠 일부를 비롯한 URL을 세이프 브라우징 서비스에 보낼 수 있습니다.</translation> <translation id="510275257476243843">1시간 남음</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">탭</translation> <translation id="666731172850799929"><ph name="APP_NAME" />에서 열기</translation> <translation id="6671495933530132209">이미지 복사</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> 추가</translation> <translation id="6674571176963658787">동기화를 시작하려면 암호를 입력하세요.</translation> <translation id="6676840375528380067">기기에서 Chrome 데이터를 삭제하시겠습니까?</translation> <translation id="6676927815633975364">이 사이트 및 Chrome에 로그인하세요</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">특정 항목과 관련된 광고가 유용할 것이라 생각된다면 관심분야나 사이트를 허용하세요.</translation> <translation id="6738516213925468394"><ph name="TIME" />자로 <ph name="BEGIN_LINK" />동기화 암호<ph name="END_LINK" />를 통해 데이터가 암호화되었습니다. 동기화를 시작하려면 암호를 입력하세요.</translation> <translation id="6738867403308150051">다운로드 중...</translation> +<translation id="674388916582496364">방문하는 사이트에서는 일반적으로 사용 경험을 개인화하기 위해 내가 관심을 보인 항목을 기억합니다. 또한 사이트에서는 내 관심분야에 관한 정보를 Chrome에 저장할 수 있습니다.</translation> <translation id="6751521182688001123">새 탭을 빠르게 엽니다. 바로가기를 수정하려면 길게 터치하세요.</translation> <translation id="6756507620369789050">의견 공유</translation> <translation id="6767294960381293877">탭을 공유할 기기 목록이 절반 높이로 열렸습니다.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">북마크 삭제</translation> <translation id="696447261358045621">시크릿 모드 종료</translation> <translation id="6971862865055170158">승인 안함</translation> +<translation id="6978717888677691380">차단한 사이트</translation> <translation id="6979737339423435258">전체 기간</translation> <translation id="6987047470128880212">이 기기에서는 시크릿 모드를 사용할 수 없습니다.</translation> <translation id="6995899638241819463">데이터 유출로 인해 비밀번호가 노출된 경우 알림</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">스타일 지정된 하이라이트 <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" />에서 Chrome 동기화가 사용 설정되어 있는지 확인하세요.</translation> <translation id="7252076891734325316">휴대전화를 컴퓨터 가까이 두세요</translation> +<translation id="7260367682327802201">Android 기기에 비슷한 설정이 포함되어 있을 수 있습니다. Chrome과 Android 기기에서 광고 측정이 사용 설정되어 있으면 회사에서 사용자가 방문하는 웹사이트와 사용하는 앱에서 광고 효과를 측정할 수 있습니다.</translation> <translation id="727288900855680735"><ph name="ORIGIN" />에 <ph name="ONE_TIME_CODE" /> 코드를 제출하시겠습니까?</translation> <translation id="7274013316676448362">차단된 사이트</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" />를 변경하시겠습니까?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">기사가 여기 표시되며 오프라인 상태에서도 읽을 수 있습니다.</translation> <translation id="768232549260819724">GIF 복사됨</translation> <translation id="7682724950699840886">다음 방법을 시도해 보세요. 기기 저장용량이 충분한지 확인하고 다시 내보내 봅니다.</translation> +<translation id="7686086654630106285">사이트 추천 광고에 관해 자세히 알아보기</translation> <translation id="768618399695552958">방문한 페이지 중 일부가 미리 로드되었습니다. Google 사이트에서 페이지에 연결하는 경우 Google 서버를 통해 페이지가 미리 로드될 수 있습니다.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />에서 이메일 만들기</translation> <translation id="7704317875155739195">검색어 및 URL 자동 완성</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">올바른 형식의 URL을 입력하세요.</translation> <translation id="854522910157234410">페이지 열기</translation> <translation id="8551513938758868521">Chrome 종료 시 시크릿 탭 잠금</translation> +<translation id="8559961053328923750">Chrome은 사이트에서 광고 실적을 측정하기 위해 브라우저를 통해 공유할 수 있는 데이터의 총량을 제한합니다.</translation> <translation id="8559990750235505898">다른 언어로 된 페이지의 번역 옵션 제공</translation> <translation id="8560602726703398413">북마크에서 읽기 목록 찾기</translation> <translation id="8562452229998620586">저장한 비밀번호가 여기에 표시됩니다.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">요청 처리 중입니다.</translation> <translation id="8788265440806329501">탐색 기록 닫힘</translation> <translation id="8788968922598763114">마지막으로 닫은 탭 다시 열기</translation> +<translation id="879027982257117598">예를 들어 장거리용 러닝화를 판매하는 사이트를 방문한 경우 사이트에서 내가 마라톤에 관심이 있다고 판단할 수 있습니다. 나중에 다른 사이트를 방문하면 이 사이트에서 첫 번째 사이트가 추천하는 런닝화 광고가 표시될 수 있습니다.</translation> <translation id="8798449543960971550">읽음</translation> <translation id="8803526663383843427">켜졌을 때</translation> <translation id="8805097383171548551">QR 코드를 스캔하려면 카메라가 있는 기기를 사용하세요.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">다른 제공업체 선택</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" />에서 관리하는 계정으로 로그인합니다. 계정 관리자가 내 Chrome 데이터를 관리하게 되며 데이터는 이 계정에 영구적으로 연결됩니다. Chrome에서 로그아웃하면 데이터가 이 기기에서 삭제되지만 Google 계정에는 그대로 유지됩니다.</translation> <translation id="9022774213089566801">자주 방문한 웹사이트</translation> +<translation id="9022871169049522985">사이트 및 광고주가 광고 실적을 측정할 수 있습니다.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{동영상 #개}other{동영상 #개}}</translation> <translation id="9042893549633094279">개인 정보 보호 및 보안</translation> <translation id="9050666287014529139">암호</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">휴대전화를 보안 키로 사용 지원</translation> <translation id="9108808586816295166">보안 DNS가 항상 제공되지는 않을 수도 있습니다.</translation> <translation id="9128984223251192329">개인 정보 보호 샌드박스 메시지가 절반 높이로 열림</translation> +<translation id="9131209053278896908">차단된 사이트가 여기에 표시됩니다.</translation> <translation id="9133397713400217035">오프라인 탐색</translation> <translation id="9148126808321036104">다시 로그인</translation> <translation id="9158770349521403363">콘텐츠만 공유</translation> <translation id="9159716826369098114">탭 <ph name="TAB_COUNT" />개의 탭 그룹을 새 백그라운드 탭 그룹으로 복원합니다.</translation> <translation id="9169507124922466868">탐색 기록이 절반 높이로 열림</translation> +<translation id="9183331776983279456">Chrome은 4주 이상 된 사이트를 자동 삭제합니다. 재방문한 사이트는 목록에 다시 표시될 수 있습니다. 또는 사이트에서 광고를 추천하지 못하도록 차단할 수도 있습니다.</translation> <translation id="9190276265094487094">동기화된 모든 기기에 방문 기록이 유지되므로 전에 하던 작업을 이어서 할 수 있습니다.</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{1분 전에 확인됨}other{#분 전에 확인됨}}</translation> <translation id="9204836675896933765">파일 1개가 남았습니다.</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">간소화된 페이지를 보시겠습니까?</translation> <translation id="968900484120156207">방문한 페이지가 여기에 표시됩니다.</translation> <translation id="970715775301869095"><ph name="MINUTES" />분 남음</translation> +<translation id="978317418833355355">원치 않는 사이트를 차단할 수 있습니다. 또한 Chrome은 4주 이상 된 사이트를 목록에서 자동 삭제합니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation> <translation id="981121421437150478">오프라인</translation> <translation id="983192555821071799">탭 모두 닫기</translation> <translation id="987264212798334818">일반</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index bd0392e9c..177bfdd 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">„Google“ papuoštas logotipas: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Skaitymo sąrašas</translation> <translation id="1266864766717917324">Nepavyko bendrinti turinio: <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Blokuoti <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Palieskite ir išskleiskite</translation> <translation id="1285310382777185058">Kalbos keitimas</translation> <translation id="1291207594882862231">Išvalykite istoriją, slapukus, svetainės duomenis, talpyklą…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Žiniatinklio ir programų veikla</translation> <translation id="2239812875700136898">Valdykite pasakojimus naudodami mygtuką „Discover“ parinktys“</translation> <translation id="2248941474044011069">Jūsų slaptažodžiai šifruojami įrenginyje prieš išsaugant juos „Google“ slaptažodžių tvarkytuvėje</translation> +<translation id="2249635629516220541">Tinkinkite informaciją, pagal kurią svetainės rodo jums skelbimus</translation> <translation id="2259659629660284697">Eksportuoti slaptažodžius…</translation> <translation id="2276231040576210443">Bet kada galite pasirinkti, ką norite sinchronizuoti, skiltyje <ph name="BEGIN_LINK1" />„Nustatymai“<ph name="END_LINK1" />. „Google“ gali suasmeninti Paiešką ir kitas paslaugas pagal jūsų istoriją.</translation> <translation id="2276696007612801991">Prisijunkite prie „Google“ paskyros, kad patikrintumėte slaptažodžius</translation> @@ -290,6 +292,7 @@ <translation id="2612676031748830579">Kortelės numeris</translation> <translation id="2625189173221582860">Slaptažodis nukopijuotas</translation> <translation id="2642087927315268160">Prisijungimo apatinis lapas uždarytas.</translation> +<translation id="2643064289437760082">Bet kada galite ištrinti skelbimų vertinimo duomenis ištrindami naršymo duomenis</translation> <translation id="2647434099613338025">Pridėti kalbą</translation> <translation id="2649068648233607930">Jūsų naršyklę tvarko <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Privatumo vadovo paaiškinimas uždarytas</translation> @@ -373,6 +376,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Gaukite pagalbos<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Kaina stebima</translation> <translation id="3037517125981011456">Rodomi raginimai prisijungti prie „Chrome“.</translation> +<translation id="3038272154009688107">Žr. visas svetaines</translation> <translation id="3046945242843292318">Kitą kartą sparčiau pasiekite šią svetainę</translation> <translation id="3055113921564083271">Jūsų pašalinti pomėgiai</translation> <translation id="3055259925215945098">Žymė perkelta</translation> @@ -422,6 +426,7 @@ <translation id="3282568296779691940">Prisijungti prie „Chrome“</translation> <translation id="3285080554353377245">Vaizdo įrašai apie „Chrome“ naudojimą</translation> <translation id="3290249595466894471">Taip pat siunčia nedaug puslapių, atsisiuntimų, plėtinių veiklos ir sistemos informacijos, kad padėtų aptikti naujas grėsmes</translation> +<translation id="3293181007446299124">Naršymo istorija saugoma privačiai įrenginyje, o ataskaitos siunčiamos su delsa, siekiant apsaugoti jūsų tapatybę</translation> <translation id="3297344142967351106">Pagalba balsu</translation> <translation id="3303414029551471755">Tęsti turinio atsisiuntimo procesą?</translation> <translation id="3305795716056605962">Verskite puslapius naudodami mygtuką „Daugiau parinkčių“</translation> @@ -533,6 +538,7 @@ <translation id="397583555483684758">Sinchronizavimas nebeveikia</translation> <translation id="3976396876660209797">Pašalinkite šį spartųjį klavišą ir sukurkite jį iš naujo</translation> <translation id="3981902534690264083">Reklamuotojai gali suprasti, koks yra skelbimų našumas</translation> +<translation id="3985022125189960801">Galite iš naujo pridėti svetainę, jei norite, kad ji būtų įtraukta į svetainių, kurioms leidžiama daryti prielaidas apie tai, kas jums patinka, sąrašą</translation> <translation id="3985215325736559418">Ar norite dar kartą atsisiųsti <ph name="FILE_NAME" />?</translation> <translation id="3987993985790029246">Kop. nuor.</translation> <translation id="3999683152997576765">Galite peržiūrėti ir pašalinti pomėgių svetainių temas, pagal kurias parenkami jums rodomi skelbimai. „Chrome“ pagal jūsų naršymo istoriją įvertina temas, kurios jus domina.</translation> @@ -598,6 +604,7 @@ <translation id="433213510553688132">Stebima...</translation> <translation id="4335835283689002019">Saugus naršymas išjungtas</translation> <translation id="4351244548802238354">Uždaryti dialogo langą</translation> +<translation id="4369735607080757018">Skirtingose svetainėse bendrinami tam tikrų tipų duomenys siekiant įvertinti skelbimų našumą, pvz., paros laikas, kada skelbimas buvo jums rodomas</translation> <translation id="4378154925671717803">Telefonas</translation> <translation id="438319986296050901">Bendrinti tik kortelę</translation> <translation id="4384468725000734951">Atliekant paiešką naudojama „Sogou“</translation> @@ -622,6 +629,7 @@ <translation id="4504667196171871375">Naudojant „Wi-Fi“ ir mobiliojo ryšio duomenis</translation> <translation id="4508528996305412043">Sklaidos kanalo kortelės meniu atidarytas</translation> <translation id="4508642716788467538">Pasirinkite kalbą</translation> +<translation id="4509501256689523862">Tai, ar naršant rodomi suasmeninti skelbimai, priklauso nuo šio nustatymo, <ph name="BEGIN_LINK_1" />skelbimų temų<ph name="END_LINK_1" />, <ph name="BEGIN_LINK_2" />slapukų nustatymų<ph name="END_LINK_2" /> ir nuo to, ar svetainė, kurioje lankotės, teikia suasmenintus skelbimus</translation> <translation id="4513387527876475750">{DAYS,plural, =1{Prieš # dieną}one{Prieš # dieną}few{Prieš # dienas}many{Prieš # dienos}other{Prieš # dienų}}</translation> <translation id="451872707440238414">Ieškoti žymėse</translation> <translation id="4521489764227272523">Pasirinkti duomenys pašalinti iš „Chrome“ ir sinchronizuojamų įrenginių. @@ -649,6 +657,7 @@ <translation id="4662373422909645029">Skaičiai slapyvardyje negalimi</translation> <translation id="4663499661119906179">Peržiūrėkite populiariausias svetaines ir jums skirtus pasakojimus</translation> <translation id="4663756553811254707">Ištrinta žymių: <ph name="NUMBER_OF_BOOKMARKS" /></translation> +<translation id="4668279686271488041">Skelbimų vertinimo duomenys reguliariai ištrinami iš jūsų įrenginio</translation> <translation id="4668347365065281350">Visi svetainių išsaugoti duomenys, įskaitant slapukus ir kitus vietoje saugomus duomenis</translation> <translation id="4678082183394354975">Tamsioji tema, skirta svetainėms, įjungta sistemoje „Chrome“</translation> <translation id="4684427112815847243">Viską sinchronizuoti</translation> @@ -740,6 +749,7 @@ <translation id="5091199029769593641">Netrukus atidarę naują skirtuką matysite istorijas iš „<ph name="SITE_NAME" />“. Svetainės, kurias stebite, saugomos jūsų „Google“ paskyroje. Jas galite tvarkyti „Discover“ nustatymuose.</translation> <translation id="5091249083535528968">Išplėstiniai naudojimo duomenys</translation> <translation id="509429900233858213">Įvyko klaida.</translation> +<translation id="5097349930204431044">Svetainės, kuriose lankotės, gali nustatyti, kas jums patinka, ir siūlyti skelbimus jums toliau naršant</translation> <translation id="5099845111805573968">Vienąkart pasirinkus svetainę kompiuteriams, nustatymas taikomas svetainei kaskart apsilankius</translation> <translation id="5102401324271069229">Jei svetainė bando pavogti slaptažodį ar atsisiuntėte žalingą failą, „Chrome“ gali siųsti URL, įskaitant puslapio turinio dalis, Saugaus naršymo funkcijai</translation> <translation id="510275257476243843">Liko 1 val.</translation> @@ -1034,6 +1044,7 @@ <translation id="6659594942844771486">Skirtukas</translation> <translation id="666731172850799929">Atidaryti naudojant „<ph name="APP_NAME" />“</translation> <translation id="6671495933530132209">Kopijuoti vaizdą</translation> +<translation id="6672917148207387131">Pridėti <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Jei norite pradėti sinchronizuoti, įveskite slaptafrazę</translation> <translation id="6676840375528380067">Išvalyti jūsų „Chrome“ duomenis iš šio įrenginio?</translation> <translation id="6676927815633975364">Prisijunkite prie šios svetainės ir „Chrome“</translation> @@ -1046,6 +1057,7 @@ <translation id="6737612727720318154">Leiskite pomėgį ar svetainę, jei manote, kad su elementu susiję skelbimai gali būti jums naudingi</translation> <translation id="6738516213925468394"><ph name="TIME" /> duomenys buvo užšifruoti naudojant <ph name="BEGIN_LINK" />sinchronizavimo slaptafrazę<ph name="END_LINK" />. Įveskite ją, kad pradėtumėte sinchronizuoti.</translation> <translation id="6738867403308150051">Atsisiunčiama...</translation> +<translation id="674388916582496364">Įprasta, kad svetainės, kuriose lankotės, įsimena, kuo domitės, kad galėtų suasmeninti jūsų patirtį. Svetainėse taip pat gali būti saugoma su „Chrome“ susijusi informacija apie jūsų pomėgius.</translation> <translation id="6751521182688001123">Sparčiai atidarykite naują skirtuką. Jei norite redaguoti šį spartųjį klavišą, palieskite ir palaikykite.</translation> <translation id="6756507620369789050">Bendrinti atsiliepimą</translation> <translation id="6767294960381293877">Įrenginių, su kuriais reikia bendrinti skirtuką, sąrašas atidarytas (pusė aukščio).</translation> @@ -1089,6 +1101,7 @@ <translation id="6963766334940102469">Ištrinti žymes</translation> <translation id="696447261358045621">Išjungti inkognito režimą</translation> <translation id="6971862865055170158">Nepatvirtinti</translation> +<translation id="6978717888677691380">Svetainės, kurias užblokavote</translation> <translation id="6979737339423435258">Visas laikotarpis</translation> <translation id="6987047470128880212">Inkognito režimas šiame įrenginyje nepasiekiamas</translation> <translation id="6995899638241819463">Įspėti, jei slaptažodžiai buvo atskleisti įvykus duomenų saugos pažeidimui</translation> @@ -1133,6 +1146,7 @@ <translation id="7242755609445462077">Stilizuotas paryškinimas: <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Įsitikinkite, kad įrenginyje „<ph name="TARGET_DEVICE_NAME" />“ įjungtas sinchronizavimas sistemoje „Chrome“</translation> <translation id="7252076891734325316">Padėkite telefoną šalia kompiuterio</translation> +<translation id="7260367682327802201">Jūsų „Android“ įrenginyje gali būti panašus nustatymas. Jei naršyklėje „Chrome“ ir „Android“ įrenginyje įjungtas skelbimų vertinimo nustatymas, įmonė gali vertinti skelbimo efektyvumą svetainėse, kuriose lankotės, ir programose, kurias naudojate.</translation> <translation id="727288900855680735">Pateikti <ph name="ONE_TIME_CODE" /> šaltiniui <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Užblokuota svetainė</translation> <translation id="7286572596625053347">Keisti <ph name="LANGUAGE" />?</translation> @@ -1213,6 +1227,7 @@ <translation id="766587987807204883">Čia rodomi straipsniai, kuriuos galima skaityti net neprisijungus</translation> <translation id="768232549260819724">GIF nukopijuotas</translation> <translation id="7682724950699840886">Išbandykite nurodytus patarimus: įsitikinkite, kad įrenginyje yra pakankamai vietos, ir bandykite eksportuoti dar kartą.</translation> +<translation id="7686086654630106285">Daugiau apie svetainių siūlomus skelbimus</translation> <translation id="768618399695552958">Kai kurie puslapiai, kuriuose lankotės, yra iš anksto įkelti. Puslapiai gali būti iš anksto įkelti per „Google“ serverius, kai susieti iš „Google“ svetainės.</translation> <translation id="7698359219371678927">Kurti el. laišką naudojant „<ph name="APP_NAME" />“</translation> <translation id="7704317875155739195">Automatiškai užbaigti paieškas ir URL</translation> @@ -1383,6 +1398,7 @@ <translation id="8540136935098276800">Įveskite tinkamo formato URL</translation> <translation id="854522910157234410">Atidaryti šį puslapį</translation> <translation id="8551513938758868521">Inkognito skirtukų užrakinimas uždarius „Chrome“</translation> +<translation id="8559961053328923750">„Chrome“ riboja bendrą duomenų, kuriuos svetainės gali bendrinti naršyklėje, kad būtų galima įvertinti skelbimų našumą, kiekį</translation> <translation id="8559990750235505898">Siūlyti versti puslapius į kitas kalbas</translation> <translation id="8560602726703398413">Suraskite savo skaitymo sąrašą skiltyje „Žymės“</translation> <translation id="8562452229998620586">Čia bus rodomi išsaugoti slaptažodžiai.</translation> @@ -1423,6 +1439,7 @@ <translation id="8773160212632396039">Užklausa apdorojama</translation> <translation id="8788265440806329501">Naršymo istorija uždaryta</translation> <translation id="8788968922598763114">Iš naujo atidaryti paskutinį uždarytą skirtuką</translation> +<translation id="879027982257117598">Pavyzdžiui, jei lankotės svetainėje, kurioje parduodami ilgo nuotolio bėgimo bateliai, ji gali nuspręsti, kad jus domina bėgimo maratonai. Vėliau, apsilankius kitoje svetainėje, joje gali būti rodomas pirmosios svetainės siūlomas bėgimo batelių skelbimas.</translation> <translation id="8798449543960971550">Skaityta</translation> <translation id="8803526663383843427">Kada įjungta</translation> <translation id="8805097383171548551">Jei norite nuskaityti QR kodą, naudokite įrenginį, kuriame yra fotoaparatas</translation> @@ -1465,6 +1482,7 @@ <translation id="8996847606757455498">Pasirinkti kitą teikėją</translation> <translation id="8998729206196772491">Prisijungiate naudodami „<ph name="MANAGED_DOMAIN" />“ tvarkomą paskyrą ir suteikiate jos administratoriui galimybę valdyti jūsų „Chrome“ duomenis. Duomenys bus visam laikui susieti su šia paskyra. Atsijungę nuo „Chrome“ ištrinsite duomenis iš šio įrenginio, bet jie ir toliau bus saugomi „Google“ paskyroje.</translation> <translation id="9022774213089566801">Dažnai lankytasi</translation> +<translation id="9022871169049522985">Svetainės ir reklamuotojai gali vertinti skelbimų našumą</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vaizdo įrašas}one{# vaizdo įrašas}few{# vaizdo įrašai}many{# vaizdo įrašo}other{# vaizdo įrašų}}</translation> <translation id="9042893549633094279">Privatumas ir sauga</translation> <translation id="9050666287014529139">Slaptafrazė</translation> @@ -1486,11 +1504,13 @@ <translation id="9108312223223904744">Telefonas kaip saugos raktas</translation> <translation id="9108808586816295166">Saugi DNS gali būti pasiekiama ne visą laiką</translation> <translation id="9128984223251192329">Privatumo „sandbox“ (smėlio dėžės) raginimas atidarytas iki pusės ekrano aukščio</translation> +<translation id="9131209053278896908">Čia rodomos užblokuotos svetainės</translation> <translation id="9133397713400217035">Naršyti neprisijungus</translation> <translation id="9148126808321036104">Prisijungti dar kartą</translation> <translation id="9158770349521403363">Bendrinti tik turinį</translation> <translation id="9159716826369098114">Atkurkite skirtukų grupę, kurioje yra tiek skirtukų: <ph name="TAB_COUNT" />, kaip naują foninę skirtukų grupę.</translation> <translation id="9169507124922466868">Naršymo istorija atidaryta puse aukščio</translation> +<translation id="9183331776983279456">„Chrome“ automatiškai ištrina senesnes nei keturių savaičių svetaines. Jei dar kartą apsilankysite svetainėje, ji gali vėl atsirasti sąraše. Taip pat galite užblokuoti svetainę, kad ji negalėtų siūlyti skelbimų.</translation> <translation id="9190276265094487094">Istorija bus rodoma visuose sinchronizuojamuose įrenginiuose, todėl galėsite tęsti tai, ką darėte</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Tikrinta prieš 1 minutę}one{Tikrinta prieš # minutę}few{Tikrinta prieš # minutes}many{Tikrinta prieš # minutės}other{Tikrinta prieš # minučių}}</translation> <translation id="9204836675896933765">Liko failų: 1</translation> @@ -1512,6 +1532,7 @@ <translation id="96681097142096641">Peržiūrėti supaprastintą puslapį?</translation> <translation id="968900484120156207">Jūsų aplankomi puslapiai rodomi čia</translation> <translation id="970715775301869095">Liko <ph name="MINUTES" /> min.</translation> +<translation id="978317418833355355">Galite užblokuoti nepageidaujamas svetaines. „Chrome“ taip pat iš sąrašo automatiškai ištrina senesnes nei keturių savaičių svetaines. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation> <translation id="981121421437150478">Neprisijungus</translation> <translation id="983192555821071799">Uždar. visų skirtukų lapus</translation> <translation id="987264212798334818">Bendra</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index 4108fb8..b009f4c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google svētku logotips: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Lasīšanas saraksts</translation> <translation id="1266864766717917324">Nevarēja kopīgot: <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Bloķēt vietni <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Pieskarties, lai izvērstu</translation> <translation id="1285310382777185058">Valodas maiņa</translation> <translation id="1291207594882862231">Dzēst vēsturi, sīkfailus, vietnes datus, kešatmiņu…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Darbības tīmeklī un lietotnēs</translation> <translation id="2239812875700136898">Pārvaldiet ziņas, izmantojot opciju pogu lapā Discover.</translation> <translation id="2248941474044011069">Jūsu paroles tiek šifrētas jūsu ierīcē, pirms tās tiek saglabātas Google paroļu pārvaldniekā.</translation> +<translation id="2249635629516220541">Varat pielāgot informāciju, kas vietnēs tiek izmantota reklāmu rādīšanai</translation> <translation id="2259659629660284697">Paroļu eksportēšana…</translation> <translation id="2276231040576210443">Jūs jebkurā laikā <ph name="BEGIN_LINK1" />iestatījumos<ph name="END_LINK1" /> varat izvēlēties, ko sinhronizēt. Google var personalizēt pakalpojumu Meklēšana un citus pakalpojumus, ņemot vērā jūsu vēsturi.</translation> <translation id="2276696007612801991">Lai pārbaudītu paroles, pierakstieties Google kontā</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Kartes numurs</translation> <translation id="2625189173221582860">Parole ir nokopēta.</translation> <translation id="2642087927315268160">Pierakstīšanās ekrāna apakšdaļas lapa ir aizvērta.</translation> +<translation id="2643064289437760082">Reklāmu izvērtēšanas datus jebkurā laikā varat dzēst, dzēšot pārlūkošanas datus</translation> <translation id="2647434099613338025">Pievienot valodu</translation> <translation id="2649068648233607930">Jūsu pārlūku pārvalda <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Paskaidrojums par konfidencialitātes ceļvedi ir aizvērts</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Saņemt palīdzību<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Notiek cenas izsekošana</translation> <translation id="3037517125981011456">Tiek rādīti aicinājumi pierakstīties pārlūkā Chrome.</translation> +<translation id="3038272154009688107">Skatīt visas vietnes</translation> <translation id="3046945242843292318">Nākamreiz uz šo vietni varat pāriet ātrāk</translation> <translation id="3055113921564083271">Jūsu noņemtās intereses</translation> <translation id="3055259925215945098">Grāmatzīme ir pārvietota</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Pierakstīties pārlūkā Chrome</translation> <translation id="3285080554353377245">Video pamācības par Chrome lietošanu</translation> <translation id="3290249595466894471">Lai palīdzētu atklāt jaunus draudus, tiek nosūtīti arī nelieli datu paraugi, kas ietver lapas, lejupielādes, paplašinājumu aktivitāti un sistēmas informāciju.</translation> +<translation id="3293181007446299124">Pārlūkošanas vēsture tiek privāti glabāta jūsu ierīcē, un pārskati tiek nosūtīti ar kavēšanos, lai aizsargātu jūsu identitāti</translation> <translation id="3297344142967351106">Balss palīgs</translation> <translation id="3303414029551471755">Vai turpināt ar satura lejupielādi?</translation> <translation id="3305795716056605962">Lai tulkotu lapas, izmantojiet pogu Citas opcijas</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Sinhronizācija vairs nedarbojas</translation> <translation id="3976396876660209797">Noņemt un atkārtoti izveidot šo saīsni</translation> <translation id="3981902534690264083">Reklāmdevēji var izprast reklāmu veiktspēju</translation> +<translation id="3985022125189960801">Varat atkārtoti pievienot vietni, ja vēlaties to atkal iekļaut to vietņu grupā, kurām atļaujat prognozēt jūsu intereses</translation> <translation id="3985215325736559418">Vai vēlaties vēlreiz lejupielādēt failu <ph name="FILE_NAME" />?</translation> <translation id="3987993985790029246">Saites kopēšana</translation> <translation id="3999683152997576765">Varat skatīt un noņemt interešu tēmas, kas vietnēs tiek izmantotas reklāmu rādīšanai. Pārlūkā Chrome tiek aptuveni noteiktas jūsu intereses, ņemot vērā neseno pārlūkošanas vēsturi.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Tiek reģistrēta sekošana...</translation> <translation id="4335835283689002019">Droša pārlūkošana ir izslēgta</translation> <translation id="4351244548802238354">Aizvērt dialoglodziņu</translation> +<translation id="4369735607080757018">Noteiktu datu veidi (piemēram, diennakts daļa, kad reklāma tika jums rādīta) tiek kopīgoti starp vietnēm, lai izvērtētu tajās rādīto reklāmu veiktspēju</translation> <translation id="4378154925671717803">Tālrunis</translation> <translation id="438319986296050901">Kopīgot tikai kartīti</translation> <translation id="4384468725000734951">Tiek izmantota meklētājprogramma Sogou</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wi-Fi tīklā un mobilo datu savienojumā</translation> <translation id="4508528996305412043">Plūsmas kartītes izvēlne ir atvērta</translation> <translation id="4508642716788467538">Izvēlieties valodu</translation> +<translation id="4509501256689523862">To, vai pārlūkošanas laikā jums rādītā reklāma tiek personalizēta, nosaka šis iestatījums, <ph name="BEGIN_LINK_1" />reklāmu tēmas<ph name="END_LINK_1" />, <ph name="BEGIN_LINK_2" />sīkfailu iestatījumi<ph name="END_LINK_2" />, kā arī tas, vai atvērtajā vietnē tiek veikta reklāmu personalizēšana.</translation> <translation id="4513387527876475750">{DAYS,plural, =1{pirms # dienas}zero{pirms # dienām}one{pirms # dienas}other{pirms # dienām}}</translation> <translation id="451872707440238414">Meklēt grāmatzīmēs</translation> <translation id="4521489764227272523">Atlasītie dati ir noņemti no pārlūka Chrome un jūsu sinhronizētajām ierīcēm. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Segvārdā nedrīkst būt cipari</translation> <translation id="4663499661119906179">Skatiet vietnes, ko apmeklējat visbiežāk, un ieteicamos rakstus</translation> <translation id="4663756553811254707">Dzēstas <ph name="NUMBER_OF_BOOKMARKS" /> grāmatzīmes</translation> +<translation id="4668279686271488041">Reklāmu izvērtēšanas dati tiek regulāri dzēsti no jūsu ierīces</translation> <translation id="4668347365065281350">Visi vietņu glabātie dati, tostarp sīkfaili un citi lokāli glabāti dati</translation> <translation id="4678082183394354975">Pārlūkā Chrome ir ieslēgta tumšā motīva lietošana vietnēs</translation> <translation id="4684427112815847243">Sinhronizēt visu</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Drīzumā, atverot jaunu cilni, būs redzami raksti no vietnes <ph name="SITE_NAME" />. Vietnes, kurām sekojat, tiek saglabātas jūsu Google kontā. Varat tās pārvaldīt Discover iestatījumu sadaļā.</translation> <translation id="5091249083535528968">Detalizēti lietojuma dati</translation> <translation id="509429900233858213">Radās kļūda.</translation> +<translation id="5097349930204431044">Jūsu apmeklētās vietnes var izsecināt, kas jums patīk, un ieteikt reklāmas, kamēr turpināt pārlūkošanu</translation> <translation id="5099845111805573968">Ja vienreiz atlasīsiet vietni datoriem, šis iestatījums tiks lietots vietnei ikreiz, kad to apmeklēsiet.</translation> <translation id="5102401324271069229">Ja kādā vietnē tiek mēģināts nozagt jūsu paroli vai ja jūs lejupielādējat kaitīgu failu, Chrome var nosūtīt attiecīgos URL, tostarp lapas satura fragmentus, uz funkciju Droša pārlūkošana.</translation> <translation id="510275257476243843">Atlikusi 1 h</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Cilne</translation> <translation id="666731172850799929">Atvērt lietotnē <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Kopēt attēlu</translation> +<translation id="6672917148207387131">Pievienot vietni <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Lai sāktu sinhronizāciju, ievadiet savu ieejas frāzi</translation> <translation id="6676840375528380067">Vai dzēst jūsu Chrome datus no šīs ierīces?</translation> <translation id="6676927815633975364">Pierakstieties šajā vietnē un pārlūkā Chrome.</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Atļaujiet interesi vai vietni, ja uzskatāt, ka ar to saistītās reklāmas jums būtu noderīgas</translation> <translation id="6738516213925468394">Jūsu dati tika šifrēti, izmantojot jūsu <ph name="BEGIN_LINK" />sinhronizācijas ieejas frāzi<ph name="END_LINK" />šādā datumā: <ph name="TIME" />. Lai sāktu sinhronizāciju, ievadiet ieejas frāzi.</translation> <translation id="6738867403308150051">Notiek lejupielāde…</translation> +<translation id="674388916582496364">Bieži vien piedāvāto iespēju personalizēšanai jūsu apmeklētajās vietnēs tiek saglabāta informācija par jūsu interesēm. Vietnes var arī glabāt informāciju par jūsu interesēm pārlūkā Chrome.</translation> <translation id="6751521182688001123">Ātra jaunas cilnes atvēršana. Lai rediģētu šo īsinājumtaustiņu, pieskarieties un turiet.</translation> <translation id="6756507620369789050">Sniegt atsauksmes</translation> <translation id="6767294960381293877">Ierīču saraksts, ar ko kopīgot cilni, ir atvērts pusekrāna augstumā.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Dzēst grāmatzīmes</translation> <translation id="696447261358045621">Iziet no inkognito režīma</translation> <translation id="6971862865055170158">Neapstiprināt</translation> +<translation id="6978717888677691380">Jūsu bloķētās vietnes</translation> <translation id="6979737339423435258">Visā periodā</translation> <translation id="6987047470128880212">Inkognito režīms šajā ierīcē nav pieejams.</translation> <translation id="6995899638241819463">Brīdināt, ja paroles tiek atklātas datu aizsardzības pārkāpuma dēļ</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Stilizēts izcēlums: <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Ierīcē <ph name="TARGET_DEVICE_NAME" /> ieslēdziet Chrome sinhronizāciju</translation> <translation id="7252076891734325316">Novietojiet tālruni blakus datoram</translation> +<translation id="7260367682327802201">Android ierīcē var būt līdzīgs iestatījums. Ja pārlūkā Chrome un jūsu Android ierīcē ir ieslēgta reklāmu izvērtēšana, uzņēmumi var izvērtēt reklāmas efektivitāti jūsu apmeklētajās vietnēs un izmantotajās lietotnēs.</translation> <translation id="727288900855680735">Vai iesniegt kodu <ph name="ONE_TIME_CODE" /> vietnē <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Bloķēta vietne</translation> <translation id="7286572596625053347">Vai mainīt valodu (<ph name="LANGUAGE" />)?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Šeit tiek rādīti raksti, kurus varat lasīt arī bezsaistē</translation> <translation id="768232549260819724">GIF attēls ir nokopēts.</translation> <translation id="7682724950699840886">Ņemiet vērā šos ieteikumus: atbrīvojiet ierīcē vietu un mēģiniet eksportēt vēlreiz.</translation> +<translation id="7686086654630106285">Vairāk par vietnēs ieteiktajām reklāmām</translation> <translation id="768618399695552958">Dažas no jūsu apmeklētajām lapām ir ielādētas iepriekš. Lapas var tikt ielādētas iepriekš, izmantojot Google serverus, ja novirzīšana tiek veikta no Google vietnes.</translation> <translation id="7698359219371678927">Izveidojiet e-pasta ziņojumu lietotnē <ph name="APP_NAME" />.</translation> <translation id="7704317875155739195">Automātiski pabeigt meklēšanas vaicājumus un vietrāžus URL</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Ievadiet pareizi formatētu URL.</translation> <translation id="854522910157234410">Atvērt šo lapu</translation> <translation id="8551513938758868521">Bloķēt inkognito cilnes, aizverot pārlūku Chrome</translation> +<translation id="8559961053328923750">Pārlūkā Chrome tiek ierobežots kopējais to datu apjoms, ko vietnes pārlūkā var kopīgot reklāmu veiktspējas izvērtēšanai</translation> <translation id="8559990750235505898">Piedāvāt tulkot lapas citās valodās</translation> <translation id="8560602726703398413">Skatiet savu lasīšanas sarakstu grāmatzīmju sadaļā</translation> <translation id="8562452229998620586">Šeit tiks parādītas saglabātās paroles.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Notiek pieprasījuma apstrāde</translation> <translation id="8788265440806329501">Navigācijas vēsture ir aizvērta</translation> <translation id="8788968922598763114">Atkārtoti atvērt pēdējo aizvērto cilni</translation> +<translation id="879027982257117598">Piemēram, ja apmeklējat vietni, kurā tiek tirgoti garo distanču skriešanas apavi, vietne var izsecināt, ka interesējaties par maratonu skriešanu. Vēlāk apmeklējot citu vietni, tajā var tikt rādīta skriešanas apavu reklāma, pamatojoties uz iepriekš apmeklētās vietnes izsecinātajām interesēm.</translation> <translation id="8798449543960971550">Lasītas</translation> <translation id="8803526663383843427">Ja ieslēgta</translation> <translation id="8805097383171548551">Lai varētu skenēt kvadrātkodu, izmantojiet ierīci ar kameru.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Izvēlēties citu nodrošinātāju</translation> <translation id="8998729206196772491">Jūs pierakstāties kontā, kas tiek pārvaldīts domēnā <ph name="MANAGED_DOMAIN" />, un sniedzat tā administratoram kontroli pār saviem Chrome datiem. Jūsu dati tiks neatgriezeniski saistīti ar šo kontu. Izrakstoties no pārlūka Chrome, jūsu dati tiks dzēsti no šīs ierīces, taču tie tiks saglabāti jūsu Google kontā.</translation> <translation id="9022774213089566801">Bieži apmeklētas vietnes</translation> +<translation id="9022871169049522985">Vietnes un reklāmdevēji var izvērtēt savu reklāmu veiktspēju</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# videoklips}zero{# videoklipi}one{# videoklips}other{# videoklipi}}</translation> <translation id="9042893549633094279">Konfidencialitāte un drošība</translation> <translation id="9050666287014529139">Ieejas frāze</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Atbalsts, kas var palīdzēt izmantot tālruni kā drošības atslēgu</translation> <translation id="9108808586816295166">Drošs DNS serveris var nebūt pieejams visu laiku.</translation> <translation id="9128984223251192329">Konfidencialitātes smilškastes uzvedne ir atvērta pusekrāna augstumā</translation> +<translation id="9131209053278896908">Šeit ir redzamas bloķētās vietnes</translation> <translation id="9133397713400217035">Izpētīt bezsaisti</translation> <translation id="9148126808321036104">Pierakstieties vēlreiz</translation> <translation id="9158770349521403363">Kopīgot tikai saturu</translation> <translation id="9159716826369098114">Atjaunot ciļņu grupu kā jaunu fona ciļņu grupu. Ciļņu skaits šajā grupā ir <ph name="TAB_COUNT" />.</translation> <translation id="9169507124922466868">Navigācijas vēsture ir atvērta līdz pusei.</translation> +<translation id="9183331776983279456">Pārlūkā Chrome tiek automātiski dzēstas vietnes, kas tajā ir glabātas ilgāk par četrām nedēļām. Ja kādu vietni apmeklējat atkārtoti, tā var atkal tikt iekļauta sarakstā. Varat arī liegt vietnei ieteikt jums reklāmas.</translation> <translation id="9190276265094487094">Jūsu vēsture būs pieejama visās sinhronizētajās ierīcēs, tāpēc varēsiet turpināt iesākto.</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Pārbaudīts: pirms 1 minūtes}zero{Pārbaudīts: pirms # minūtēm}one{Pārbaudīts: pirms # minūtes}other{Pārbaudīts: pirms # minūtēm}}</translation> <translation id="9204836675896933765">Atlicis 1 fails</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Vai skatīt vienkāršotu lapu</translation> <translation id="968900484120156207">Šeit tiek rādītas jūsu apmeklētās lapas</translation> <translation id="970715775301869095">Atlikušas <ph name="MINUTES" /> min</translation> +<translation id="978317418833355355">Varat bloķēt nevēlamas vietnes. Pārlūkā Chrome no saraksta tiek automātiski arī dzēstas vietnes, kas tajā ir glabātas ilgāk par četrām nedēļām. <ph name="BEGIN_LINK" />Uzzināt vairāk<ph name="END_LINK" /></translation> <translation id="981121421437150478">Bezsaistē</translation> <translation id="983192555821071799">Aizvērt visas cilnes</translation> <translation id="987264212798334818">Vispārīgi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index 15cf106..c494e71 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google ഡൂഡിൽ: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">വായനാ ലിസ്റ്റ്</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> പങ്കിടാനായില്ല</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="1283039547216852943">വികസിപ്പിക്കാൻ ടാപ്പ് ചെയ്യുക</translation> <translation id="1285310382777185058">ഭാഷ മാറ്റുക</translation> <translation id="1291207594882862231">ചരിത്രവും കുക്കികളും സൈറ്റ് വിവരവും കാഷെയും മായ്ക്കുക...</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">വെബ്, ആപ്പ് ആക്റ്റിവിറ്റി</translation> <translation id="2239812875700136898">'Discover-നുള്ള ഓപ്ഷനുകൾ' ബട്ടൺ അമർത്തി നിങ്ങളുടെ സ്റ്റോറികൾ നിയന്ത്രിക്കുക</translation> <translation id="2248941474044011069">Google പാസ്വേഡ് മാനേജറിലേക്ക് സംരക്ഷിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്വേഡുകൾ എൻക്രിപ്റ്റ് ചെയ്യുന്നു</translation> +<translation id="2249635629516220541">നിങ്ങളെ പരസ്യം കാണിക്കുന്നതിനായി സൈറ്റുകൾ ഉപയോഗിക്കുന്ന വിവരങ്ങൾ ഇഷ്ടാനുസൃതമാക്കുക</translation> <translation id="2259659629660284697">പാസ്വേഡുകൾ എക്സ്പോർട്ട് ചെയ്യുക...</translation> <translation id="2276231040576210443">എന്തൊക്കെ സമന്വയിപ്പിക്കണമെന്ന് നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും <ph name="BEGIN_LINK1" />ക്രമീകരണത്തിൽ<ph name="END_LINK1" /> തിരഞ്ഞെടുക്കാം. നിങ്ങളുടെ ചരിത്രത്തെ അടിസ്ഥാനമാക്കി, Search, മറ്റ് സേവനങ്ങൾ എന്നിവ Google വ്യക്തിപരമാക്കിയേക്കാം.</translation> <translation id="2276696007612801991">പാസ്വേഡുകൾ പരിശോധിക്കാൻ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സെെൻ ഇൻ ചെയ്യുക</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">കാർഡ് നമ്പർ</translation> <translation id="2625189173221582860">പാസ്വേഡ് പകർത്തി</translation> <translation id="2642087927315268160">സൈൻ ഇൻ ചെയ്യാനുള്ള ബോട്ടം ഷീറ്റ് അടച്ചു.</translation> +<translation id="2643064289437760082">ബ്രൗസിംഗ് ഡാറ്റ ഇല്ലാതാക്കുന്നതിലൂടെ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും ആഡ് മെഷർമെന്റ് ഡാറ്റ ഇല്ലാതാക്കാം</translation> <translation id="2647434099613338025">ഭാഷ ചേര്ക്കുക</translation> <translation id="2649068648233607930">നിങ്ങളുടെ ബ്രൗസർ മാനേജ് ചെയ്യുന്നത് <ph name="DOMAIN" /> ആണ്</translation> <translation id="2650348088770008516">സ്വകാര്യതാ ഗൈഡ് വിശദീകരണം അടച്ചു</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />സഹായം തേടുക<ph name="END_LINK" /></translation> <translation id="3037177537145227281">നിരക്ക് ട്രാക്ക് ചെയ്യുന്നു</translation> <translation id="3037517125981011456">Chrome-ൽ സൈൻ ഇൻ ചെയ്യാനുള്ള നിർദ്ദേശങ്ങൾ കാണിക്കുന്നു</translation> +<translation id="3038272154009688107">എല്ലാ സൈറ്റുകളും കാണുക</translation> <translation id="3046945242843292318">അടുത്ത തവണ കൂടുതൽ വേഗത്തിൽ ഈ സൈറ്റിലേക്ക് എത്തുക</translation> <translation id="3055113921564083271">നിങ്ങൾ നീക്കം ചെയ്ത താൽപ്പര്യങ്ങൾ</translation> <translation id="3055259925215945098">ബുക്ക്മാർക്ക് നീക്കി</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="3285080554353377245">Chrome എങ്ങനെ ഉപയോഗിക്കാം എന്നതിനെക്കുറിച്ചുള്ള വീഡിയോകൾ</translation> <translation id="3290249595466894471">പുതിയ ഭീഷണികൾ കണ്ടെത്താൻ സഹായിക്കുന്നതിന് പേജുകൾ, ഡൗൺലോഡുകൾ, വിപുലീകരണ ആക്റ്റിവിറ്റി, സിസ്റ്റം വിവരങ്ങൾ എന്നിവയുടെ ഒരു ചെറിയ സാമ്പിളും അയയ്ക്കുന്നു</translation> +<translation id="3293181007446299124">നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം നിങ്ങളുടെ ഉപകരണത്തിൽ സ്വകാര്യമായി സൂക്ഷിക്കുകയും നിങ്ങളുടെ ഐഡന്റിറ്റി സംരക്ഷിക്കാനായി റിപ്പോർട്ടുകൾ വൈകി അയയ്ക്കുകയും ചെയ്യുന്നു.</translation> <translation id="3297344142967351106">ശബ്ദ സഹായം</translation> <translation id="3303414029551471755">ഉള്ളടക്കം ഡൗൺലോഡ് ചെയ്യുന്നതിലേക്ക് തുടരണോ?</translation> <translation id="3305795716056605962">'കൂടുതൽ ഓപ്ഷനുകൾ' ബട്ടണിൽ നിന്ന്, പേജുകൾ വിവർത്തനം ചെയ്യുക</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">'സമന്വയം' പ്രവർത്തനം നിർത്തി</translation> <translation id="3976396876660209797">ഈ കുറുക്കുവഴി നീക്കംചെയ്ത് പുനസൃഷ്ടിക്കുക</translation> <translation id="3981902534690264083">പരസ്യങ്ങൾ എങ്ങനെയാണ് പ്രകടനം കാഴ്ച വച്ചതെന്ന് പരസ്യദാതാക്കൾക്ക് മനസ്സിലാക്കാനാകും</translation> +<translation id="3985022125189960801">നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തെന്ന് ഊഹിക്കാനാകുന്ന സൈറ്റുകളുടെ പൂളിൽ ഒരു സൈറ്റ് വേണമെന്ന് തോന്നുകയാണെങ്കിൽ ആ സൈറ്റ് വീണ്ടും ചേർക്കുക</translation> <translation id="3985215325736559418">നിങ്ങൾക്ക് വീണ്ടും <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യണോ?</translation> <translation id="3987993985790029246">ലിങ്ക് പകർത്തുക</translation> <translation id="3999683152997576765">നിങ്ങളെ പരസ്യങ്ങൾ കാണിക്കാൻ സൈറ്റുകൾ ഉപയോഗിക്കുന്ന, താൽപ്പര്യമുള്ള വിഷയങ്ങൾ കാണാനും നീക്കം ചെയ്യാനും നിങ്ങൾക്ക് കഴിയും. നിങ്ങളുടെ അടുത്തിടെയുള്ള ബ്രൗസിംഗ് ചരിത്രം അടിസ്ഥാനമാക്കി നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ Chrome അനുമാനിക്കുന്നു.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">പിന്തുടരുന്നു...</translation> <translation id="4335835283689002019">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്</translation> <translation id="4351244548802238354">ഡയലോഗ് അടയ്ക്കുക</translation> +<translation id="4369735607080757018">സൈറ്റുകളുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കുന്നതിന്, നിങ്ങളെ ഒരു പരസ്യം കാണിച്ച സമയം പോലുള്ള പരിമിതമായ ഡാറ്റാ തരങ്ങൾ സൈറ്റുകൾ തമ്മിൽ പങ്കിടുന്നു</translation> <translation id="4378154925671717803">ഫോൺ</translation> <translation id="438319986296050901">കാർഡ് മാത്രം പങ്കിടുക</translation> <translation id="4384468725000734951">തിരയാൻ Sogou ഉപയോഗിക്കുന്നു</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">വൈഫൈയിലും മൊബൈൽ ഡാറ്റയിലും</translation> <translation id="4508528996305412043">ഫീഡ് കാർഡ് മെനു തുറന്നു</translation> <translation id="4508642716788467538">നിങ്ങളുടെ ഭാഷ തിരഞ്ഞെടുക്കുക</translation> +<translation id="4509501256689523862">നിങ്ങൾ ബ്രൗസ് ചെയ്യുന്നതിനനുസരിച്ച് നിങ്ങൾ കാണുന്ന പരസ്യം വ്യക്തിപരമാക്കിയതാണോ എന്നത് ഈ ക്രമീകരണം, <ph name="BEGIN_LINK_1" />പരസ്യത്തിന്റെ വിഷയങ്ങൾ<ph name="END_LINK_1" />, നിങ്ങളുടെ <ph name="BEGIN_LINK_2" />കുക്കി ക്രമീകരണം<ph name="END_LINK_2" />, നിങ്ങൾ കാണുന്ന സൈറ്റ് പരസ്യങ്ങൾ വ്യക്തിപരമാക്കുന്നുണ്ടോ എന്നിവയെ ആശ്രയിച്ചിരിക്കും</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# ദിവസം മുമ്പ്}other{# ദിവസം മുമ്പ്}}</translation> <translation id="451872707440238414">ബുക്ക്മാർക്കുകൾ തിരയുക</translation> <translation id="4521489764227272523">തിരഞ്ഞെടുത്ത ഡാറ്റയെ Chrome-ൽ നിന്നും നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഉപകരണങ്ങളിൽ നിന്നും നീക്കം ചെയ്തു. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">വിളിപ്പേരിൽ അക്കങ്ങൾ പാടില്ല</translation> <translation id="4663499661119906179">നിങ്ങൾക്കുള്ള പ്രധാന സൈറ്റുകളും സ്റ്റോറികളും കാണുക</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ബുക്ക്മാർക്കുകൾ ഇല്ലാതാക്കി</translation> +<translation id="4668279686271488041">നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് ആഡ് മെഷർമെന്റ് ഡാറ്റ പതിവായി ഇല്ലാതാക്കുന്നു</translation> <translation id="4668347365065281350">കുക്കികളും പ്രാദേശികമായി സംഭരിച്ച മറ്റ് വിവരങ്ങളും ഉൾപ്പെടെ സൈറ്റുകൾ സംഭരിച്ച എല്ലാ ഡാറ്റയും</translation> <translation id="4678082183394354975">സൈറ്റുകൾക്കുള്ള ഡാർക്ക് തീം Chrome-ൽ ഓണാണ്</translation> <translation id="4684427112815847243">എല്ലാം സമന്വയിപ്പിക്കുക</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">ഉടൻ, പുതിയൊരു ടാബ് തുറക്കുമ്പോൾ, നിങ്ങൾക്ക് <ph name="SITE_NAME" /> എന്നതിൽ നിന്നുള്ള സ്റ്റോറികൾ കാണാനാകും. നിങ്ങൾ പിന്തുടരുന്ന സൈറ്റുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നു. Discover ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് അവ മാനേജ് ചെയ്യാനാകും.</translation> <translation id="5091249083535528968">വിപുലീകൃത ഉപയോഗ ഡാറ്റ</translation> <translation id="509429900233858213">ഒരു പിശക് സംഭവിച്ചു.</translation> +<translation id="5097349930204431044">നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾക്ക് നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തെന്ന് നിർണ്ണയിക്കാനും ബ്രൗസ് ചെയ്യുന്നത് തുടരുന്നതിനിടെ പരസ്യങ്ങൾ നിർദ്ദേശിക്കാനുമാകും</translation> <translation id="5099845111805573968">ഡെസ്ക്ടോപ്പ് സൈറ്റ് ആണ് തിരഞ്ഞെടുക്കുന്നതെങ്കിൽ, നിങ്ങൾ സെെറ്റ് സന്ദർശിക്കുമ്പോഴെല്ലാം ഈ ക്രമീകരണം ബാധകമാകും</translation> <translation id="5102401324271069229">ഒരു സൈറ്റ് നിങ്ങളുടെ പാസ്വേഡ് മോഷ്ടിക്കാൻ ശ്രമിക്കുമ്പോഴോ നിങ്ങൾ ദോഷകരമായ ഒരു ഫയൽ ഡൗൺലോഡ് ചെയ്യുമ്പോഴോ, പേജ് ഉള്ളടക്കത്തിന്റെ ബിറ്റുകൾ ഉൾപ്പെടെയുള്ള URL-കൾ സുരക്ഷിത ബ്രൗസിംഗിലേക്ക് Chrome അയച്ചേക്കാം</translation> <translation id="510275257476243843">ഒരു മണിക്കൂർ ശേഷിക്കുന്നു</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">ബ്രൗസർ ടാബ്</translation> <translation id="666731172850799929"><ph name="APP_NAME" />-ൽ തുറക്കുക</translation> <translation id="6671495933530132209">ചിത്രം പകർത്തുക</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ചേർക്കുക</translation> <translation id="6674571176963658787">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, നിങ്ങളുടെ പാസ്ഫ്രെയ്സ് നൽകുക</translation> <translation id="6676840375528380067">ഉപകരണത്തില് നിന്ന് Chrome ഡാറ്റ മായ്ക്കണോ?</translation> <translation id="6676927815633975364">ഈ സൈറ്റിലും Chrome-ലും സൈൻ ഇൻ ചെയ്യുക</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">ഇനവുമായി ബന്ധപ്പെട്ട പരസ്യങ്ങൾ നിങ്ങൾക്ക് ഉപയോഗപ്രദമാകുമെന്ന് നിങ്ങൾ കരുതുന്നുവെങ്കിൽ, താൽപ്പര്യമോ സൈറ്റോ അനുവദിക്കുക</translation> <translation id="6738516213925468394"><ph name="TIME" />-ന് നിങ്ങളുടെ <ph name="BEGIN_LINK" />സമന്വയ പാസ്ഫ്രെയ്സ്<ph name="END_LINK" /> ഉപയോഗിച്ച് ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്തു. സമന്വയം ആരംഭിക്കുന്നതിന് ഇത് നൽകുക.</translation> <translation id="6738867403308150051">ഡൗൺലോഡുചെയ്യുന്നു...</translation> +<translation id="674388916582496364">നിങ്ങളുടെ അനുഭവം വ്യക്തിപരമാക്കുന്നതിന്, നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾ നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള കാര്യങ്ങൾ ഓർമ്മിക്കുന്നത് സാധാരണമാണ്. സൈറ്റുകൾക്ക് നിങ്ങളുടെ താൽപ്പര്യങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ Chrome-ൽ സംഭരിക്കാനുമാകും.</translation> <translation id="6751521182688001123">പുതിയ ടാബ് വേഗത്തിൽ തുറക്കുക. ഈ കുറുക്കുവഴി എഡിറ്റ് ചെയ്യാൻ, സ്പർശിച്ചുപിടിക്കുക.</translation> <translation id="6756507620369789050">ഫീഡ്ബാക്ക് പങ്കിടുക</translation> <translation id="6767294960381293877">പകുതി ഉയരത്തിൽ ടാബ് പങ്കിടാനാകുന്ന ഉപകരണങ്ങളുടെ ലിസ്റ്റ്.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">ബുക്ക്മാർക്കുകൾ ഇല്ലാതാക്കുക</translation> <translation id="696447261358045621">അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടക്കുക</translation> <translation id="6971862865055170158">അംഗീകരിക്കരുത്</translation> +<translation id="6978717888677691380">നിങ്ങൾ ബ്ലോക്ക് ചെയ്ത സൈറ്റുകൾ</translation> <translation id="6979737339423435258">എല്ലാ സമയത്തും</translation> <translation id="6987047470128880212">ഈ ഉപകരണത്തിൽ അദൃശ്യ മോഡ് ലഭ്യമല്ല</translation> <translation id="6995899638241819463">പാസ്വേഡുകൾ, ഡാറ്റാ ലംഘനത്തിന്റെ ഭാഗമായി വെളിപ്പെട്ടാൽ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">പ്രത്യേക സ്റ്റൈലിൽ ആക്കിയ ഹൈലൈറ്റ് <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Chrome-ൽ <ph name="TARGET_DEVICE_NAME" /> ഉപകരണത്തിലെ സമന്വയിപ്പിക്കൽ ഓണാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക</translation> <translation id="7252076891734325316">നിങ്ങളുടെ ഫോൺ കമ്പ്യൂട്ടറിന്റെ അടുത്ത് വയ്ക്കുക</translation> +<translation id="7260367682327802201">നിങ്ങളുടെ Android ഉപകരണത്തിൽ സമാനമായ ക്രമീകരണം ഉണ്ടായിരിക്കാം. Chrome-ലും നിങ്ങളുടെ Android ഉപകരണത്തിലും ആഡ് മെഷർമെന്റ് ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകളിലും ഉപയോഗിക്കുന്ന ആപ്പുകളിലും ഉടനീളമുള്ള പരസ്യങ്ങൾ ഫലപ്രദമാണോ എന്ന് അളക്കാൻ ഒരു കമ്പനിക്ക് സാധിച്ചേക്കാം.</translation> <translation id="727288900855680735"><ph name="ORIGIN" />-ലേക്ക് <ph name="ONE_TIME_CODE" /> നൽകണോ?</translation> <translation id="7274013316676448362">സൈറ്റ് ബ്ലോക്ക് ചെയ്തു</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> മാറ്റണോ?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">ഇവിടെ ദൃശ്യമാകുന്ന ലേഖനങ്ങൾ നിങ്ങൾ ഓഫ്ലൈൻ ആകുന്ന സമയത്ത് പോലും വായിക്കാം</translation> <translation id="768232549260819724">GIF പകർത്തി</translation> <translation id="7682724950699840886">ഈ നുറുങ്ങുകൾ പരീക്ഷിക്കൂ: നിങ്ങളുടെ ഉപകരണത്തിൽ ആവശ്യമായ ഇടം ഉണ്ടെന്ന് ഉറപ്പാക്കി, വീണ്ടും എക്സ്പോർട്ട് ചെയ്യാൻ ശ്രമിക്കുക.</translation> +<translation id="7686086654630106285">സൈറ്റുകൾ നിർദ്ദേശിക്കുന്ന പരസ്യങ്ങളെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ</translation> <translation id="768618399695552958">നിങ്ങൾ സന്ദർശിക്കുന്ന ചില പേജുകൾ മുൻകൂട്ടി ലോഡ് ചെയ്തവയാണ്. ഒരു Google സൈറ്റിൽ നിന്ന് ലിങ്ക് ചെയ്തിരിക്കുമ്പോൾ, Google സെർവറുകൾ മുഖേന പേജുകൾ മുൻകൂട്ടി ലോഡ് ചെയ്തേക്കാം.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> ആപ്പിൽ ഇമെയിൽ സൃഷ്ടിക്കുക</translation> <translation id="7704317875155739195">സ്വമേധയാ പൂർത്തിയാക്കുന്ന തിരയലുകളും URL-കളും</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">ശരിയായി ഫോർമാറ്റ് ചെയ്ത URL നൽകുക</translation> <translation id="854522910157234410">ഈ പേജ് തുറക്കുക</translation> <translation id="8551513938758868521">Chrome-ൽ നിന്ന് പുറത്ത് കടക്കുമ്പോൾ അദൃശ്യ ടാബുകൾ ലോക്ക് ചെയ്യുക</translation> +<translation id="8559961053328923750">പരസ്യത്തിന്റെ പ്രകടനം അളക്കുന്നതിനായി ബ്രൗസർ മുഖേന സൈറ്റുകൾക്ക് പങ്കിടാവുന്ന ഡാറ്റയുടെ അളവ് Chrome പരിമിതപ്പെടുത്തുന്നു</translation> <translation id="8559990750235505898">പേജുകൾ മറ്റ് ഭാഷകളിലേക്ക് വിവർത്തനം ചെയ്യാനുള്ള ഓഫർ</translation> <translation id="8560602726703398413">ബുക്ക്മാർക്കുകളിൽ നിങ്ങളുടെ വായനാ ലിസ്റ്റ് കണ്ടെത്തൂ</translation> <translation id="8562452229998620586">സംരക്ഷിച്ച പാസ്വേഡുകൾ ഇവിടെ ദൃശ്യമാകും.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">അഭ്യർത്ഥന പ്രോസസ് ചെയ്യുന്നു</translation> <translation id="8788265440806329501">നാവിഗേഷന് ചരിത്രം അടച്ചു</translation> <translation id="8788968922598763114">അവസാനം അടച്ച ടാബ് വീണ്ടും തുറക്കുക</translation> +<translation id="879027982257117598">ഉദാഹരണത്തിന്, ദീർഘദൂര ഓട്ടത്തിനുള്ള ഷൂസ് വിൽക്കുന്ന സൈറ്റ് നിങ്ങൾ സന്ദർശിക്കുകയാണെങ്കിൽ മാരത്തൺ ഓടുന്നതാണ് നിങ്ങളുടെ താൽപ്പര്യമെന്ന് സൈറ്റ് നിർണ്ണയിച്ചേക്കാം. പിന്നീട് നിങ്ങൾ മറ്റൊരു സൈറ്റ് സന്ദർശിക്കുകയാണെങ്കിൽ, ആദ്യത്തെ സൈറ്റ് നിർദ്ദേശിച്ച റണ്ണിംഗ് ഷൂസിന്റെ പരസ്യം ആ സൈറ്റിന് കാണിക്കാനാകും.</translation> <translation id="8798449543960971550">വായിച്ചവ</translation> <translation id="8803526663383843427">ഓണായിരിക്കുമ്പോൾ</translation> <translation id="8805097383171548551">QR കോഡ് സ്കാൻ ചെയ്യാൻ, ക്യാമറയുള്ള ഒരു ഉപകരണം ഉപയോഗിക്കുക.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">മറ്റൊരു ദാതാവിനെ തിരഞ്ഞെടുക്കുക</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" /> മാനേജ് ചെയ്യുന്ന ഒരു അക്കൗണ്ട് ഉപയോഗിച്ച് നിങ്ങൾ സൈൻ ഇൻ ചെയ്യുകയും ഇതിന്റെ അഡ്മിനിസ്ട്രേറ്റർക്ക് നിങ്ങളുടെ Chrome വിവരങ്ങളിന്മേൽ നിയന്ത്രണം നൽകുകയും ചെയ്യുന്നു. വിവരങ്ങളെ ഈ അക്കൗണ്ടുമായി ശാശ്വതമായി ബന്ധിപ്പിക്കും. Chrome-ൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുന്നത് ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ വിവരങ്ങളെ ഇല്ലാതാക്കുമെങ്കിലും, Google അക്കൗണ്ടിൽ തുടർന്നും അവയെ സൂക്ഷിക്കുന്നതാണ്.</translation> <translation id="9022774213089566801">പതിവായി സന്ദർശിക്കുന്നവ</translation> +<translation id="9022871169049522985">സൈറ്റുകൾക്കും പരസ്യദാതാക്കൾക്കും അവരുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കാനാകും</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# വീഡിയോ}other{# വീഡിയോകൾ}}</translation> <translation id="9042893549633094279">സ്വകാര്യതയും സുരക്ഷയും</translation> <translation id="9050666287014529139">പാസ്ഫ്രെയ്സ്</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">സുരക്ഷാ കീയായി ഫോൺ</translation> <translation id="9108808586816295166">എപ്പോഴും സുരക്ഷിത DNS ലഭ്യമായേക്കില്ല</translation> <translation id="9128984223251192329">സ്വകാര്യതാ സാൻഡ്ബോക്സ് പകുതി ഉയരത്തിൽ തുറന്നു</translation> +<translation id="9131209053278896908">ബ്ലോക്ക് ചെയ്ത സൈറ്റുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="9133397713400217035">ഓഫ്ലൈൻ ഉള്ളടക്കങ്ങൾ അടുത്തറിയൂ</translation> <translation id="9148126808321036104">വീണ്ടും പ്രവേശിക്കുക</translation> <translation id="9158770349521403363">ഉള്ളടക്കം മാത്രം പങ്കിടുക</translation> <translation id="9159716826369098114">പുതിയ പശ്ചാത്തല ടാബ് ഗ്രൂപ്പായി <ph name="TAB_COUNT" /> ടാബുകളുള്ള ടാബ് ഗ്രൂപ്പ് പുനഃസ്ഥാപിക്കുക.</translation> <translation id="9169507124922466868">നാവിഗേഷൻ ചരിത്രം പകുതിയായി തുറന്നിരിക്കുന്നു</translation> +<translation id="9183331776983279456">4 ആഴ്ചയിലധികം പഴക്കമുള്ള സൈറ്റുകൾ Chrome സ്വയമേവ ഇല്ലാതാക്കുന്നു. നിങ്ങൾ വീണ്ടും സന്ദർശിക്കുന്ന ഒരു സൈറ്റ്, ലിസ്റ്റിൽ വീണ്ടും ദൃശ്യമായേക്കാം. അല്ലെങ്കിൽ പരസ്യങ്ങൾ നിർദ്ദേശിക്കുന്നതിൽ നിന്ന് ഒരു സൈറ്റിനെ ബ്ലോക്ക് ചെയ്യാം.</translation> <translation id="9190276265094487094">സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ചരിത്രം ഉണ്ടാകുമെന്നതിനാൽ ചെയ്തുകൊണ്ടിരുന്ന കാര്യങ്ങൾ നിങ്ങൾക്ക് തുടരാനാകും</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{ഒരു മിനിറ്റ് മുമ്പ് പരിശോധിച്ചു}other{# മിനിറ്റ് മുമ്പ് പരിശോധിച്ചു}}</translation> <translation id="9204836675896933765">ഒരു ഫയൽ ശേഷിക്കുന്നു</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">ലളിതമാക്കിയ പേജ് കാണണോ?</translation> <translation id="968900484120156207">നിങ്ങൾ സന്ദർശിക്കുന്ന പേജുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="970715775301869095"><ph name="MINUTES" /> മിനിറ്റ് ശേഷിക്കുന്നു</translation> +<translation id="978317418833355355">ആവശ്യമില്ലാത്ത സൈറ്റുകൾ നിങ്ങൾക്ക് ബ്ലോക്ക് ചെയ്യാം. 4 ആഴ്ചയിലധികം പഴക്കമുള്ള സൈറ്റുകൾ ലിസ്റ്റിൽ നിന്ന് Chrome സ്വയമേവ ഇല്ലാതാക്കുന്നു. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation> <translation id="981121421437150478">ഓഫ്ലൈൻ</translation> <translation id="983192555821071799">ടാബെല്ലാം അടയ്ക്കൂ</translation> <translation id="987264212798334818">പൊതുവായ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb index 33bbb487..cc4ae7d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Унших жагсаалт</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />-г хуваалцаж чадсангүй</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" />-г блоклох</translation> <translation id="1283039547216852943">Дэлгэхийн тулд товших</translation> <translation id="1285310382777185058">Хэл өөрчлөх</translation> <translation id="1291207594882862231">Түүх, күүки, сайтын өгөгдөл, нөөцийг устгах...</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Веб, аппын үйл ажиллагаа</translation> <translation id="2239812875700136898">Мэдээ, нийтлэлээ Discover-н сонголтуудын товчлуураас хянана уу</translation> <translation id="2248941474044011069">Таны нууц үгнүүдийг Google-н Нууц үгний менежерт хадгалахаас нь өмнө төхөөрөмж дээр тань шифрлэдэг</translation> +<translation id="2249635629516220541">Танд зар харуулахын тулд сайтуудын ашигладаг мэдээллийг өөрчилнө үү</translation> <translation id="2259659629660284697">Нууц үгийг экспортлох...</translation> <translation id="2276231040576210443">Та синк хийх зүйлээ <ph name="BEGIN_LINK1" />тохиргоо<ph name="END_LINK1" /> хэсгээс хүссэн үедээ сонгох боломжтой. Google таны түүхэд тулгуурлан Хайлт болон бусад үйлчилгээг хувийн болгож магадгүй.</translation> <translation id="2276696007612801991">Нууц үгээ шалгахын тулд Google Бүртгэлдээ нэвтэрнэ үү</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Картын дугаар</translation> <translation id="2625189173221582860">Нууц үгийг хуулсан</translation> <translation id="2642087927315268160">Нэвтрэх доод хүснэгтийг хаасан.</translation> +<translation id="2643064289437760082">Та интернэтээр үзсэн өгөгдлөө устгаснаар зарын хэмжилтийн өгөгдлийг мөн хэзээд устгах боломжтой</translation> <translation id="2647434099613338025">Хэл нэмэх</translation> <translation id="2649068648233607930">Таны хөтчийг <ph name="DOMAIN" /> удирддаг</translation> <translation id="2650348088770008516">Нууцлалын хөтчийн тайлбарыг хаасан</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Тусламж авах<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Үнийг хянаж байна</translation> <translation id="3037517125981011456">Chrome-д нэвтрэх сануулгыг харуулна</translation> +<translation id="3038272154009688107">Бүх сайтыг харах</translation> <translation id="3046945242843292318">Дараагийн удаа энэ сайт руу илүү шуурхай очоорой</translation> <translation id="3055113921564083271">Таны хассан сонирхлууд</translation> <translation id="3055259925215945098">Хавчуургыг зөөсөн байна</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome руу нэвтрэх</translation> <translation id="3285080554353377245">Chrome-г хэрхэн ашиглах тухай видео</translation> <translation id="3290249595466894471">Шинэ аюул заналыг олж илрүүлэхэд туслахын тулд хуудас, татаж авсан файл, өргөтгөлийн үйл ажиллагаа болон системийн мэдээллийн багахан хэсгийг мөн илгээнэ.</translation> +<translation id="3293181007446299124">Таны хөтчийн түүхийг төхөөрөмж дээр тань нууцалж, таныг таних мэдээллийг хамгаалах үүднээс тайлангуудыг саатуулан илгээдэг</translation> <translation id="3297344142967351106">Дуут тусламж</translation> <translation id="3303414029551471755">Контентыг татаж авах үйлдлийг эхлүүлэх үү?</translation> <translation id="3305795716056605962">Бусад сонголт товчлуураас хуудаснуудыг орчуулна уу</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Синк ажиллахаа больсон</translation> <translation id="3976396876660209797">Энэ товчлолыг устгаад дахин үүсгэх</translation> <translation id="3981902534690264083">Сурталчлагчид зар хэр гүйцэтгэлтэй байгааг ойлгох боломжтой</translation> +<translation id="3985022125189960801">Хэрэв та сайтыг таны дуртай зүйлийг таамаглах боломжтой сайтуудын санд оруулахыг хүсвэл буцааж нэмнэ үү</translation> <translation id="3985215325736559418">Та <ph name="FILE_NAME" />-г дахиж татах уу?</translation> <translation id="3987993985790029246">Холбоосыг хуулах</translation> <translation id="3999683152997576765">Танд зар харуулахад ашиглах сонирхлын сайтуудын сэдвийг та харах болон хасах боломжтой. Chrome таны сонирхлыг саяхны хөтчийн түүхэд тань тулгуурлан тооцоолно.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Дагаж байна...</translation> <translation id="4335835283689002019">Аюулгүй үзэх тохиргоо унтраалттай байна</translation> <translation id="4351244548802238354">Харилцах цонхыг хаах</translation> +<translation id="4369735607080757018">Танд зар харуулсан өдрийн цаг зэрэг зарынхаа гүйцэтгэлийг хэмжихийн тулд сайтуудын хооронд хязгаарлагдмал төрлийн өгөгдлийг хуваалцдаг.</translation> <translation id="4378154925671717803">Утас</translation> <translation id="438319986296050901">Зөвхөн карт хуваалцана уу</translation> <translation id="4384468725000734951">Sogou-р хайж байна</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wi-Fi болон мобайл датагаар</translation> <translation id="4508528996305412043">Сувгийн картын цэсийг нээсэн байна</translation> <translation id="4508642716788467538">Хэлээ сонгох</translation> +<translation id="4509501256689523862">Таныг үзэх явцад таны харж буй зарыг хувийн болгосон эсэх нь энэ тохиргоо, <ph name="BEGIN_LINK_1" />Зарын сэдэв<ph name="END_LINK_1" />, таны <ph name="BEGIN_LINK_2" />күүкиний тохиргоо<ph name="END_LINK_2" /> болон таны үзэж буй сайт зарыг хувийн болгосон эсэхээс хамаарна</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# өдрийн өмнө}other{# өдрийн өмнө}}</translation> <translation id="451872707440238414">Хавчуурга хайх</translation> <translation id="4521489764227272523">Сонгосон өгөгдлийг таны Chrome болон синк хийсэн төхөөрөмжөөс устгасан болно. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Хоч тоо агуулж болохгүй</translation> <translation id="4663499661119906179">Танд зориулсан шилдэг сайт болон мэдээ нийтлэлүүдийг үзээрэй</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> хавчуурга устгасан</translation> +<translation id="4668279686271488041">Зарын хэмжилтийн өгөгдлийг таны төхөөрөмжөөс тогтмол устгадаг</translation> <translation id="4668347365065281350">Күүки болон дотоодод хадгалсан бусад өгөгдлийг багтаасан сайтуудын хадгалсан бүх өгөгдөл</translation> <translation id="4678082183394354975">Сайтуудад зориулсан бараан загвар нь Chrome-д асаалттай байна</translation> <translation id="4684427112815847243">Бүгдийг sync хийх</translation> @@ -736,6 +745,7 @@ <translation id="5091199029769593641">Удахгүй та шинэ таб нээх үедээ <ph name="SITE_NAME" />-с стори харна. Таны дагадаг сайтуудыг Google бүртгэлд тань хадгалдаг. Та тэдгээрийг Discover-н тохиргоонд удирдах боломжтой.</translation> <translation id="5091249083535528968">Өргөтгөсөн ашиглалтын өгөгдөл</translation> <translation id="509429900233858213">Алдаа гарлаа.</translation> +<translation id="5097349930204431044">Таны зочилсон сайтууд таны юунд дуртайг тодорхойлж, цааш тасралтгүй үзэх үед зар санал болгох боломжтой</translation> <translation id="5099845111805573968">Таныг компьютерын сайтыг нэг удаа сонгох үед тохиргоог таныг зочлох бүрд сайтад хэрэгжүүлдэг</translation> <translation id="5102401324271069229">Хэрэв сайт таны нууц үгийг хулгайлахаар оролдох эсвэл таныг аюултай файл татах үед Chrome URL-г хуудасны бага зэрэг контентын хамт Аюулгүй үзэх рүү илгээж болзошгүй</translation> <translation id="510275257476243843">1 цаг үлдсэн</translation> @@ -1030,6 +1040,7 @@ <translation id="6659594942844771486">Таб</translation> <translation id="666731172850799929"><ph name="APP_NAME" /> дотор нээ</translation> <translation id="6671495933530132209">Зургийг хуулах</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> нэмэх</translation> <translation id="6674571176963658787">Синк хийж эхлэхийн тулд нэвтрэх үгээ оруулна уу</translation> <translation id="6676840375528380067">Энэ төхөөрөмжөөс Chrome-н өгөгдлөө устгах уу?</translation> <translation id="6676927815633975364">Энэ сайт болон Chrome-д нэвтэрнэ үү</translation> @@ -1042,6 +1053,7 @@ <translation id="6737612727720318154">Хэрэв танд тухайн зүйлтэй холбоотой зар хэрэгтэй гэж бодож байвал сонирхол эсвэл сайтыг зөвшөөрнө үү</translation> <translation id="6738516213925468394">Таны өгөгдлийг таны <ph name="BEGIN_LINK" />синкийн нэвтрэх үгтэй<ph name="END_LINK" /> <ph name="TIME" />-д синк хийсэн байна. Синкийг эхлүүлэхийн тулд үүнийг оруулна уу.</translation> <translation id="6738867403308150051">Татаж байна…</translation> +<translation id="674388916582496364">Таны зочилсон сайтууд таны хэрэглээг хувийн болгохын тулд таны сонирхдог зүйлсийг санах нь түгээмэл юм. Сайтууд мөн Chrome-р таны сонирхлын талаарх мэдээллийг хадгалах боломжтой.</translation> <translation id="6751521182688001123">Шинэ табыг шуурхай нээнэ үү. Энэ товчлолыг засахын тулд хүрээд удаан дарна уу.</translation> <translation id="6756507620369789050">Санал хүсэлт хуваалцах</translation> <translation id="6767294960381293877">Таб хуваалцах төхөөрөмжийн жагсаалтыг хагас өндрөөр нээлээ.</translation> @@ -1085,6 +1097,7 @@ <translation id="6963766334940102469">Хавчуургыг устгах</translation> <translation id="696447261358045621">Нууцлалтай горимоос гарах</translation> <translation id="6971862865055170158">Бүү зөвшөөр</translation> +<translation id="6978717888677691380">Таны блоклосон сайтууд</translation> <translation id="6979737339423435258">Бүх цаг</translation> <translation id="6987047470128880212">Нууцлалтай таб энэ төхөөрөмж дээр боломжгүй</translation> <translation id="6995899638241819463">Өгөгдлийн зөрчлийн улмаас нууц үгийг задруулсан бол танд анхааруулах</translation> @@ -1129,6 +1142,7 @@ <translation id="7242755609445462077">Стильжүүлсэн тодруулга <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> нь Chrome дээр синк хийхийг асаасан эсэхийг шалгана уу</translation> <translation id="7252076891734325316">Утсаа компьютертой ойр байрлуулна уу</translation> +<translation id="7260367682327802201">Таны Android төхөөрөмж ижил төстэй тохиргоог агуулж болно. Хэрэв Chrome болон таны Android төхөөрөмж дээр зарын хэмжилтийг асаасан бол компани таны зочилдог веб сайтууд болон ашигладаг аппууд дээрх зарын үр нөлөөг хэмжих боломжтой.</translation> <translation id="727288900855680735"><ph name="ONE_TIME_CODE" />-г <ph name="ORIGIN" />-д илгээх үү?</translation> <translation id="7274013316676448362">Блоклосон сайт</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" />-г өөрчлөх үү?</translation> @@ -1209,6 +1223,7 @@ <translation id="766587987807204883">Офлайн үедээ ч унших боломжтой нийтлэлүүд энд харагддаг</translation> <translation id="768232549260819724">GIF-г хуулсан</translation> <translation id="7682724950699840886">Дараах зөвлөмжийг хэрэгжүүлж үзнэ үү: төхөөрөмж дээрээ хангалттай сул зай гаргаад дахин экспорт хийж үзнэ үү.</translation> +<translation id="7686086654630106285">Сайтаас санал болгож буй зарын талаарх илүү дэлгэрэнгүй</translation> <translation id="768618399695552958">Таны зочилдог зарим хуудсыг урьдчилан ачаална. Google-н сайтаас холбосон үед хуудаснуудыг Google-н серверүүдээр урьдчилан ачаалж магадгүй.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />-д имэйл үүсгэнэ үү</translation> <translation id="7704317875155739195">Хайлт болон URL-г автоматаар гүйцээх</translation> @@ -1377,6 +1392,7 @@ <translation id="8540136935098276800">Зөв форматтай URL оруулна уу</translation> <translation id="854522910157234410">Энэ хуудсыг нээх</translation> <translation id="8551513938758868521">Таныг Chrome-с гарах үед нууцлалтай табуудыг түгжинэ</translation> +<translation id="8559961053328923750">Chrome нь зарын гүйцэтгэлийг хэмжихийн тулд хөтчөөр дамжуулан сайтуудын хуваалцаж болох нийт өгөгдлийн хэмжээг хязгаарладаг</translation> <translation id="8559990750235505898">Хуудсыг бусад хэлээр орчуулахыг санал болгох</translation> <translation id="8560602726703398413">Хавчуургаас унших жагсаалтаа олно уу</translation> <translation id="8562452229998620586">Хадгалагдсан нууц үгнүүд энд гарч ирнэ.</translation> @@ -1417,6 +1433,7 @@ <translation id="8773160212632396039">Хүсэлтийг боловсруулж байна</translation> <translation id="8788265440806329501">Навигацын түүх хаалттай байна</translation> <translation id="8788968922598763114">Сүүлд хаасан чихтэй хуудсыг дахин нээх</translation> +<translation id="879027982257117598">Жишээлбэл, хэрэв та холын зайн гүйлтийн гутал зардаг сайтад зочилбол тухайн сайт таныг марафонд гүйх сонирхолтой гэж үзэж магадгүй юм Дараа нь, хэрэв та өөр сайт руу зочилбол тэр сайт нь эхний сайтын санал болгосон гүйлтийн гутлын зарыг харуулах болно.</translation> <translation id="8798449543960971550">Унших</translation> <translation id="8803526663383843427">Асаалттай байх үед</translation> <translation id="8805097383171548551">QR кодыг скан хийхийн тулд камертай төхөөрөмж ашиглана уу.</translation> @@ -1459,6 +1476,7 @@ <translation id="8996847606757455498">Өөр үйлчилгээ үзүүлэгч сонгох</translation> <translation id="8998729206196772491">Та <ph name="MANAGED_DOMAIN" />-н удирддаг бүртгэлээр нэвтэрч байгаа бөгөөд үүний админд таны Chrome-н өгөгдлийг хянах зөвшөөрлийг олгож байна. Таны өгөгдөл энэ бүртгэлд бүрмөсөн холбоотой байх болно. Chrome-с гарснаар таны өгөгдлийг энэ төхөөрөмжөөс устгах хэдий ч, тэдгээр нь таны Google бүртгэлд хэвээр үлдэх болно.</translation> <translation id="9022774213089566801">Байнга зочилдог</translation> +<translation id="9022871169049522985">Сайтууд болон сурталчлагчид зарынхаа гүйцэтгэлийг хэмжих боломжтой</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Видео}other{# Видео}}</translation> <translation id="9042893549633094279">Нууцлал, аюулгүй байдал</translation> <translation id="9050666287014529139">Нэвтрэх хэллэг</translation> @@ -1480,11 +1498,13 @@ <translation id="9108312223223904744">Аюулгүй байдлын түлхүүрийн тусламж болох гар утас</translation> <translation id="9108808586816295166">Аюулгүй DNS нь үргэлж боломжтой биш байж болзошгүй</translation> <translation id="9128984223251192329">Privacy Sandbox сануулгыг тал хэмжээгээр нээсэн</translation> +<translation id="9131209053278896908">Блоклосон сайтууд энд гарч ирнэ</translation> <translation id="9133397713400217035">Офлайн горимд судлах</translation> <translation id="9148126808321036104">Дансандаа дахин нэвтрэх</translation> <translation id="9158770349521403363">Зөвхөн контент хуваалцана уу</translation> <translation id="9159716826369098114"><ph name="TAB_COUNT" /> табтай табын бүлгийг шинэ дэвсгэр табын бүлгээр сэргээнэ үү.</translation> <translation id="9169507124922466868">Навигацын түүхийг хагас нээлээ</translation> +<translation id="9183331776983279456">Chrome нь 4 долоо хоногоос дээш удсан сайтуудыг автоматаар устгадаг. Таны дахин зочилсон сайт жагсаалтад дахин гарч ирж магадгүй. Эсвэл та сайтыг танд зар санал болгохыг блоклож болно.</translation> <translation id="9190276265094487094">Таны синк хийсэн бүх төхөөрөмж дээр таны түүхийг хадгална. Ингэснээр та хийж байсан зүйлээ үргэлжлүүлэх боломжтой</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 минутын өмнө шалгасан}other{# минутын өмнө шалгасан}}</translation> <translation id="9204836675896933765">1 файл үлдсэн</translation> @@ -1506,6 +1526,7 @@ <translation id="96681097142096641">Хялбарчилсан хуудсыг үзэх үү?</translation> <translation id="968900484120156207">Таны зочилдог хуудас энд харагдана</translation> <translation id="970715775301869095"><ph name="MINUTES" /> минут үлдсэн</translation> +<translation id="978317418833355355">Та хүсээгүй сайтаа блоклож болно. Chrome нь мөн жагсаалтад 4 долоо хоногоос дээш удсан сайтуудыг автоматаар устгадаг. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation> <translation id="981121421437150478">Offline</translation> <translation id="983192555821071799">Бүх табыг хаах</translation> <translation id="987264212798334818">Ерөнхий</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb index 1c19eb14..33a7aa5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Coretan Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Senarai bacaan</translation> <translation id="1266864766717917324">Tidak dapat berkongsi <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Sekat <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Ketik untuk kembangkan</translation> <translation id="1285310382777185058">Tukar bahasa</translation> <translation id="1291207594882862231">Hapuskan sejarah, kuki, data tapak, cache...</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Aktiviti Web & Apl</translation> <translation id="2239812875700136898">Kawal cerita anda daripada butang Pilihan untuk Discover</translation> <translation id="2248941474044011069">Kata laluan anda disulitkan pada peranti sebelum disimpan ke Pengurus Kata Laluan Google</translation> +<translation id="2249635629516220541">Sesuaikan maklumat yang digunakan oleh laman untuk memaparkan iklan kepada anda</translation> <translation id="2259659629660284697">Eksport kata laluan…</translation> <translation id="2276231040576210443">Anda boleh memilih item yang hendak disegerakkan dalam <ph name="BEGIN_LINK1" />tetapan<ph name="END_LINK1" /> pada bila-bila masa. Google mungkin memeribadikan Carian dan perkhidmatan lain berdasarkan sejarah anda.</translation> <translation id="2276696007612801991">Log masuk ke akaun Google anda untuk menyemak kata laluan anda</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Nombor kad</translation> <translation id="2625189173221582860">Kata laluan disalin</translation> <translation id="2642087927315268160">Helaian bawah log masuk ditutup.</translation> +<translation id="2643064289437760082">Anda sentiasa boleh memadamkan data pengukuran iklan dengan memadamkan data semakan imbas anda</translation> <translation id="2647434099613338025">Tambah bahasa</translation> <translation id="2649068648233607930">Penyemak imbas anda diurus oleh <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Penjelasan panduan privasi ditutup</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Dapatkan bantuan<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Menjejaki harga</translation> <translation id="3037517125981011456">Memaparkan gesaan untuk log masuk ke Chrome</translation> +<translation id="3038272154009688107">Lihat semua laman</translation> <translation id="3046945242843292318">Lawati laman ini dengan lebih pantas selepas ini</translation> <translation id="3055113921564083271">Minat yang anda alih keluar</translation> <translation id="3055259925215945098">Penanda halaman dialihkan</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Log masuk ke Chrome</translation> <translation id="3285080554353377245">Video tentang cara menggunakan Chrome</translation> <translation id="3290249595466894471">Turut menghantar sedikit sampel halaman, muat turun, aktiviti sambungan dan maklumat sistem untuk membantu penemuan ancaman baharu</translation> +<translation id="3293181007446299124">Sejarah penyemakan imbas anda dipastikan tertutup pada peranti anda dan penghantaran laporan dilengahkan untuk melindungi identiti anda</translation> <translation id="3297344142967351106">Bantuan suara</translation> <translation id="3303414029551471755">Teruskan memuat turun kandungan?</translation> <translation id="3305795716056605962">Terjemah halaman daripada Lagi Butang pilihan</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Penyegerakan telah berhenti berfungsi</translation> <translation id="3976396876660209797">Alih keluar dan buat semula pintasan ini</translation> <translation id="3981902534690264083">Pengiklan boleh mengetahui prestasi iklan</translation> +<translation id="3985022125189960801">Tambahkan kembali laman jika anda mahukan laman itu di dalam kumpulan laman yang boleh meneka perkara yang disukai</translation> <translation id="3985215325736559418">Adakah anda ingin memuat turun <ph name="FILE_NAME" /> semula?</translation> <translation id="3987993985790029246">Salin pautan</translation> <translation id="3999683152997576765">Anda boleh melihat dan mengalih keluar topik minat yang digunakan oleh laman untuk memaparkan iklan kepada anda. Chrome menganggarkan minat anda berdasarkan sejarah penyemakan imbas anda baru-baru ini.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Mengikuti…</translation> <translation id="4335835283689002019">Penyemakan Imbas Selamat dimatikan</translation> <translation id="4351244548802238354">Tutup dialog</translation> +<translation id="4369735607080757018">Jenis data terhad dikongsi antara laman untuk mengukur prestasi iklan mereka, seperti masa hari iklan dipaparkan kepada anda</translation> <translation id="4378154925671717803">Telefon</translation> <translation id="438319986296050901">Kongsi kad sahaja</translation> <translation id="4384468725000734951">Menggunakan Sogou untuk carian</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Pada Wi-Fi & data mudah alih</translation> <translation id="4508528996305412043">Menu kad suapan dibuka</translation> <translation id="4508642716788467538">Pilih bahasa anda</translation> +<translation id="4509501256689523862">Semasa anda menyemak imbas, sama ada iklan yang anda lihat diperibadikan bergantung pada tetapan ini, <ph name="BEGIN_LINK_1" />topik Iklan<ph name="END_LINK_1" />, <ph name="BEGIN_LINK_2" />tetapan kuki<ph name="END_LINK_2" />anda, dan jika laman yang anda lihat ialah iklan diperibadikan</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# hari yang lalu}other{# hari yang lalu}}</translation> <translation id="451872707440238414">Cari penanda halaman anda</translation> <translation id="4521489764227272523">Data yang dipilih telah dialih keluar daripada Chrome dan peranti anda yang disegerakkan. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Nama panggilan tidak boleh mengandungi nombor</translation> <translation id="4663499661119906179">Lihat cerita dan laman web paling kerap dilawat untuk anda</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> penanda halaman dipadamkan</translation> +<translation id="4668279686271488041">Data ukuran iklan dipadamkan dengan kerap daripada peranti anda</translation> <translation id="4668347365065281350">Semua data yang disimpan oleh tapak, termasuk kuki dan data lain yang disimpan setempat</translation> <translation id="4678082183394354975">Tema gelap untuk laman dihidupkan dalam Chrome</translation> <translation id="4684427112815847243">Segerakkan semua</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Tidak lama lagi, anda akan melihat cerita daripada <ph name="SITE_NAME" /> apabila anda membuka tab baharu. Laman yang anda ikuti disimpan pada Google Account anda. Anda boleh mengurus laman tersebut dalam tetapan Discover.</translation> <translation id="5091249083535528968">Data penggunaan lanjutan</translation> <translation id="509429900233858213">Ralat telah berlaku.</translation> +<translation id="5097349930204431044">Laman yang anda lawati boleh menentukan perkara yang anda sukai dan mencadangkan iklan sambil anda meneruskan penyemakan imbas</translation> <translation id="5099845111805573968">Apabila anda memilih laman desktop sekali, tetapan itu akan digunakan pada laman setiap kali anda melawati laman itu</translation> <translation id="5102401324271069229">Jika laman cuba mencuri kata laluan anda atau apabila anda memuat turun fail yang berbahaya, Chrome mungkin menghantar URL termasuk sedikit kandungan halaman kepada Penyemakan Imbas Selamat</translation> <translation id="510275257476243843">1 jam lagi</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Tab</translation> <translation id="666731172850799929">Buka dalam <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Salin imej</translation> +<translation id="6672917148207387131">Tambah <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Untuk memulakan penyegerakan, masukkan ungkapan laluan anda</translation> <translation id="6676840375528380067">Kosongkan data Chrome anda daripada peranti ini?</translation> <translation id="6676927815633975364">Log masuk ke laman ini dan Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Benarkan minat atau laman jika anda fikir iklan yang berkaitan dengan item itu berguna bagi anda</translation> <translation id="6738516213925468394">Data anda disulitkan dengan <ph name="BEGIN_LINK" />ungkapan laluan segerak<ph name="END_LINK" /> anda pada <ph name="TIME" />. Masukkannya untuk memulakan penyegerakan.</translation> <translation id="6738867403308150051">Memuat turun…</translation> +<translation id="674388916582496364">Menjadi kebiasaan bagi laman yang anda lawati mengingati perkara yang anda minati, untuk memeribadikan pengalaman anda. Laman boleh menyimpan maklumat tentang minat anda menggunakan Chrome.</translation> <translation id="6751521182688001123">Buka tab baharu dengan pantas. Untuk mengedit pintasan ini, sentuh dan tahan.</translation> <translation id="6756507620369789050">Kongsi maklum balas</translation> <translation id="6767294960381293877">Senarai peranti untuk berkongsi tab dibuka pada ketinggian separuh.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Padamkan penanda halaman</translation> <translation id="696447261358045621">Tinggalkan mod Inkognito</translation> <translation id="6971862865055170158">Jangan luluskan</translation> +<translation id="6978717888677691380">Laman yang anda sekat</translation> <translation id="6979737339423435258">Sepanjang masa</translation> <translation id="6987047470128880212">Inkognito tidak tersedia pada peranti ini</translation> <translation id="6995899638241819463">Beri amaran kepada anda jika kata laluan terdedah dalam pelanggaran data</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Serlahan digayakan <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Pastikan penyegerakan telah dihidupkan dalam Chrome pada <ph name="TARGET_DEVICE_NAME" /></translation> <translation id="7252076891734325316">Letakkan telefon anda dekat dengan komputer</translation> +<translation id="7260367682327802201">Peranti Android anda mungkin menyertakan tetapan yang serupa. Jika pengukuran Iklan dihidupkan dalam Chrome dan pada peranti Android anda, syarikat mungkin dapat mengukur keberkesanan iklan pada semua laman web yang anda lawati dan apl yang anda gunakan.</translation> <translation id="727288900855680735">Serahkan <ph name="ONE_TIME_CODE" /> ke <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Tapak yang disekat</translation> <translation id="7286572596625053347">Tukar <ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Artikel dipaparkan di sini, yang boleh anda baca walaupun semasa anda luar talian</translation> <translation id="768232549260819724">GIF Disalin</translation> <translation id="7682724950699840886">Cuba petua berikut: pastikan ruang pada peranti anda mencukupi, cuba eksport sekali lagi.</translation> +<translation id="7686086654630106285">Lagi tentang iklan laman yang dicadangkan</translation> <translation id="768618399695552958">Beberapa halaman yang anda lawati dipramuat. Halaman mungkin dipramuat melalui pelayan Google apabila dipautkan dari laman Google.</translation> <translation id="7698359219371678927">Buat e-mel dalam <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autolengkap carian dan URL</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Masukkan URL yang diformatkan dengan betul</translation> <translation id="854522910157234410">Buka halaman ini</translation> <translation id="8551513938758868521">Kunci tab Inkognito apabila anda meninggalkan Chrome</translation> +<translation id="8559961053328923750">Chrome mengehadkan jumlah data yang boleh dikongsi laman itu melalui penyemak imbas untuk mengukur prestasi iklan</translation> <translation id="8559990750235505898">Tawaran untuk menterjemah halaman dalam bahasa lain</translation> <translation id="8560602726703398413">Cari senarai bacaan anda dalam Penanda Halaman</translation> <translation id="8562452229998620586">Kata laluan yang disimpan akan kelihatan di sini.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Memproses permintaan</translation> <translation id="8788265440806329501">Sejarah navigasi ditutup</translation> <translation id="8788968922598763114">Buka semula tab yang terakhir ditutup</translation> +<translation id="879027982257117598">Contohnya, jika anda melawati laman yang menjual kasut larian jarak jauh, laman tersebut mungkin memutuskan bahawa anda berminat dalam larian maraton. Kemudian, jika anda melawati laman lain, laman itu boleh memaparkan kepada anda iklan kasut lari yang dicadangkan oleh laman pertama.</translation> <translation id="8798449543960971550">Baca</translation> <translation id="8803526663383843427">Apabila dihidupkan</translation> <translation id="8805097383171548551">Untuk mengimbas Kod QR, gunakan peranti yang mempunyai kamera.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Pilih penyedia lain</translation> <translation id="8998729206196772491">Anda log masuk dengan akaun yang diurus oleh <ph name="MANAGED_DOMAIN" /> dan memberikan kawalan terhadap data Chrome anda kepada pentadbirnya. Data anda akan terikat secara kekal kepada akaun ini. Tindakan log keluar daripada Chrome akan memadamkan data anda daripada peranti ini, tetapi data itu akan kekal disimpan dalam Akaun Google anda.</translation> <translation id="9022774213089566801">Kerap dilawat</translation> +<translation id="9022871169049522985">Laman dan pengiklan boleh mengukur prestasi iklan mereka</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Video}other{# Video}}</translation> <translation id="9042893549633094279">Privasi dan keselamatan</translation> <translation id="9050666287014529139">Frasa laluan</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Telefon sebagai Sokongan Kunci Keselamatan</translation> <translation id="9108808586816295166">DNS selamat mungkin tidak tersedia sepanjang masa</translation> <translation id="9128984223251192329">Gesaan Kotak Pasir Privasi dibuka pada ketinggian separuh</translation> +<translation id="9131209053278896908">Sekat laman yang dipaparkan di sini</translation> <translation id="9133397713400217035">Teroka Luar Talian</translation> <translation id="9148126808321036104">Log masuk semula</translation> <translation id="9158770349521403363">Kongsi kandungan sahaja</translation> <translation id="9159716826369098114">Pulihkan kumpulan tab <ph name="TAB_COUNT" /> tab sebagai kumpulan tab latar baharu.</translation> <translation id="9169507124922466868">Sejarah navigasi separa terbuka</translation> +<translation id="9183331776983279456">Chrome memadamkan laman yang melebihi 4 minggu secara automatik. Laman yang anda lawati sekali lagi mungkin muncul semula dalam senarai. Atau anda boleh menyekat laman daripada mencadangkan iklan untuk anda.</translation> <translation id="9190276265094487094">Sejarah anda boleh didapati pada semua peranti tersegerak anda supaya anda boleh meneruskan perkara yang sedang anda lakukan</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{Disemak 1 minit yang lalu}other{Disemak # minit yang lalu}}</translation> <translation id="9204836675896933765">1 fail lagi</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Lihat paparan mudah?</translation> <translation id="968900484120156207">Halaman yang anda lawati dipaparkan di sini</translation> <translation id="970715775301869095"><ph name="MINUTES" /> minit lagi</translation> +<translation id="978317418833355355">Anda boleh menyekat laman yang anda tidak mahu. Chrome turut memadamkan laman yang disimpan melebihi 4 minggu daripada senarai secara automatik. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation> <translation id="981121421437150478">Luar talian</translation> <translation id="983192555821071799">Tutup semua tab</translation> <translation id="987264212798334818">Umum</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb index 2690d005..a58fc06 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle- <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">ဖတ်ရန် စာရင်း</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ကို မျှဝေ၍မရပါ။</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ကို ပိတ်ထားရန်</translation> <translation id="1283039547216852943">ချဲ့ရန် တို့ပါ</translation> <translation id="1285310382777185058">ဘာသာစကား ပြောင်းခြင်း</translation> <translation id="1291207594882862231">မှတ်တမ်း၊ ကွတ်ကီး၊ ဆိုက်ဒေတာ၊ ကက်ရှ်များကို ရှင်းလင်းပါ...</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်</translation> <translation id="2239812875700136898">သင့်သတင်းဆောင်းပါးများကို 'Discover အတွက် ရွေးစရာများ' ခလုတ်မှ ထိန်းချုပ်ပါ</translation> <translation id="2248941474044011069">စကားဝှက်များကို ‘Google စကားဝှက်မန်နေဂျာ’ သို့ မသိမ်းမီ သင်၏စက်၌ အသွင်ဝှက်ပြီးပါပြီ</translation> +<translation id="2249635629516220541">သင့်ကိုကြော်ငြာပြရန် ဝဘ်ဆိုက်များ အသုံးပြုသည့် အချက်အလက်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်သည်</translation> <translation id="2259659629660284697">စကားဝှက်များကို တင်ပို့ခြင်း…</translation> <translation id="2276231040576210443">စင့်ခ်လုပ်မည့်အရာကို <ph name="BEGIN_LINK1" />ဆက်တင်များ<ph name="END_LINK1" /> တွင် အချိန်မရွေး ရွေးနိုင်သည်။ Google က Search နှင့် အခြားဝန်ဆောင်မှုများကို သင့်မှတ်တမ်းပေါ်မူတည်၍ ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်နိုင်သည်။</translation> <translation id="2276696007612801991">သင့်စကားဝှက်များကိုစစ်ရန် သင့် Google အကောင့်သို့ လက်မှတ်ထိုးဝင်ပါ</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">ကဒ်နံပါတ်</translation> <translation id="2625189173221582860">စကားဝှက်ကို ကူးပြီးပါပြီ</translation> <translation id="2642087927315268160">လက်မှတ်ထိုးဝင်သည့် အောက်ခြေအပိုဆောင်း စာမျက်နှာ ပိတ်ထားသည်။</translation> +<translation id="2643064289437760082">သင်၏ ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာအား ဖျက်ခြင်းဖြင့် ကြော်ငြာဆိုင်ရာ တိုင်းတာမှုဒေတာကို အချိန်မရွေးဖျက်နိုင်သည်</translation> <translation id="2647434099613338025">ဘာသာစကား ထည့်ရန်</translation> <translation id="2649068648233607930">သင်၏ဘရောင်ဇာကို <ph name="DOMAIN" /> က စီမံခန့်ခွဲသည်</translation> <translation id="2650348088770008516">ကိုယ်ရေးအချက်အလက်လုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက် ပိတ်ပြီးပြီ</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />အကူအညီရယူရန်<ph name="END_LINK" /></translation> <translation id="3037177537145227281">ဈေးနှုန်း စောင့်ကြည့်နေသည်</translation> <translation id="3037517125981011456">Chrome သို့ လက်မှတ်ထိုးဝင်ရန် အတည်ပြုခြင်းစနစ်များ ပြသည်</translation> +<translation id="3038272154009688107">ဝဘ်ဆိုက်အားလုံး ကြည့်ရန်</translation> <translation id="3046945242843292318">နောက်တစ်ကြိမ်တွင် ဤဝဘ်ဆိုက်သို့ ပိုမြန်မြန်သွားနိုင်သည်</translation> <translation id="3055113921564083271">သင်ဖယ်ရှားလိုက်သည့် စိတ်ဝင်စားမှုများ</translation> <translation id="3055259925215945098">လိပ်စာ ရွှေ့လိုက်သည်</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome သို့ လက်မှတ်ထိုး ဝင်</translation> <translation id="3285080554353377245">Chrome အသုံးပြုနည်းအကြောင်း ဗီဒီယိုများ</translation> <translation id="3290249595466894471">အန္တရာယ်အသစ်များကို ရှာဖွေရာ၌ အထောက်အကူဖြစ်စေရန် စာမျက်နှာ၊ ဒေါင်းလုဒ်၊ နောက်ဆက်တွဲလုပ်ဆောင်ချက်နှင့် စနစ်အချက်အလက်များ၏ နမူနာအချို့ကိုလည်း ပို့သည်</translation> +<translation id="3293181007446299124">ကြည့်ရှုမှုမှတ်တမ်းကို သင့်စက်တွင် သီးသန့်ထားရှိပြီး သင့်အထောက်အထားကို ကာကွယ်ရန် အစီရင်ခံစာများအား စောင့်ဆိုင်း၍ ပို့သည်</translation> <translation id="3297344142967351106">အသံ အကူအညီ</translation> <translation id="3303414029551471755">အကြောင်းအရာအား ဒေါင်းလုပ်လုပ်ရန် ရှေ့ဆက်မလား?</translation> <translation id="3305795716056605962">‘နောက်ထပ်ရွေးစရာများ’ ခလုတ်မှတစ်ဆင့် စာမျက်နှာများ ဘာသာပြန်နိုင်သည်</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">စင့်ခ်ပြုလုပ်ခြင်း ရပ်တန့်သွားပါပြီ</translation> <translation id="3976396876660209797">ဤဖြတ်လမ်းလင့်ခ်ကို ဖယ်ရှားပြီး အသစ်ပြန်လုပ်ပါ</translation> <translation id="3981902534690264083">ကြော်ငြာသူများက ကြော်ငြာလုပ်ဆောင်ပုံကို နားလည်နိုင်မည်</translation> +<translation id="3985022125189960801">ဝဘ်ဆိုက်တစ်ခုကို သင်နှစ်သက်သည့်အရာအား ခန့်မှန်းနိုင်သော ဝဘ်ဆိုက်များစာရင်းသို့ ပြန်ထည့်လိုက ထည့်နိုင်သည်</translation> <translation id="3985215325736559418"><ph name="FILE_NAME" /> ကို ထပ်မံဒေါင်းလုဒ်လုပ်လိုပါသလား။</translation> <translation id="3987993985790029246">လင့်ခ်ကူးယူမည်</translation> <translation id="3999683152997576765">ကြော်ငြာပြရန်သုံးသည့် သင်စိတ်ဝင်စားသော ဝဘ်ဆိုက်များ၏ အကြောင်းအရာများကို ကြည့်ကာ ဖယ်ရှားနိုင်သည်။ သင့်လတ်တလော ကြည့်ရှုခြင်းမှတ်တမ်းအပေါ်မူတည်၍ သင့်စိတ်ဝင်စားမှုများကို Chrome က ခန့်မှန်းသည်။</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">လိုက်ကြည့်နေသည်...</translation> <translation id="4335835283689002019">ဘေးကင်းစွာဖွင့်ကြည့်ခြင်းကို ပိတ်ထားသည်</translation> <translation id="4351244548802238354">ဒိုင်ယာလော့ ပိတ်ရန်</translation> +<translation id="4369735607080757018">ဝဘ်ဆိုက်များ၏ ကြော်ငြာစွမ်းဆောင်ရည် တိုင်းတာရန် ကြော်ငြာပြသချိန်ကဲ့သို့ ကန့်သတ်ဒေတာအမျိုးအစားများကို ၎င်းတို့ကြားတွင် မျှဝေသည်</translation> <translation id="4378154925671717803">ဖုန်း</translation> <translation id="438319986296050901">ကတ်သီးသန့် မျှဝေပါ</translation> <translation id="4384468725000734951">ရှာဖွေမှုအတွက် Sogou ကို အသုံးပြုသည်</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wi-Fi နှင့် မိုဘိုင်းဒေတာ သုံးချိန်</translation> <translation id="4508528996305412043">ဖိဒ်ကတ်မီနူး ဖွင့်ထားသည်</translation> <translation id="4508642716788467538">သင်၏ ဘာသာစကားကို ရွေးရန်</translation> +<translation id="4509501256689523862">သင်ကြည့်ရှုသည်နှင့်အမျှ သင်မြင်ရသည့် ကြော်ငြာ ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်ထားခြင်းရှိ၊ မရှိသည် ဤဆက်တင်၊ <ph name="BEGIN_LINK_1" />ကြော်ငြာ၏ အကြောင်းအရာ<ph name="END_LINK_1" />၊ သင့် <ph name="BEGIN_LINK_2" />ကွတ်ကီး ဆက်တင်<ph name="END_LINK_2" /> နှင့် သင်ကြည့်ရှုသည့် ဝဘ်ဆိုက်က ကြော်ငြာကို ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်ခြင်း ရှိ၊ မရှိတို့အပေါ် မူတည်သည်</translation> <translation id="4513387527876475750">{DAYS,plural, =1{လွန်ခဲ့သည့် # ရက်က}other{လွန်ခဲ့သည့် # ရက်က}}</translation> <translation id="451872707440238414">မှတ်ထားသော စာညှပ်များကို ရှာရန်</translation> <translation id="4521489764227272523">ရွေးချယ်ထားသည့် ဒေတာများကို စင့်ခ်လုပ်ထားသည့် စက်ပစ္စည်းများနှင့် Chrome မှဖယ်ရှားလိုက်ပါပြီ။ @@ -646,6 +654,7 @@ <translation id="4662373422909645029">ကိန်းဂဏန်းများ မပါဝင်ရပါ</translation> <translation id="4663499661119906179">သင့်အတွက် ထိပ်တန်းဝဘ်ဆိုက်များနှင့် သတင်းဆောင်းပါးများ ကြည့်ရှုရန်</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> စာညှပ် တွေ့ရှိပါသည်</translation> +<translation id="4668279686271488041">ကြော်ငြာဆိုင်ရာ တိုင်းတာမှုဒေတာကို သင့်စက်မှ ပုံမှန်ဖျက်သည်</translation> <translation id="4668347365065281350">ကွတ်ကီးများနှင့် စက်အတွင်း သိမ်းထားသော အခြားဒေတာအပါအဝင် ဝဘ်ဆိုက်များက သိမ်းထားသည့်ဒေတာအားလုံး</translation> <translation id="4678082183394354975">ဝဘ်ဆိုက်များအတွက် အမှောင်နောက်ခံကို Chrome တွင် ဖွင့်ထားသည်</translation> <translation id="4684427112815847243">အားလုံး စင့်ခ်ရန်</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">တဘ်အသစ်ဖွင့်သောအခါ <ph name="SITE_NAME" /> မှ သတင်းဆောင်းပါးများကို မကြာမီ ကြည့်နိုင်ပါမည်။ သင် လိုက်ကြည့်ထားသည့် ဝဘ်ဆိုက်များကို Google Account ထဲတွင် သိမ်းထားသည်။ ၎င်းတို့ကို ကြည့်ရှုစရာဆက်တင်များထဲတွင် စီမံနိုင်သည်။</translation> <translation id="5091249083535528968">နောက်ဆက်တွဲ သုံးစွဲမှုဒေတာ</translation> <translation id="509429900233858213">အမှား တစ်ခု ကြုံခဲ့ရသည်။</translation> +<translation id="5097349930204431044">ဝဘ်ဆိုက်များက သင်နှစ်သက်သည့်အရာကို သိရှိနိုင်ပြီး သင်ဆက်လက်၍ ကြည့်ရှုသည်နှင့်အမျှ ကြော်ငြာများ အကြံပြုနိုင်သည်</translation> <translation id="5099845111805573968">ဒက်စ်တော့ဝဘ်ဆိုက်ကို တစ်ကြိမ်ရွေးပြီးသည်နှင့် ဤဝဘ်ဆိုက်သို့ သင်ဝင်ကြည့်တိုင်း ၎င်းဆက်တင်ကို သတ်မှတ်သည်</translation> <translation id="5102401324271069229">ဝဘ်ဆိုက်တစ်ခုက သင့်စကားဝှက်ကို ခိုးယူရန်ကြိုးပမ်းပါက (သို့) အန္တရာယ်ဖိုင်ကို သင်ဒေါင်းလုဒ်မိလုပ်ပါက Chrome သည် ‘လုံခြုံစွာကြည့်ရှုခြင်း’ သို့ စာမျက်နှာပါ အကြောင်းအရာအချို့အပါအဝင် URL များကို ပေးပို့နိုင်သည်</translation> <translation id="510275257476243843">၁ နာရီ ကျန်သည်</translation> @@ -1030,6 +1040,7 @@ <translation id="6659594942844771486">တဘ်</translation> <translation id="666731172850799929"><ph name="APP_NAME" /> တွင်ဖွင့်မည်</translation> <translation id="6671495933530132209">ပုံကို ကူးယူရန်</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ထည့်ရန်</translation> <translation id="6674571176963658787">စင့်ခ်လုပ်ခြင်းစတင်ရန် သင်၏စကားဝှက်စာ ထည့်ပါ</translation> <translation id="6676840375528380067">ဤစက်မှ သင်၏ Chrome ဒေတာများကို ဖျက်လိုပါသလား။</translation> <translation id="6676927815633975364">ဤဝဘ်ဆိုက်နှင့် Chrome သို့ လက်မှတ်ထိုးဝင်ပါ</translation> @@ -1042,6 +1053,7 @@ <translation id="6737612727720318154">သင့်အတွက် အသုံးဝင်နိုင်သည့် ပစ္စည်းနှင့်သက်ဆိုင်သော ကြော်ငြာဟု ထင်ပါက စိတ်ဝင်စားမှု (သို့) ဝဘ်ဆိုက်ကို ခွင့်ပြုနိုင်သည်</translation> <translation id="6738516213925468394">သင့်ဒေတာများကို သင်၏ <ph name="BEGIN_LINK" />စင့်ခ်စကားဝှက်စာ<ph name="END_LINK" />ဖြင့် <ph name="TIME" /> တွင် အသွင်ဝှက်ထားပါသည်။ စင့်ခ်စလုပ်ရန် ၎င်းကိုထည့်ပါ။</translation> <translation id="6738867403308150051">ဒေါင်းလုဒ် လုပ်နေ…</translation> +<translation id="674388916582496364">သင်ဝင်ကြည့်သောဝဘ်ဆိုက်များအနေနှင့် သင့်အသုံးပြုမှုကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန် သင်စိတ်ဝင်စားသောအရာများကို မှတ်သားခြင်းက ပုံမှန်ဖြစ်သည်။ ဝဘ်ဆိုက်များသည် သင်၏စိတ်ဝင်စားမှုများကိုလည်း Chrome တွင် သိမ်းနိုင်သည်။</translation> <translation id="6751521182688001123">တဘ်အသစ် အမြန်ဖွင့်ပါ။ ဤဖြတ်လမ်းလင့်ခ်ကို ပြင်ဆင်ရန် တို့ထိ၍ဖိထားပါ။</translation> <translation id="6756507620369789050">အကြံပြုချက် မျှဝေရန်</translation> <translation id="6767294960381293877">တဘ်မျှဝေရန် စက်ပစ္စည်းစာရင်း၏ အမြင့်ကို တစ်ဝက်ဖွင့်ထားသည်။</translation> @@ -1085,6 +1097,7 @@ <translation id="6963766334940102469">မှတ်သားချက်များ ဖျက်မည်</translation> <translation id="696447261358045621">ရုပ်ဖျက်မုဒ်မှ ထွက်ရန်</translation> <translation id="6971862865055170158">ခွင့်မပြုပါ</translation> +<translation id="6978717888677691380">သင်ပိတ်ထားသည့် ဝဘ်ဆိုက်များ</translation> <translation id="6979737339423435258">အားလုံး</translation> <translation id="6987047470128880212">ရုပ်ဖျက်တဘ်ကို ဤစက်ပစ္စည်းတွင် အသုံးမပြုနိုင်ပါ။</translation> <translation id="6995899638241819463">ဒေတာကျိုးပေါက်မှုတွင် စကားဝှက်များ ဖော်ထုတ်ခံရသည့်အခါ သင့်ကို သတိပေးခြင်း</translation> @@ -1129,6 +1142,7 @@ <translation id="7242755609445462077">မြင်သာအောင်လုပ်ခြင်းတွင် ဟန်ပန်ပုံစံထည့်လိုက်သည် <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Chrome တွင် <ph name="TARGET_DEVICE_NAME" /> က စင့်ခ်ဖွင့်ထားခြင်း ရှိမရှိ စစ်ဆေးပါ</translation> <translation id="7252076891734325316">သင့်ဖုန်းကို ကွန်ပျူတာအနီးတွင် ထားပါ</translation> +<translation id="7260367682327802201">သင့် Android စက်တွင် အလားတူဆက်တင် ပါဝင်နိုင်သည်။ Chrome နှင့် သင့် Android စက်တွင် ‘ကြော်ငြာတိုင်းတာခြင်း’ ကို ဖွင့်ထားပါက ကုမ္ပဏီသည် သင်ဝင်ရောက်ကြည့်ရှုသည့် ဝဘ်ဆိုက်များနှင့် သင်အသုံးပြုသည့် အက်ပ်များတွင် ကြော်ငြာတစ်ခု၏ထိရောက်မှုကို တိုင်းတာနိုင်သည်။</translation> <translation id="727288900855680735"><ph name="ORIGIN" /> သို့ <ph name="ONE_TIME_CODE" /> ပို့မလား။</translation> <translation id="7274013316676448362">ပိတ်ထားသည့်ဆိုက်</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> ပြောင်းမလား။</translation> @@ -1209,6 +1223,7 @@ <translation id="766587987807204883">သင်အော့ဖ်လိုင်းဖြစ်နေသော်လည်း ဤနေရာရှိ ဆောင်းပါးများကို ဖတ်နိုင်သည်</translation> <translation id="768232549260819724">GIF ကူးယူပြီးပါပြီ</translation> <translation id="7682724950699840886">အောက်ပါအကြံပြုချက်များကို စမ်းကြည့်ပါ− သင့်စက်ပစ္စည်းပေါ်တွင် နေရာအလုံအလောက်ရှိ မရှိ စစ်ဆေးပြီး ထပ်မံ၍ တင်ပို့ကြည့်ပါ</translation> +<translation id="7686086654630106285">ဝဘ်ဆိုက်က အကြံပြုထားသည့် ကြော်ငြာဆိုင်ရာ နောက်ထပ်အချက်အလက်</translation> <translation id="768618399695552958">သင်ဝင်ကြည့်သော စာမျက်နှာတစ်ချို့ကို ကြိုဖွင့်ထားသည်။ Google ဝဘ်ဆိုက်တစ်ခုမှ လင့်ခ်ချိတ်သည့်အခါ Google ဆာဗာများမှတစ်ဆင့် စာမျက်နှာများကို ကြိုဖွင့်ထားနိုင်ပါသည်။</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> တွင် အီးမေးလ်ရေးပါ</translation> <translation id="7704317875155739195">ရှာဖွေမှုများနှင့် URL များကို အလိုအလျောက်ဖြည့်ခြင်း</translation> @@ -1377,6 +1392,7 @@ <translation id="8540136935098276800">မှန်ကန်စွာ ဖော်မက်ချထားသည့် URL ကို ထည့်ပါ</translation> <translation id="854522910157234410">ဤစာမျက်နှာအား ဖွင့်ပါ</translation> <translation id="8551513938758868521">Chrome မှ ထွက်သည့်အခါ ရုပ်ဖျက်တဘ်များကို လော့ခ်ချရန်</translation> +<translation id="8559961053328923750">Chrome က ကြော်ငြာစွမ်းဆောင်ရည်ကို တိုင်းတာရန် ဘရောင်ဇာမှတစ်ဆင့် ဝဘ်ဆိုက်များ မျှဝေနိုင်သည့် ဒေတာစုစုပေါင်းပမာဏကိုကန့်သတ်သည်</translation> <translation id="8559990750235505898">အခြားဘာသာစကားများဖြင့် စာမျက်နှာများကို ဘာသာပြန်ပေးရန် ပေးအပ်ချက်</translation> <translation id="8560602726703398413">'လိပ်စာများ' တွင် သင်၏ဖတ်ရန်စာရင်းကို ရှာပါ</translation> <translation id="8562452229998620586">သိမ်းဆည်းထားသော စကားဝှက်များ ဤတွင် ပေါ်လာလိမ့်မည်။</translation> @@ -1417,6 +1433,7 @@ <translation id="8773160212632396039">တောင်းဆိုချက်ကို လုပ်ဆောင်နေသည်</translation> <translation id="8788265440806329501">လမ်းညွှန်မှု မှတ်တမ်း ပိတ်ထားသည်</translation> <translation id="8788968922598763114">နောက်ဆုံးပိတ်လိုက်သည့် တဘ်ကို ပြန်ဖွင့်ရန်</translation> +<translation id="879027982257117598">ဥပမာ တာဝေးပြေးဖိနပ်ရောင်းသည့် ဝဘ်ဆိုက်သို့ ဝင်ကြည့်သောအခါ မာရသွန်ပြေးခြင်းကို သင်စိတ်ဝင်စားသည်ဟု ထိုဝဘ်ဆိုက်က ဆုံးဖြတ်နိုင်သည်။ နောင်တွင် အခြားဝဘ်ဆိုက်သို့ ဝင်ကြည့်သောအခါ ၎င်းဝဘ်ဆိုက်က ပထမဝဘ်ဆိုက် အကြံပြုထားသည့် အပြေးဖိနပ်ကြော်ငြာကို ပြနိုင်သည်။</translation> <translation id="8798449543960971550">ဖတ်ပြီးသည်များ</translation> <translation id="8803526663383843427">ဖွင့်ထားပါက</translation> <translation id="8805097383171548551">QR ကုဒ် စကင်ဖတ်ရန် ကင်မရာပါသည့် စက်ကိုသုံးပါ။</translation> @@ -1459,6 +1476,7 @@ <translation id="8996847606757455498">ဝန်ဆောင်မှုပေးသူ နောက်တစ်ခု ရွေးရန်</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" /> က စီမံထားသည့် အကောင့်ဖြင့် သင်လက်မှတ်ထိုးဝင်ထားခြင်းဖြစ်ပြီး ၎င်း၏စီမံခန့်ခွဲသူကို သင့် Chrome ဒေတာများအား ထိန်းချုပ်ခွင့်ပေးထားပါသည်။ သင့်ဒေတာများသည် ဤအကောင့်နှင့် အပြီးအပိုင်ချိတ်ဆက်ထားပါသည်။ Chrome မှ ထွက်လိုက်ခြင်းဖြင့် ဤစက်ပစ္စည်းမှ ဒေတာများကို ဖျက်လိုက်မည်ဖြစ်သော်လည်း သင့် Google အကောင့်တွင် သိမ်းဆည်းထားဦးမည်ဖြစ်သည်။</translation> <translation id="9022774213089566801">မကြာခဏ ဝင်ကြည့်ခဲ့သည်</translation> +<translation id="9022871169049522985">ဝဘ်ဆိုက်နှင့် ကြော်ငြာရှင်များက ၎င်းတို့ကြော်ငြာများ၏ စွမ်းဆောင်ရည်ကို တိုင်းတာနိုင်သည်</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{ဗီဒီယို # ကား}other{ဗီဒီယို # ကား}}</translation> <translation id="9042893549633094279">ပုဂ္ဂိုလ်ရေးနှင့် လုံခြုံရေး</translation> <translation id="9050666287014529139">စကားစုဝှက်</translation> @@ -1480,11 +1498,13 @@ <translation id="9108312223223904744">ဖုန်းကို 'လုံခြုံရေးကီး အကူအညီ' အဖြစ်</translation> <translation id="9108808586816295166">လုံခြုံသော DNS ကို အမြဲမရနိုင်ပါ</translation> <translation id="9128984223251192329">Privacy Sandbox အတည်ပြုစနစ်ကို မြင်ကွင်းတစ်ဝက် ဖွင့်ထားသည်</translation> +<translation id="9131209053278896908">ပိတ်ထားသည့်ဝဘ်ဆိုက်များကို ဤနေရာတွင်ပြမည်</translation> <translation id="9133397713400217035">အော့ဖ်လိုင်းတွင် စူးစမ်းလေ့လာရန်</translation> <translation id="9148126808321036104">ထပ်ပြီး လက်မှတ်ထိုး ဝင်ရန်</translation> <translation id="9158770349521403363">အကြောင်းအရာသီးသန့် မျှဝေပါ</translation> <translation id="9159716826369098114">နောက်ခံတဘ်အုပ်စုအသစ်အဖြစ် တဘ် <ph name="TAB_COUNT" /> ခု ပါသည့် တဘ်အုပ်စုကို ပြန်ယူနိုင်ပါသည်။</translation> <translation id="9169507124922466868">လမ်းညွှန်မှု မှတ်တမ်း တစ်ဝက်ဖွင့်ထားသည်</translation> +<translation id="9183331776983279456">၄ ပတ်ကျော်ပြီဖြစ်သော ဝဘ်ဆိုက်များကို Chrome က အလိုအလျောက်ဖျက်သည်။ သင်ထပ်မံဝင်ကြည့်သည့် ဝဘ်ဆိုက်က စာရင်းတွင် ထပ်ပေါ်လာနိုင်သည်။ သို့မဟုတ် ဝဘ်ဆိုက်ကို သင့်အတွက် ကြော်ငြာများအကြံပြုခြင်းမှ ပိတ်ထားနိုင်သည်။</translation> <translation id="9190276265094487094">စင့်ခ်လုပ်ထားသော စက်အားလုံးတွင် သင်၏မှတ်တမ်း ရရှိမည်ဖြစ်သဖြင့် သင်လုပ်ဆောင်နေသည်များကို ရှေ့ဆက်နိုင်သည်</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{လွန်ခဲ့သော ၁ မိနစ်က စစ်ဆေးခဲ့သည်}other{လွန်ခဲ့သော # မိနစ်က စစ်ဆေးခဲ့သည်}}</translation> <translation id="9204836675896933765">ဖိုင် ၁ ဖိုင် ကျန်ပါသည်</translation> @@ -1506,6 +1526,7 @@ <translation id="96681097142096641">ရိုးရှင်းအောင်ပြုထားသော စာမျက်နှာကို ကြည့်မလား။</translation> <translation id="968900484120156207">သင်ဝင်ကြည့်သည့် စာမျက်နှာများကို ဤနေရာတွင် တွေ့ရပါမည်</translation> <translation id="970715775301869095"><ph name="MINUTES" /> မိနစ် ကျန်သည်</translation> +<translation id="978317418833355355">သင်မလိုလားသည့် ဝဘ်ဆိုက်များကို ပိတ်ထားနိုင်သည်။ ၄ ပတ်ကျော်ပြီဖြစ်သော ဝဘ်ဆိုက်များကိုလည်း Chrome က အလိုအလျောက်ဖျက်သည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation> <translation id="981121421437150478">အော့ဖ်လိုင်း</translation> <translation id="983192555821071799">တဘ်အားလုံး ပိတ်ရန်</translation> <translation id="987264212798334818">အထွေထွေ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb index 3e185f8..34db1d3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google केरकार: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">पाठ्य सूची</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> आदान प्रदान गर्न सकिएन</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> ब्लक गर्नुहोस्</translation> <translation id="1283039547216852943">विस्तृत गर्न ट्याप गर्नुहोस्</translation> <translation id="1285310382777185058">भाषा परिवर्तन गर्नुहोस्</translation> <translation id="1291207594882862231">इतिहास, कुकी, साइट सम्बन्धी डेटा, क्यासलाई खाली गर्नुहोस्…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">वेब तथा एपसम्बन्धी गतिविधि</translation> <translation id="2239812875700136898">Discover का विकल्पहरू नामक बटन प्रयोग गरी आफ्नो समाचार फिडमा देखिने सामग्री नियन्त्रण गर्नुहोस्</translation> <translation id="2248941474044011069">तपाईंका पासवर्डहरू तपाईंको डिभाइसमा इन्क्रिप्ट गरेपछि मात्र Google पासवर्ड म्यानेजरमा सेभ गरिन्छ</translation> +<translation id="2249635629516220541">साइटहरूले तपाईंलाई विज्ञापन देखाउन प्रयोग गर्ने जानकारी कस्टमाइज गर्नुहोस्</translation> <translation id="2259659629660284697">पासवर्डहरू निर्यात गर्नुहोस्…</translation> <translation id="2276231040576210443">तपाईं जुनसुकै बेला <ph name="BEGIN_LINK1" />सेटिङ<ph name="END_LINK1" />मा गई आफूले सिंक गर्न चाहेको डेटा छनौट गर्न सक्नुहुन्छ। Google ले तपाईंले गरेका गतिविधिको इतिहासका आधारमा Search र अन्य सेवाहरू पर्सनलाइज गर्न सक्छ।</translation> <translation id="2276696007612801991">आफ्ना पासवर्डहरू जाँच गर्न आफ्नो Google खातामा साइन इन गर्नुहोस्</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">कार्ड नम्बर</translation> <translation id="2625189173221582860">पासवर्ड प्रतिलिपि गरियो</translation> <translation id="2642087927315268160">साइन इन गर्ने पुछारको पाना बन्द गरिएको छ।</translation> +<translation id="2643064289437760082">तपाईं आफ्नो ब्राउजिङ डेटा मेटाएर जुनसुकै बेला विज्ञापनको पर्फर्मेन्सको मापनसम्बन्धी डेटा मेटाउन सक्नुहुन्छ</translation> <translation id="2647434099613338025">भाषा हाल्नुहोस्</translation> <translation id="2649068648233607930"><ph name="DOMAIN" /> ले तपाईंको ब्राउजर व्यवस्थापन गर्छ</translation> <translation id="2650348088770008516">गोपनीयतासम्बन्धी मार्गदर्शनको वर्णन बन्द गरिएको छ</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />मद्दत प्राप्त गर्नुहोस्<ph name="END_LINK" /></translation> <translation id="3037177537145227281">यो उत्पादनको मूल्य ट्र्याक गरिँदै छ</translation> <translation id="3037517125981011456">Chrome मा साइन इन गर्ने निर्देशन देखाउँछ</translation> +<translation id="3038272154009688107">सबै साइट हेर्नुहोस्</translation> <translation id="3046945242843292318">अर्को पटक यो साइट अझ छिटो खोल्नुहोस्</translation> <translation id="3055113921564083271">तपाईंले हटाएका रुचिहरू</translation> <translation id="3055259925215945098">बुकमार्क सारियो</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome मा साइन इन गर्नुहोस्</translation> <translation id="3285080554353377245">Chrome प्रयोग गर्ने तरिका देखाउने भिडियोहरू</translation> <translation id="3290249595466894471">यो सुविधाले नयाँ जोखिमहरू पत्ता लगाउन पेज, डाउनलोड, एक्स्टेन्सनसम्बन्धी गतिविधि र प्रणालीसम्बन्धी जानकारीको सानो नमुना पनि Safe Browsing मा पठाउँछ</translation> +<translation id="3293181007446299124">तपाईंको ब्राउजिङ हिस्ट्री तपाईंको डिभाइसमा गोप्य राखिन्छ र तपाईंको पहिचान सुरक्षित राख्न रिपोर्टहरू तत्कालै पठाइँदैनन्</translation> <translation id="3297344142967351106">आवाज सहायता</translation> <translation id="3303414029551471755">सामग्री डाउनलोड गर्न अगाडि बढ्ने हो?</translation> <translation id="3305795716056605962">"थप विकल्पहरू" बटनमा गई पेजहरू अनुवाद गर्नुहोस्</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">सिंकले काम गर्न छाड्यो</translation> <translation id="3976396876660209797">यो सर्टकट हटाउनुहोस् र यसलाई पुन: सिर्जना गर्नुहोस्</translation> <translation id="3981902534690264083">विज्ञापनदाताहरू विज्ञापनहरूको पर्फर्मेन्स कस्तो छ भन्ने कुरा बुझ्न सक्छन्</translation> +<translation id="3985022125189960801">तपाईं कुनै साइटलाई तपाईंलाई मन पर्ने कुराहरू अनुमान लगाउन सक्ने साइटहरूको समूहमा समावेश गर्न चाहनुहुन्छ भने उक्त साइट पुनः हाल्नुहोस्</translation> <translation id="3985215325736559418">तपाईं फेरि <ph name="FILE_NAME" /> डाउनलोड गर्न चाहनुहुन्छ?</translation> <translation id="3987993985790029246">लिंक प्रतिलिपि गर्नुहोस्</translation> <translation id="3999683152997576765">तपाईं वेबसाइटहरूले तपाईंलाई विज्ञापन देखाउन प्रयोग गर्ने रुचिका विषयहरू हेर्न तथा हटाउन सक्नुहुन्छ। Chrome ले तपाईंको हालसालैको ब्राउजिङ इतिहासका आधारमा तपाईंलाई रुचि लाग्न सक्ने विषयहरू पत्ता लगाउँछ।</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">फलो गरिँदै छ…</translation> <translation id="4335835283689002019">Safe Browsing अफ छ</translation> <translation id="4351244548802238354">सम्बाद बन्द गर्नुहोस्</translation> +<translation id="4369735607080757018">साइटहरूमा देखाइने विज्ञापनको पर्फर्मेन्स मापन गर्न साइटहरूका बिचमा तपाईंलाई कुनै विज्ञापन देखाइएको समयलगायतका सीमित प्रकारका डेटा सेयर गरिन्छ</translation> <translation id="4378154925671717803">फोन</translation> <translation id="438319986296050901">कार्ड मात्र सेयर गरियोस्</translation> <translation id="4384468725000734951">खोजीका लागि Sogou प्रयोग गर्दै</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Wi-Fi तथा मोबाइल डेटा अन हुँदा</translation> <translation id="4508528996305412043">फिड कार्ड मेनु खुला छ</translation> <translation id="4508642716788467538">आफ्नो भाषा छान्नुहोस्</translation> +<translation id="4509501256689523862">तपाईंले ब्राउज गर्दै गर्दा तपाईंलाई देखाइने कुनै विज्ञापन पर्सनलाइज गरिन्छ कि गरिँदैन भन्ने कुरा यो सेटिङ, <ph name="BEGIN_LINK_1" />विज्ञापनका शीर्षक<ph name="END_LINK_1" />, तपाईंले तय गर्नुभएको <ph name="BEGIN_LINK_2" />कुकीसम्बन्धी सेटिङ<ph name="END_LINK_2" /> र तपाईंले हेरिरहनुभएको साइटले विज्ञापन पर्सनलाइज गर्छ कि गर्दैन भन्ने कुरामा भर पर्छ</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# दिन अघि}other{# दिन अघि}}</translation> <translation id="451872707440238414">आफ्ना पुस्तक चिन्हहरू खोज्नुहोस्</translation> <translation id="4521489764227272523">चयन गरिएको डेटालाई Chrome र सिंक गरिएका तपाईंका यन्त्रहरूबाट हटाइएको छ। @@ -645,6 +653,7 @@ <translation id="4662373422909645029">उपनाममा अङ्क प्रयोग गर्न पाइँदैन</translation> <translation id="4663499661119906179">तपाईंका लागि सिफारिस गरिएका शीर्ष साइट र समाचारहरू हेर्नुहोस्</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> पुस्तक चिन्हहरू मेटाइयो</translation> +<translation id="4668279686271488041">तपाईंको डिभाइसबाट विज्ञापनको पर्फर्मेन्सको मापनसम्बन्धी डेटा नियमित रूपमा मेटाइन्छ</translation> <translation id="4668347365065281350">कुकी तथा यन्त्रमा भण्डारण गरिएका अन्य डेटासहित साइटहरूले भण्डारण गरेका सबै डेटा</translation> <translation id="4678082183394354975">Chrome मा खोलिने साइटहरूमा लागू हुने गरी अँध्यारो थिम अन गरिएको छ</translation> <translation id="4684427112815847243">सबै सिंक गर्नुहोस्</translation> @@ -736,6 +745,7 @@ <translation id="5091199029769593641">चाँडै नै, तपाईंले नयाँ ट्याब खोल्दा <ph name="SITE_NAME" /> का लेखहरू देखाइने छन्। तपाईंले फलो गर्ने साइटहरू तपाईंको Google खातामा सेभ गरिन्छन्। तपाईं Discover सम्बन्धी सेटिङमा गई ती साइटहरू व्यवस्थापन गर्न सक्नुहुन्छ।</translation> <translation id="5091249083535528968">प्रयोगसम्बन्धी थप डेटा</translation> <translation id="509429900233858213">त्रुटि भयो।</translation> +<translation id="5097349930204431044">तपाईंले खोल्ने साइटहरूले तपाईंलाई मन पर्ने कुराहरू निर्धारण गरी तपाईंले ब्राउज गर्ने क्रममा तपाईंको रुचिअनुसारका विज्ञापन देखाउन सक्छन्</translation> <translation id="5099845111805573968">तपाईंले एक पटक डेस्कटप साइट चयन गरिसकेपछि तपाईंले उक्त साइट खोल्दा हरेक पटक यो सेटिङ लागू गरिने छ</translation> <translation id="5102401324271069229">कुनै साइटले तपाईंको पासवर्ड चोरी गर्न खोज्दा वा तपाईंले कुनै हानिकारक फाइल डाउनलोड गर्दा Chrome ले पेजमा भएका केही सामग्रीसहित उक्त साइटका URL हरू Safe Browsing मा पठाउन सक्छ</translation> <translation id="510275257476243843">१ घन्टा बाँकी छ</translation> @@ -1030,6 +1040,7 @@ <translation id="6659594942844771486">ब्राउजर ट्याब</translation> <translation id="666731172850799929"><ph name="APP_NAME" /> मा खोल्नुहोस्</translation> <translation id="6671495933530132209">छविको प्रतिलिपि गर्नुहोस्</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> हाल्नुहोस्</translation> <translation id="6674571176963658787">सिंक गर्ने कार्य सुरु गर्न आफ्नो पासफ्रेज हाल्नुहोस्</translation> <translation id="6676840375528380067">यस डिभाइसबाट तपाईंको Chrome को डेटा हटाउने हो?</translation> <translation id="6676927815633975364">यो साइट र Chrome मा साइन इन गर्नुहोस्</translation> @@ -1042,6 +1053,7 @@ <translation id="6737612727720318154">तपाईंलाई वस्तुसँग सम्बन्धित विज्ञापनहरू तपाईंका लागि उपयोगी हुन्छन् जस्तो लाग्छ भने रुचि वा साइटलाई अनुमति दिनुहोस्</translation> <translation id="6738516213925468394">तपाईंको डेटा तपाईंको <ph name="BEGIN_LINK" />पासफ्रेज सिंक गर्नुहोस्<ph name="END_LINK" /> मार्फत <ph name="TIME" /> मा इन्क्रिप्ट गरियो। सिंक प्रक्रिया सुरु गर्न उक्स पासफ्रेज प्रविष्टि गर्नुहोस्।</translation> <translation id="6738867403308150051">डाउनलोड गर्दैछ…</translation> +<translation id="674388916582496364">तपाईंले खोल्ने साइटहरूले तपाईंलाई उपलब्ध गराइने सुविधा पर्सनलाइज गर्ने प्रयोजनका लागि तपाईंको रुचि भएका कुराहरू याद राख्नु सामान्य कुरा हो। साइटहरूले Chrome मा तपाईंका रुचिसम्बन्धी जानकारी भण्डारण गर्न पनि सक्छन्।</translation> <translation id="6751521182688001123">छिटोछरितो रूपमा नयाँ ट्याब खोल्नुहोस्। यो सर्टकट सम्पादन गर्न टच एण्ड होल्ड गर्नुहोस्।</translation> <translation id="6756507620369789050">प्रतिक्रिया दिनुहोस्</translation> <translation id="6767294960381293877">ट्याब आदान प्रदान गरिनु पर्ने डिभाइसहरूको सूची आधा उचाइमा खोलिएको छ।</translation> @@ -1085,6 +1097,7 @@ <translation id="6963766334940102469">बुकमार्कहरू मेट्नुहोस्</translation> <translation id="696447261358045621">इन्कोग्निटो मोडबाट बाहिरिनुहोस्</translation> <translation id="6971862865055170158">अनुमोदन नगर्नुहोस्</translation> +<translation id="6978717888677691380">तपाईंले ब्लक गरेका साइटहरू</translation> <translation id="6979737339423435258">सुरूबाट नै</translation> <translation id="6987047470128880212">यो डिभाइसमा इन्कोग्निटो मोड उपलब्ध छैन</translation> <translation id="6995899638241819463">डेटा चोरीको घटनामा पासवर्डको खुलासा हुँदा तपाईंलाई चेतावनी दिइन्छ</translation> @@ -1129,6 +1142,7 @@ <translation id="7242755609445462077">शैलीबद्ध हाइलाइट <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> को Chrome मा सिंक सुविधा सक्रिय गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्</translation> <translation id="7252076891734325316">आफ्नो फोन कम्प्युटरको छेउमा राख्नुहोस्</translation> +<translation id="7260367682327802201">तपाईंको Android डिभाइसमा यस्तै सेटिङ हुन सक्छ। Chrome र तपाईंको Android डिभाइसमा विज्ञापनको पर्फर्मेन्स मापन गर्ने सुविधा अन गरिएको छ भने कुनै पनि कम्पनी तपाईंले खोल्ने वेबसाइट र तपाईंले प्रयोग गर्ने एपहरूमा देखाइने विज्ञापनको प्रभावकारिता मापन गर्न सक्षम हुन सक्छन्।</translation> <translation id="727288900855680735"><ph name="ORIGIN" /> मा <ph name="ONE_TIME_CODE" /> पेस गर्ने हो?</translation> <translation id="7274013316676448362">रोक लगाइएका साइटहरू</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> परिवर्तन गर्ने हो?</translation> @@ -1209,6 +1223,7 @@ <translation id="766587987807204883">लेखहरू यहाँ देखिन्छन् र तपाईं ती लेखहरू अफलाइन भएका बेलामा पनि पढ्न सक्नुहुन्छ</translation> <translation id="768232549260819724">GIF कपी गरियो</translation> <translation id="7682724950699840886">निम्न सुझावहरूअनुसार गरी हेर्नुहोस्: कृपया आफ्नो यन्त्रमा पर्याप्त खाली ठाउँ रहेको कुरा सुनिश्चित गरेर पुनः निर्यात गर्ने प्रयास गर्नुहोस्।</translation> +<translation id="7686086654630106285">साइटले सिफारिस गरेका विज्ञापनका बारेमा थप जानकारी</translation> <translation id="768618399695552958">तपाईंले खोलेका केही पेजहरू प्रिलोड गरेर राखिन्छ। Google का सर्भर र Google साइट लिंक गरेपछि पेजहरू ती सर्भरमार्फत प्रिलोड गरेर राखिन सक्छ।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> मा इमेल सिर्जना गर्नुहोस्</translation> <translation id="7704317875155739195">खोज तथा URL हरू स्वतः पूर्ण गर्नुहोस्</translation> @@ -1377,6 +1392,7 @@ <translation id="8540136935098276800">सही ढाँचा भएको URL प्रविष्टि गर्नुहोस्</translation> <translation id="854522910157234410">यो पृष्ठ खोल्नुहोस्:</translation> <translation id="8551513938758868521">Chrome बाट बाहिरिएपछि इन्कोग्निटो ट्याब लक गरियोस्</translation> +<translation id="8559961053328923750">Chrome ले साइटहरूले विज्ञापनको पर्फर्मेन्स मापन गर्ने प्रयोजनका लागि ब्राउजरमार्फत कुल कति डेटा सेयर गर्न पाउँछन् भन्ने कुरामा सीमा तोक्छ</translation> <translation id="8559990750235505898">अन्य भाषाहरूमा पृष्ठहरूको अनुवाद गर्न प्रस्ताव गर्नुहोस्</translation> <translation id="8560602726703398413">आफ्नो अध्ययन सूची बुकमार्कहरूमा फेला पार्नुहोस्</translation> <translation id="8562452229998620586">बचत गरिएका पासवर्डहरू यहाँ देखिनेछन्।</translation> @@ -1417,6 +1433,7 @@ <translation id="8773160212632396039">अनुरोधसम्बन्धी प्रक्रिया अघि बढाइँदै छ</translation> <translation id="8788265440806329501">नेभिगेसनको इतिहास बन्द गरियो</translation> <translation id="8788968922598763114">पछिल्लो पटक बन्द गरिएको ट्याब पुनः खोल्नुहोस्</translation> +<translation id="879027982257117598">उदाहरणका लागि, तपाईं लामो दूरीको दौडमा लगाइने जुत्ता बेच्ने कुनै साइटमा जानुभयो भने उक्त साइटले तपाईं म्याराथन दौडमा रुचि राख्नुहुन्छ भन्ने कुरा बुझ्न सक्छ। तपाईं पछि अर्कै साइटमा जानुभयो भने उक्त साइटले तपाईंलाई पहिलो साइटले सिफारिस गरेको दौडिँदा लगाइने जुत्ताको विज्ञापन देखाउन सक्छ।</translation> <translation id="8798449543960971550">पढिसकिएको</translation> <translation id="8803526663383843427">अन भएका बेला</translation> <translation id="8805097383171548551">QR कोड स्क्यान गर्न क्यामेरा भएको कुनै डिभाइस प्रयोग गर्नुहोस्।</translation> @@ -1459,6 +1476,7 @@ <translation id="8996847606757455498">अर्को सेवा प्रदायक छनौट गर्नुहोस्</translation> <translation id="8998729206196772491">तपाईं <ph name="MANAGED_DOMAIN" /> द्वारा व्यवस्थापन गरिएको खाता मार्फत साइन इन गर्दै हुनुहुन्छ र त्यसको प्रशासकलाई तपाईंको Chrome को डेटालाई नियन्त्रण गर्न दिँदै हुनुहुन्छ। तपाईंको डेटा सदाका लागि यस खातामा बाँधिनेछ। Chrome बाट साइन आउट गर्नाले तपाईंको डेटा यस डिभाइसबाट मेटिनेछ तर यो तपाईंको Google खातामा भण्डारण गरिएको अवस्थामा रहनेछ।</translation> <translation id="9022774213089566801">बारम्बार हेरिएका</translation> +<translation id="9022871169049522985">साइट तथा विज्ञापनदाताहरू उनीहरूका विज्ञापनहरूको पर्फर्मेन्स मापन गर्न सक्छन्</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# भिडियो}other{# भिडियोहरू}}</translation> <translation id="9042893549633094279">गोपनीयता र सुरक्षा</translation> <translation id="9050666287014529139">पासफ्रेज</translation> @@ -1480,11 +1498,13 @@ <translation id="9108312223223904744">सुरक्षा साँचोका रूपमा प्रयोग गर्न मिल्ने फोन</translation> <translation id="9108808586816295166">सुरक्षित DNS सधैँ उपलब्ध नहुन सक्छ</translation> <translation id="9128984223251192329">प्राइभेसी स्यान्डबक्ससम्बन्धी प्रोम्प्ट आधा स्क्रिनमा खोलिएको छ</translation> +<translation id="9131209053278896908">ब्लक गरिएका साइटहरू यहाँ देखिन्छन्</translation> <translation id="9133397713400217035">अफलाइनमा अन्वेषण गर्नुहोस्</translation> <translation id="9148126808321036104">पुन: साइन इन गर्नुहोस्</translation> <translation id="9158770349521403363">सामग्री मात्र सेयर गरियोस्</translation> <translation id="9159716826369098114"><ph name="TAB_COUNT" /> वटा ट्याब भएको ट्याब समूह रिस्टोर गरी नयाँ ब्याकग्राउन्ड ट्याब समूह बनाउनुहोस्।</translation> <translation id="9169507124922466868">नेभिगेसनको इतिहास आधा खुला छ</translation> +<translation id="9183331776983279456">Chrome ले ४ हप्ताभन्दा पुराना साइटहरू स्वतः मेटाउँछ। तपाईंले कुनै साइट फेरि खोल्नुभयो भने यो सूचीमा उक्त साइट पुनः देखिन सक्छ। वा तपाईं कुनै साइटले तपाईंलाई विज्ञापन सिफारिस गर्न नपाउने गरी उक्त साइट ब्लक गर्न सक्नुहुन्छ।</translation> <translation id="9190276265094487094">तपाईंका सबै डिभाइसमा तपाईंको ब्राउजिङ इतिहास सिंक गरिने भएकाले तपाईं जुनसुकै डिभाइसबाट आफूले गर्दै गरेको कार्य जारी राख्न सक्नुहुन्छ</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{१ मिनेटअघि जाँच गरिएको}other{# मिनेटअघि जाँच गरिएको}}</translation> <translation id="9204836675896933765">१ फाइल बाँकी</translation> @@ -1506,6 +1526,7 @@ <translation id="96681097142096641">सरलीकृत पेज हेर्ने हो?</translation> <translation id="968900484120156207">तपाईंले हेर्नुभएका पृष्ठहरू यहाँ देखिन्छन्</translation> <translation id="970715775301869095"><ph name="MINUTES" /> मिनेट बाँकी छ</translation> +<translation id="978317418833355355">तपाईं आफूलाई नचाहिने साइटहरू ब्लक गर्न सक्नुहुन्छ। Chrome ले पनि उक्त सूचीमा भएका ४ हप्ताभन्दा पुराना साइटहरू स्वतः मेटाउँछ। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation> <translation id="981121421437150478">अफलाइन</translation> <translation id="983192555821071799">सबै ट्याबहरू बन्द गर्नुहोस्</translation> <translation id="987264212798334818">सामान्य</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb index 498ca98c..e2bd2f2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Leeslijst</translation> <translation id="1266864766717917324">Kan <ph name="CONTENT_TYPE" /> niet delen</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> blokkeren</translation> <translation id="1283039547216852943">Tik om uit te vouwen</translation> <translation id="1285310382777185058">Taal wijzigen</translation> <translation id="1291207594882862231">Geschiedenis, cookies, sitegegevens, cachegeheugen wissen</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Web- en app-activiteit</translation> <translation id="2239812875700136898">Beheer je artikelen met de knop 'Opties voor Discover'</translation> <translation id="2248941474044011069">Je wachtwoorden worden versleuteld op je apparaat voordat ze worden opgeslagen in Google Wachtwoordmanager</translation> +<translation id="2249635629516220541">Pas de informatie aan die sites gebruiken om advertenties te laten zien</translation> <translation id="2259659629660284697">Wachtwoorden exporteren…</translation> <translation id="2276231040576210443">Je kunt altijd in de <ph name="BEGIN_LINK1" />instellingen<ph name="END_LINK1" /> bepalen wat je wilt synchroniseren. Google kan Zoeken en andere services personaliseren op basis van je geschiedenis.</translation> <translation id="2276696007612801991">Log in met je Google-account om je wachtwoorden te checken</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Kaartnummer</translation> <translation id="2625189173221582860">Wachtwoord gekopieerd</translation> <translation id="2642087927315268160">Inlogblad onderaan is gesloten.</translation> +<translation id="2643064289437760082">Je kunt de gegevens van advertentiemetingen altijd verwijderen door je browsegegevens te verwijderen</translation> <translation id="2647434099613338025">Taal toevoegen</translation> <translation id="2649068648233607930">Je browser wordt beheerd door <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Uitleg over privacygids is gesloten</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Hulp krijgen<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Prijs wordt gevolgd</translation> <translation id="3037517125981011456">Toont prompts om in te loggen bij Chrome</translation> +<translation id="3038272154009688107">Alle sites bekijken</translation> <translation id="3046945242843292318">Ga de volgende keer sneller naar deze site</translation> <translation id="3055113921564083271">Interesses die je hebt verwijderd</translation> <translation id="3055259925215945098">Bookmark verplaatst</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Inloggen bij Chrome</translation> <translation id="3285080554353377245">Video's over hoe je Chrome kunt gebruiken</translation> <translation id="3290249595466894471">Stuurt ook een klein gedeelte pagina's, downloads, extensie-activiteit en systeeminformatie om nieuwe dreigingen te kunnen vinden</translation> +<translation id="3293181007446299124">Je browsegeschiedenis blijft privé op je apparaat en rapporten worden met vertraging verstuurd om je identiteit te beschermen</translation> <translation id="3297344142967351106">Spraakassistent</translation> <translation id="3303414029551471755">Doorgaan met het downloaden van de content?</translation> <translation id="3305795716056605962">Vertaal pagina's via de knop Meer opties</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Synchronisatie werkt niet meer</translation> <translation id="3976396876660209797">Verwijder de snelkoppeling en maak deze opnieuw</translation> <translation id="3981902534690264083">Adverteerders kunnen inzicht krijgen in hoe advertenties presteren</translation> +<translation id="3985022125189960801">Voeg een site weer toe als je deze wilt opnemen in de groep met sites die mogen raden wat je leuk vindt</translation> <translation id="3985215325736559418">Wil je <ph name="FILE_NAME" /> opnieuw downloaden?</translation> <translation id="3987993985790029246">Link kopiëren</translation> <translation id="3999683152997576765">Je kunt interessante onderwerpen bekijken en verwijderen die sites hebben gebruikt om je advertenties te laten zien. Chrome schat je interesses op basis van je recente browsegeschiedenis.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Volgen…</translation> <translation id="4335835283689002019">Safe Browsing staat uit</translation> <translation id="4351244548802238354">Dialoogvenster sluiten</translation> +<translation id="4369735607080757018">Er worden beperkte typen gegevens gedeeld tussen sites om de prestaties van hun advertenties te meten (bijvoorbeeld het tijdstip waarop je een advertentie te zien kreeg)</translation> <translation id="4378154925671717803">Telefoon</translation> <translation id="438319986296050901">Alleen kaart delen</translation> <translation id="4384468725000734951">Sogou wordt gebruikt om te zoeken</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Via wifi en mobiele data</translation> <translation id="4508528996305412043">Feedkaartmenu is geopend</translation> <translation id="4508642716788467538">Kies je taal</translation> +<translation id="4509501256689523862">Of een advertentie wordt gepersonaliseerd terwijl je browset, is afhankelijk van deze instelling, <ph name="BEGIN_LINK_1" />advertentieonderwerpen<ph name="END_LINK_1" />, je <ph name="BEGIN_LINK_2" />cookie-instellingen<ph name="END_LINK_2" /> en of de site die je bekijkt advertenties personaliseert</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# dag geleden}other{# dagen geleden}}</translation> <translation id="451872707440238414">Zoek in je bookmarks</translation> <translation id="4521489764227272523">De geselecteerde gegevens zijn verwijderd uit Chrome en van je gesynchroniseerde apparaten. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Cijfers niet toegestaan</translation> <translation id="4663499661119906179">Bekijk populaire sites en artikelen voor jou</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bookmarks verwijderd</translation> +<translation id="4668279686271488041">De gegevens van advertentiemetingen worden regelmatig van je apparaat verwijderd</translation> <translation id="4668347365065281350">Alle gegevens die zijn opgeslagen door sites, waaronder cookies en andere lokaal opgeslagen gegevens</translation> <translation id="4678082183394354975">Donker thema voor sites staat aan in Chrome</translation> <translation id="4684427112815847243">Alles synchroniseren</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Binnenkort zie je artikelen van <ph name="SITE_NAME" /> als je een nieuw tabblad opent. Sites die je volgt, worden opgeslagen in je Google-account. Je kunt ze beheren in de instellingen van Discover.</translation> <translation id="5091249083535528968">Uitgebreide gebruiksgegevens</translation> <translation id="509429900233858213">Er is een fout opgetreden.</translation> +<translation id="5097349930204431044">Sites die je bezoekt, kunnen vaststellen wat je leuk vindt en daarna advertenties voorstellen terwijl je verder browset</translation> <translation id="5099845111805573968">Als je één keer Desktopsite selecteert, wordt de instelling elke keer toegepast als je deze site bezoekt</translation> <translation id="5102401324271069229">Als een site je wachtwoord probeert te stelen of als je een schadelijk bestand downloadt, kan Chrome URL's, inclusief delen van de paginacontent, naar Safe Browsing sturen</translation> <translation id="510275257476243843">1 uur resterend</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Browsertabblad</translation> <translation id="666731172850799929">Openen in <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Afbeelding kopiëren</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> toevoegen</translation> <translation id="6674571176963658787">Geef je wachtwoordzin op om de synchronisatie te starten</translation> <translation id="6676840375528380067">Je Chrome-gegevens van dit apparaat wissen?</translation> <translation id="6676927815633975364">Log in bij deze site en Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Sta een interesse of site toe als je denkt dat advertenties gerelateerd aan dit item nuttig zouden zijn voor jou</translation> <translation id="6738516213925468394">Je gegevens zijn op <ph name="TIME" /> versleuteld met je <ph name="BEGIN_LINK" />wachtwoordzin voor synchronisatie<ph name="END_LINK" />. Geef deze op om de synchronisatie te starten.</translation> <translation id="6738867403308150051">Downloaden...</translation> +<translation id="674388916582496364">Door jou bezochte sites onthouden over het algemeen informatie over je interesses om zo de functionaliteit te personaliseren. Sites kunnen ook informatie over je interesses in Chrome opslaan.</translation> <translation id="6751521182688001123">Open snel een nieuw tabblad. Tik en houd vast om deze snelkoppeling te bewerken.</translation> <translation id="6756507620369789050">Feedback delen</translation> <translation id="6767294960381293877">De lijst met apparaten om een tabblad mee te delen, is op halve hoogte geopend.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Bookmarks verwijderen</translation> <translation id="696447261358045621">Incognitomodus verlaten</translation> <translation id="6971862865055170158">Niet goedkeuren</translation> +<translation id="6978717888677691380">Sites die je hebt geblokkeerd</translation> <translation id="6979737339423435258">Alles</translation> <translation id="6987047470128880212">Incognito is niet beschikbaar op dit apparaat.</translation> <translation id="6995899638241819463">Waarschuwen als je wachtwoorden zijn gelekt bij een gegevenslek</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Gestileerde markering <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Zorg dat synchronisatie in Chrome is aangezet voor <ph name="TARGET_DEVICE_NAME" /></translation> <translation id="7252076891734325316">Houd je telefoon dicht bij de computer</translation> +<translation id="7260367682327802201">Je Android-apparaat kan een vergelijkbare instelling hebben. Als advertentiemeting aanstaat in Chrome en op je Android-apparaat, kan een bedrijf mogelijk de effectiviteit van een advertentie meten op websites die je bezoekt en in apps die je gebruikt.</translation> <translation id="727288900855680735"><ph name="ONE_TIME_CODE" /> sturen naar <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Geblokkeerde site</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> wijzigen?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Hier zie je artikelen die je zelfs kunt lezen wanneer je offline bent</translation> <translation id="768232549260819724">Gif gekopieerd</translation> <translation id="7682724950699840886">Probeer de volgende tips: zorg dat er voldoende ruimte op je apparaat beschikbaar is, probeer opnieuw te exporteren.</translation> +<translation id="7686086654630106285">Meer informatie over door de site voorgestelde advertenties</translation> <translation id="768618399695552958">Sommige pagina's die je bezoekt, zijn vooraf geladen. Pagina's kunnen vooraf worden geladen via Google-servers als ernaar wordt gelinkt vanaf een Google-site.</translation> <translation id="7698359219371678927">E-mail in <ph name="APP_NAME" /> maken</translation> <translation id="7704317875155739195">Zoekopdrachten en URL's automatisch aanvullen</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Geef een correct opgemaakte URL op</translation> <translation id="854522910157234410">Deze pagina openen</translation> <translation id="8551513938758868521">Incognitotabbladen vergrendelen als je Chrome sluit</translation> +<translation id="8559961053328923750">Chrome beperkt de totale hoeveelheid gegevens die sites via de browser kunnen delen om de advertentieprestaties te meten</translation> <translation id="8559990750235505898">Aanbieden pagina's in andere talen te vertalen</translation> <translation id="8560602726703398413">Bekijk je leeslijst in Bookmarks</translation> <translation id="8562452229998620586">Opgeslagen wachtwoorden zie je hier.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">Verzoek verwerken</translation> <translation id="8788265440806329501">Navigatiegeschiedenis is gesloten</translation> <translation id="8788968922598763114">Het laatst gesloten tabblad opnieuw openen</translation> +<translation id="879027982257117598">Als je bijvoorbeeld een site bezoekt waarop langeafstandshardloopschoenen worden verkocht, kan de site besluiten dat je geïnteresseerd bent in marathons. Als je later een andere site bezoekt, kan die site een advertentie voor hardloopschoenen laten zien die door de eerste site is voorgesteld.</translation> <translation id="8798449543960971550">Gelezen</translation> <translation id="8803526663383843427">Als dit aanstaat</translation> <translation id="8805097383171548551">Als je een QR-code wilt scannen, gebruik je een apparaat met een camera.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Een andere provider kiezen</translation> <translation id="8998729206196772491">Je logt in met een account dat wordt beheerd door <ph name="MANAGED_DOMAIN" /> waarmee je de eigenaar beheer geeft over je Chrome-gegevens. Je gegevens worden permanent gekoppeld aan dit account. Als je uitlogt van Chrome, worden je gegevens van dit apparaat verwijderd. Ze blijven echter opgeslagen in je Google-account.</translation> <translation id="9022774213089566801">Veelbezocht</translation> +<translation id="9022871169049522985">Sites en adverteerders kunnen de prestaties van hun advertenties meten</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# video}other{# video's}}</translation> <translation id="9042893549633094279">Privacy en beveiliging</translation> <translation id="9050666287014529139">Wachtwoordzin</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Telefoon als ondersteuning voor beveiligingssleutel</translation> <translation id="9108808586816295166">Beveiligde DNS is mogelijk niet altijd beschikbaar</translation> <translation id="9128984223251192329">Prompt voor Privacy Sandbox is op halve hoogte geopend</translation> +<translation id="9131209053278896908">Hier zie je geblokkeerde sites</translation> <translation id="9133397713400217035">Offline ontdekken</translation> <translation id="9148126808321036104">Opnieuw inloggen</translation> <translation id="9158770349521403363">Alleen content delen</translation> <translation id="9159716826369098114">Tabbladgroep van <ph name="TAB_COUNT" /> tabbladen herstellen als een nieuwe tabbladgroep op de achtergrond.</translation> <translation id="9169507124922466868">Navigatiegeschiedenis is half geopend</translation> +<translation id="9183331776983279456">Chrome verwijdert automatisch sites die ouder zijn dan 4 weken. Een site die je opnieuw bezoekt, kan weer op de lijst komen te staan. Je kunt ook voorkomen dat een site advertenties aan je voorstelt.</translation> <translation id="9190276265094487094">Je krijgt je geschiedenis op al je gesynchroniseerde apparaten, zodat je kunt doorgaan met waar je mee bezig was</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 minuut geleden gecheckt}other{# minuten geleden gecheckt}}</translation> <translation id="9204836675896933765">1 bestand over</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Vereenvoudigde pagina bekijken?</translation> <translation id="968900484120156207">Bezochte pagina's zie je hier</translation> <translation id="970715775301869095"><ph name="MINUTES" /> minuten resterend</translation> +<translation id="978317418833355355">Je kunt ongewenste sites blokkeren. Chrome verwijdert sites die ouder zijn dan 4 weken ook automatisch uit de lijst. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation> <translation id="981121421437150478">Offline</translation> <translation id="983192555821071799">Alle tabbladen sluiten</translation> <translation id="987264212798334818">Algemeen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb index cfa7a2a..cba38c2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Doodle Google: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Lista de lectură</translation> <translation id="1266864766717917324">Nu s-a trimis <ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">Blochează <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">Atinge pentru a extinde</translation> <translation id="1285310382777185058">Schimbă limba</translation> <translation id="1291207594882862231">Șterge istoricul, cookie-urile, datele privind site-urile și memoria cache…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Activitatea de pe web și din aplicații</translation> <translation id="2239812875700136898">Gestionează subiectele folosind butonul Opțiuni pentru Discover</translation> <translation id="2248941474044011069">Parolele tale sunt criptate pe dispozitiv înainte să se salveze în Managerul de parole Google</translation> +<translation id="2249635629516220541">Personalizează informațiile folosite de site-uri pentru a-ți afișa anunțuri</translation> <translation id="2259659629660284697">Exportă parolele…</translation> <translation id="2276231040576210443">Poți să alegi oricând ce să sincronizezi în <ph name="BEGIN_LINK1" />setări<ph name="END_LINK1" />. Google poate personaliza Căutarea și alte servicii pe baza istoricului.</translation> <translation id="2276696007612801991">Conectează-te la contul Google pentru a verifica parolele</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Număr card</translation> <translation id="2625189173221582860">Parola a fost copiată</translation> <translation id="2642087927315268160">Foaia de conectare din partea de jos este închisă.</translation> +<translation id="2643064289437760082">Poți să ștergi oricând datele despre cuantificarea anunțurilor dacă ștergi datele de navigare</translation> <translation id="2647434099613338025">Adaugă o limbă</translation> <translation id="2649068648233607930">Browserul este gestionat de <ph name="DOMAIN" /></translation> <translation id="2650348088770008516">Prezentare a Ghidului privind confidențialitatea închisă</translation> @@ -354,6 +357,7 @@ <translation id="2979025552038692506">Fila incognito selectată</translation> <translation id="2979639724566107830">Deschide într-o fereastră nouă</translation> <translation id="2981364137500752533">Poți deschide maximum cinci ferestre.</translation> +<translation id="2983102365694924129">Pe baza activității tale pe un site. Setarea este dezactivată.</translation> <translation id="2984978667043170458">Include text din jur în căutările de pe Google</translation> <translation id="2987620471460279764">Text trimis de pe alt dispozitiv</translation> <translation id="2989523299700148168">Accesate recent</translation> @@ -366,12 +370,14 @@ <translation id="301080557829842765">Ghid pentru confidențialitate</translation> <translation id="3016635187733453316">Verifică dacă dispozitivul este conectat la internet</translation> <translation id="3026955690410463085">Include linkul</translation> +<translation id="3027644380269727216">Pe baza activității tale pe un site. Setarea este activată.</translation> <translation id="3029276696788198026">Fără preîncărcare</translation> <translation id="3029704984691124060">Expresiile de acces nu corespund</translation> <translation id="3031225630520268969">IU pentru consimțirea la căutarea vocală cu ajutorul Asistentului</translation> <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Obține ajutor<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Se urmărește prețul</translation> <translation id="3037517125981011456">Afișează solicitări pentru conectarea la Chrome</translation> +<translation id="3038272154009688107">Vezi toate site-urile</translation> <translation id="3046945242843292318">Accesează mai rapid site-ul data viitoare</translation> <translation id="3055113921564083271">Categorii de interese pe care le-ai eliminat</translation> <translation id="3055259925215945098">Marcajul a fost mutat</translation> @@ -421,6 +427,7 @@ <translation id="3282568296779691940">Conectează-te la Chrome</translation> <translation id="3285080554353377245">Videoclipuri despre folosirea browserului Chrome</translation> <translation id="3290249595466894471">În plus, trimite un mic eșantion cu pagini, descărcări, activități ale extensiilor și informații despre sistem pentru a descoperi noi amenințări</translation> +<translation id="3293181007446299124">Istoricul de navigare este păstrat privat pe dispozitivul tău și rapoartele sunt trimise cu întârziere pentru a-ți proteja identitatea</translation> <translation id="3297344142967351106">Asistență vocală</translation> <translation id="3303414029551471755">Continui pentru descărcarea conținutului?</translation> <translation id="3305795716056605962">Tradu paginile de la butonul Mai multe opțiuni</translation> @@ -532,6 +539,7 @@ <translation id="397583555483684758">Sincronizarea nu mai funcționează</translation> <translation id="3976396876660209797">Elimină și recreează această comandă rapidă</translation> <translation id="3981902534690264083">Advertiserii pot să afle despre performanța anunțurilor</translation> +<translation id="3985022125189960801">Adaugă din nou un site, dacă dorești, în grupul de site-uri care pot estima lucrurile care te interesează</translation> <translation id="3985215325736559418">Dorești să descarci <ph name="FILE_NAME" /> din nou?</translation> <translation id="3987993985790029246">Copiază linkul</translation> <translation id="3999683152997576765">Poți să vezi și să elimini subiecte de interes folosite de site-uri pentru a-ți afișa anunțuri. Chrome îți estimează interesele pe baza istoricului tău de navigare recent.</translation> @@ -569,6 +577,7 @@ <translation id="4162867837470729563">Lista cu opțiuni de permitere a accesului la înălțimea completă.</translation> <translation id="4170011742729630528">Serviciul nu este disponibil. Încercați din nou mai târziu.</translation> <translation id="4177222230309051052">Accesează toate marcajele</translation> +<translation id="4177501066905053472">Subiectele anunțurilor</translation> <translation id="4181841719683918333">Limbi</translation> <translation id="4195643157523330669">Deschide în filă nouă</translation> <translation id="4196597275619698563">Creează un card</translation> @@ -596,6 +605,7 @@ <translation id="433213510553688132">Urmărești...</translation> <translation id="4335835283689002019">Navigarea sigură este dezactivată</translation> <translation id="4351244548802238354">Închide caseta de dialog</translation> +<translation id="4369735607080757018">Sunt trimise tipuri de date limitate între site-uri, cum ar fi ora la care ți-a fost afișat un anunț, pentru ca acestea să măsoare performanța anunțurilor lor</translation> <translation id="4378154925671717803">Telefon</translation> <translation id="438319986296050901">Trimite numai cardul</translation> <translation id="4384468725000734951">Pentru căutare se folosește Sogou</translation> @@ -619,6 +629,7 @@ <translation id="4504667196171871375">Pe Wi-Fi și date mobile</translation> <translation id="4508528996305412043">Meniul cardului din feed este deschis</translation> <translation id="4508642716788467538">Alege limba</translation> +<translation id="4509501256689523862">În timp ce navighezi, personalizarea anunțurilor se bazează pe această setare, pe <ph name="BEGIN_LINK_1" />Subiectele anunțurilor<ph name="END_LINK_1" />, pe <ph name="BEGIN_LINK_2" />setările pentru cookie-uri<ph name="END_LINK_2" /> și pe capacitatea site-ului pe care îl accesezi de a personaliza anunțurile</translation> <translation id="4513387527876475750">{DAYS,plural, =1{Acum # zi}few{Acum # zile}other{Acum # de zile}}</translation> <translation id="451872707440238414">Caută în marcaje</translation> <translation id="4521489764227272523">Datele selectate au fost eliminate din Chrome și de pe dispozitivele sincronizate. @@ -646,10 +657,12 @@ <translation id="4662373422909645029">Pseudonimele nu pot să includă cifre</translation> <translation id="4663499661119906179">Vezi principalele site-uri și subiecte pentru tine</translation> <translation id="4663756553811254707">S-au șters <ph name="NUMBER_OF_BOOKMARKS" /> (de) marcaje</translation> +<translation id="4668279686271488041">Datele despre cuantificarea anunțurilor sunt șterse cu regularitate de pe dispozitiv</translation> <translation id="4668347365065281350">Toate datele stocate de site-uri, inclusiv cookie-uri și alte date stocate local</translation> <translation id="4678082183394354975">Tema întunecată pentru site-uri este activată în Chrome</translation> <translation id="4684427112815847243">Sincronizează tot</translation> <translation id="4685741273709472646">Selectează din lista drop-down</translation> +<translation id="4687718960473379118">anunțurile sugerate de site-uri,</translation> <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation> <translation id="4699172675775169585">Imaginile și fișierele memorate în cache</translation> <translation id="4719927025381752090">Oferă traducerea</translation> @@ -737,6 +750,7 @@ <translation id="5091199029769593641">În curând vei vedea articole de la <ph name="SITE_NAME" /> când deschizi o filă nouă. Site-urile pe care le urmărești sunt salvate în contul tău Google. Le poți gestiona din setările Discover.</translation> <translation id="5091249083535528968">Date de utilizare detaliate</translation> <translation id="509429900233858213">A apărut o eroare.</translation> +<translation id="5097349930204431044">Site-urile pe care le accesezi pot stabili lucrurile care te interesează, apoi îți sugerează anunțuri pe măsură ce navighezi</translation> <translation id="5099845111805573968">Dacă selectezi versiunea site-ului pentru computer o dată, setarea se aplică site-ului de fiecare dată când îl accesezi</translation> <translation id="5102401324271069229">Dacă un site încearcă să îți fure parola sau descarci un fișier dăunător, Chrome poate să trimită adresele URL, inclusiv fragmente din conținutul paginilor, către funcția Navigare sigură</translation> <translation id="510275257476243843">1 oră rămasă</translation> @@ -927,6 +941,7 @@ <translation id="6193448654517602979">Selectează file</translation> <translation id="6196315980958524839">Parolele sunt salvate în Managerul de parole Google pe acest dispozitiv</translation> <translation id="6202812185118613467">Conectează-te din nou pentru a începe sincronizarea</translation> +<translation id="6205314730813004066">Confidențialitatea anunțurilor</translation> <translation id="6210748933810148297">Nu ești <ph name="EMAIL" />?</translation> <translation id="6211386937064921208">Previzualizare a paginii</translation> <translation id="6221633008163990886">Deblochează pentru a-ți exporta parolele.</translation> @@ -1031,6 +1046,7 @@ <translation id="6659594942844771486">Filă</translation> <translation id="666731172850799929">Deschide în <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">Copiați imaginea</translation> +<translation id="6672917148207387131">Adaugă <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">Pentru a porni sincronizarea, introdu expresia de acces</translation> <translation id="6676840375528380067">Ștergi datele tale Chrome de pe acest dispozitiv?</translation> <translation id="6676927815633975364">Conectează-te la acest site și la Chrome</translation> @@ -1043,6 +1059,7 @@ <translation id="6737612727720318154">Permite o categorie de interese sau un site dacă crezi că anunțurile asociate cu elementul respectiv ți-ar fi utile</translation> <translation id="6738516213925468394">Datele au fost criptate cu <ph name="BEGIN_LINK" />expresia de acces pentru sincronizare<ph name="END_LINK" /> la <ph name="TIME" />. Introdu expresia de acces pentru a începe sincronizarea.</translation> <translation id="6738867403308150051">Se descarcă...</translation> +<translation id="674388916582496364">Se întâmplă frecvent ca site-urile pe care le accesezi să rețină lucrurile care te interesează, pentru a-ți personaliza experiența. În plus, site-urile pot stoca informații în Chrome despre interesele tale.</translation> <translation id="6751521182688001123">Deschide rapid o filă nouă. Pentru a edita comanda rapidă, atinge-o lung.</translation> <translation id="6756507620369789050">Trimite feedback</translation> <translation id="6767294960381293877">Lista de dispozitive pe care să trimiți o filă este deschisă la jumătate din înălțime.</translation> @@ -1086,6 +1103,7 @@ <translation id="6963766334940102469">Șterge marcaje</translation> <translation id="696447261358045621">Ieși din modul incognito</translation> <translation id="6971862865055170158">Nu aproba</translation> +<translation id="6978717888677691380">Site-uri pe care le-ai blocat</translation> <translation id="6979737339423435258">Dintotdeauna</translation> <translation id="6987047470128880212">Modul incognito nu este disponibil pe acest dispozitiv</translation> <translation id="6995899638241819463">Avertizează-mă dacă parolele au fost expuse în urma încălcării securității datelor</translation> @@ -1130,6 +1148,7 @@ <translation id="7242755609445462077">Evidențiere stilizată <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">Verifică dacă <ph name="TARGET_DEVICE_NAME" /> are sincronizarea activată în Chrome</translation> <translation id="7252076891734325316">Apropie telefonul de computer</translation> +<translation id="7260367682327802201">Dispozitivul tău Android poate avea o setare similară. În cazul în care cuantificarea anunțurilor este activată în Chrome și pe dispozitivul Android, o companie poate măsura eficiența unui anunț pe site-urile pe care le accesezi și în aplicațiile pe care le folosești.</translation> <translation id="727288900855680735">Trimiți <ph name="ONE_TIME_CODE" /> către <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">Site blocat</translation> <translation id="7286572596625053347">Schimbi limba <ph name="LANGUAGE" />?</translation> @@ -1153,6 +1172,7 @@ <translation id="7375125077091615385">Tip:</translation> <translation id="7376560087009844242">Dacă incluzi mai mult din textul paginii, ai putea vedea rezultate mai bune când folosești Atinge pentru a căuta. Poți accesa oricând<ph name="BEGIN_LINK" />setările<ph name="END_LINK" /> pentru a schimba această setare.</translation> <translation id="7379900596734708416">Tema întunecată pentru site-uri este disponibilă</translation> +<translation id="7388615499319468910">Site-urile și advertiserii pot să afle despre performanța anunțurilor. Setarea este dezactivată.</translation> <translation id="7400418766976504921">Adresă URL</translation> <translation id="7403691278183511381">Experiența primei rulări Chrome</translation> <translation id="7411224099004328643">Utilizator Cont Google</translation> @@ -1164,6 +1184,7 @@ <translation id="7443901082822119557">În modul incognito, site-urile nu pot folosi cookie-urile pentru a vedea activitatea ta de navigare de pe diferite site-uri, de exemplu, pentru a personaliza anunțurile. Este posibil ca funcțiile de pe anumite site-uri să fie întrerupte.</translation> <translation id="7453467225369441013">Te deconectează de pe majoritatea site-urilor. Nu te va deconecta de la Contul Google.</translation> <translation id="7454641608352164238">Spațiu insuficient</translation> +<translation id="7455988709578031708">Pe baza istoricului de navigare. Setarea este activată.</translation> <translation id="7456774706094330779">Preîncărcare prelungită</translation> <translation id="7474822150871987353">Află despre subiectele de pe site-uri fără să părăsești pagina. Selectează unul sau mai multe cuvinte din pagină ca să le cauți.</translation> <translation id="7475192538862203634">Dacă acest mesaj apare frecvent, încearcă următoarele <ph name="BEGIN_LINK" />sugestii<ph name="END_LINK" />.</translation> @@ -1210,6 +1231,7 @@ <translation id="766587987807204883">Articolele apar aici și le poți citi chiar dacă ești offline</translation> <translation id="768232549260819724">GIF-ul a fost copiat</translation> <translation id="7682724950699840886">Încearcă următoarele sfaturi: asigură-te că există spațiu suficient pe dispozitiv, încearcă să exporți din nou.</translation> +<translation id="7686086654630106285">Mai multe despre anunțurile sugerate de site-uri</translation> <translation id="768618399695552958">Unele pagini pe care le accesezi sunt preîncărcate. Este posibil ca paginile să fie preîncărcate prin serverele Google atunci când un site Google trimite un link spre ele.</translation> <translation id="7698359219371678927">Creează un e-mail în <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completează automat căutările și adresele URL</translation> @@ -1378,6 +1400,7 @@ <translation id="8540136935098276800">Introdu o adresă URL formatată corect</translation> <translation id="854522910157234410">Deschide această pagină</translation> <translation id="8551513938758868521">Blochează filele incognito când părăsești Chrome</translation> +<translation id="8559961053328923750">Chrome limitează volumul total de date pe care site-urile îl pot trimite prin browser pentru a cuantifica performanța anunțurilor</translation> <translation id="8559990750235505898">Oferă traducerea paginilor în alte limbi</translation> <translation id="8560602726703398413">Accesează lista de lectură în marcaje</translation> <translation id="8562452229998620586">Parolele salvate vor fi afișate aici.</translation> @@ -1418,6 +1441,7 @@ <translation id="8773160212632396039">Se procesează solicitarea</translation> <translation id="8788265440806329501">Istoricul de navigare este închis</translation> <translation id="8788968922598763114">Redeschide ultima filă închisă</translation> +<translation id="879027982257117598">De exemplu, dacă accesezi un site care vinde pantofi de alergare pe distanțe mari, site-ul poate deduce că te interesează maratoanele. Mai târziu, dacă accesezi alt site, acel site îți poate afișa un anunț pentru pantofi de alergare, pe baza sugestiei de pe primul site.</translation> <translation id="8798449543960971550">Citite</translation> <translation id="8803526663383843427">Când opțiunea este activată</translation> <translation id="8805097383171548551">Pentru a scana un cod QR, folosește un dispozitiv cu cameră.</translation> @@ -1460,6 +1484,7 @@ <translation id="8996847606757455498">Alege alt furnizor</translation> <translation id="8998729206196772491">Te conectezi cu un cont gestionat de <ph name="MANAGED_DOMAIN" /> și acorzi administratorului acestuia controlul asupra datelor Chrome. Datele vor fi asociate definitiv acestui cont. Dacă te deconectezi de la Chrome, datele se vor șterge de pe acest dispozitiv, dar vor rămâne stocate în Contul Google.</translation> <translation id="9022774213089566801">Accesate frecvent</translation> +<translation id="9022871169049522985">Site-urile și advertiserii pot măsura performanța anunțurilor lor</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{Un videoclip}few{# videoclipuri}other{# de videoclipuri}}</translation> <translation id="9042893549633094279">Confidențialitate și securitate</translation> <translation id="9050666287014529139">Expresie de acces</translation> @@ -1473,19 +1498,23 @@ <translation id="9081543426177426948">Site-urile pe care le accesezi nu sunt salvate în modul incognito</translation> <translation id="9086302186042011942">Se sincronizează</translation> <translation id="9086455579313502267">Nu se poate accesa rețeaua</translation> +<translation id="9099220545925418560">Pe baza istoricului de navigare. Setarea este dezactivată.</translation> <translation id="9100610230175265781">Este necesară o expresie de acces</translation> <translation id="9101137867221042551">Gestionare</translation> <translation id="9102803872260866941">Fila de previzualizare este deschisă</translation> +<translation id="9102864637938129124">Site-urile și advertiserii pot să afle despre performanța anunțurilor. Setarea este activată.</translation> <translation id="9104217018994036254">Lista de dispozitive pe care să trimiți o filă.</translation> <translation id="9106148373857059373">Fluxul de salvare a marcajului închis</translation> <translation id="9108312223223904744">Compatibilitatea folosirii telefonului ca pe o cheie de securitate</translation> <translation id="9108808586816295166">Este posibil să nu fie disponibil oricând un DNS securizat</translation> <translation id="9128984223251192329">Solicitarea Privacy Sandbox s-a deschis la jumătate din înălțime</translation> +<translation id="9131209053278896908">Site-urile blocate apar aici</translation> <translation id="9133397713400217035">Explorează offline</translation> <translation id="9148126808321036104">Conectează-te din nou</translation> <translation id="9158770349521403363">Trimite numai conținutul</translation> <translation id="9159716826369098114">Restabilește grupul de <ph name="TAB_COUNT" /> file ca pe un nou grup de file din fundal.</translation> <translation id="9169507124922466868">Istoricul de navigare este pe jumătate deschis</translation> +<translation id="9183331776983279456">Chrome șterge automat site-urile mai vechi de patru săptămâni. Un site pe care îl accesezi din nou poate să reapară în listă. Sau poți să nu permiți unui site să îți sugereze anunțuri.</translation> <translation id="9190276265094487094">Istoricul apare pe toate dispozitivele tale sincronizate. Astfel, poți continua ceea ce făceai.</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{A rulat acum un minut}few{A rulat acum # minute}other{A rulat acum # de minute}}</translation> <translation id="9204836675896933765">1 fișier rămas</translation> @@ -1507,6 +1536,7 @@ <translation id="96681097142096641">Vrei să afișezi pagina simplificată?</translation> <translation id="968900484120156207">Paginile pe care le accesezi apar aici</translation> <translation id="970715775301869095"><ph name="MINUTES" /> min. rămase</translation> +<translation id="978317418833355355">Poți să blochezi site-urile pe care nu le dorești. În plus, Chrome șterge automat site-urile din listă mai vechi de patru săptămâni. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation> <translation id="981121421437150478">Offline</translation> <translation id="983192555821071799">Închide toate filele</translation> <translation id="987264212798334818">General</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb index cf526c9..84ff5c1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -279,6 +279,7 @@ <translation id="2569733278091928697">Budete môcť ľahko spravovať ovládanie médií, relácie inkognito, sťahovania a viac</translation> <translation id="2571711316400087311">Ponúkať odosielanie stránok v cudzích jazykoch do Prekladača Google</translation> <translation id="2573452357057307036">Ako nastaviť Chrome ako predvolený prehliadač</translation> +<translation id="257470231920177468">Keď je táto možnosť zapnutá, tu sa bude zobrazovať zoznam navštevovaných webov, ktoré odhadujú vaše záujmy.</translation> <translation id="2580436639406015883">Redukcia spamu a podvodov závisí od tokenov súkromného stavu, ktoré pomáhajú webom bojovať proti podvodom a rozlišovať robotov od ľudí. Na základe vašej interakcie s určitým webom, ako je pravidelné prihlasovanie sa do účtu, môže daný web vydať vášmu prehliadaču token súkromného stavu. Ak neskôr ďalšie weby, ktoré navštívite, skontrolujú a nájdu platný token súkromného stavu, budú vás s vyššou pravdepodobnosťou považovať za osobu a nie robota. @@ -579,6 +580,7 @@ <translation id="4195643157523330669">Otvoriť na novej karte</translation> <translation id="4196597275619698563">Vytvoriť kartu</translation> <translation id="4198423547019359126">Nie sú k dispozícii žiadne umiestnenia stiahnutých súborov</translation> +<translation id="4202218894997543208">Blokované témy</translation> <translation id="4214315110991671325">Keď povolíte súbory cookies, Chrome môže pomocou nich prednačítavať.</translation> <translation id="4225895483398857530">Skratka panela s nástrojmi</translation> <translation id="4242533952199664413">Otvoriť nastavenia</translation> @@ -611,6 +613,7 @@ <translation id="4405224443901389797">Presunúť do…</translation> <translation id="4405636711880428279">Chcete virtuálnu kartu odstrániť?</translation> <translation id="4409271659088619928">Používate vyhľadávač <ph name="DSE" />. Prečítajte si jeho pokyny, ako odstrániť históriu vyhľadávania (ak je to možné).</translation> +<translation id="441383202534727410">Môže trvať až týždeň, kým sa tu zobrazí zoznam webov na základe vašej histórie prehliadania.</translation> <translation id="4415276339145661267">Spravovať účet Google</translation> <translation id="4425140285732600465">Cenu sledujete. Dostávajte upozornenia, keď na ľubovoľnom webe poklesne.</translation> <translation id="442518031075347249">Virtuálnu kartu už nebudete môcť používať so službou Google Pay. <ph name="BEGIN_LINK1" />Ďalšie informácie o virtuálnych kartách<ph name="END_LINK1" /></translation> @@ -1255,6 +1258,7 @@ <translation id="7851858861565204677">Ďalšie zariadenia</translation> <translation id="7853202427316060426">Aktivita</translation> <translation id="7859988229622350291">Nikdy neprekladať tieto jazyky</translation> +<translation id="7864208933699511058">To, či sa vám pri prehliadaní zobrazí prispôsobená reklama, závisí od <ph name="BEGIN_LINK_1" />reklám navrhovaných webmi<ph name="END_LINK_1" />, vašich <ph name="BEGIN_LINK_2" />nastavení súborov cookie<ph name="END_LINK_2" /> a od toho, či prehliadaný web prispôsobuje reklamy.</translation> <translation id="7866213166286285359">Tu preložíte stránky</translation> <translation id="78707286264420418"><ph name="PRODUCT_NAME" /> potrebuje povolenie pre zariadenia v okolí, aby sa mohol pripojiť k vášmu zariadeniu</translation> <translation id="7875915731392087153">Vytvorte správu</translation> @@ -1347,6 +1351,7 @@ <translation id="829672787777123339">Pripája sa k zariadeniu…</translation> <translation id="8310344678080805313">Štandardné karty</translation> <translation id="831192587911042850">Týmto pridáte aktuálny web na zoznam sledovaných webov.</translation> +<translation id="8333340769932050274">Témy, ktoré nechcete zdieľať s webmi, môžete zablokovať. Chrome navyše automaticky odstraňuje témy staršie ako štyri týždne. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> <translation id="834313815369870491">Nikdy neprekladať weby</translation> <translation id="8349795646647783032"><ph name="BEGIN_BOLD" />Ako používame tieto údaje:<ph name="END_BOLD" /> weby môžu v Chrome ukladať údaje o vašich záujmoch. Ak napríklad navštívite web na nákup obuvi na maratón, daný web môže definovať váš záujem ako behanie maratónov. Ak neskôr navštívite iný, aby ste sa zaregistrovali na preteky, tento web vám môže zobraziť reklamu na bežeckú obuv na základe vašich záujmov.</translation> <translation id="8354977102499939946">Skratka na rýchle vyhľadávanie hlasom. Ak ju chcete upraviť, prejdite do Nastavení.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb index 60e765a..980983b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -354,6 +354,7 @@ <translation id="2979025552038692506">ఎంచుకున్న అజ్ఞాత ట్యాబ్</translation> <translation id="2979639724566107830">కొత్త విండోలో తెరువు</translation> <translation id="2981364137500752533">మీరు 5 విండోల వరకు తెరవవచ్చు.</translation> +<translation id="2983102365694924129">సైట్లోని మీ యాక్టివిటీ ఆధారంగా. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="2984978667043170458">Googleలో ఏదైనా సెర్చ్ చేసినప్పుడు, ఆ సెర్చ్ తాలూకు సందర్భోచిత టెక్స్ట్ను చేర్చండి</translation> <translation id="2987620471460279764">ఇతర పరికరం నుండి షేర్ చేయబడిన వచనం</translation> <translation id="2989523299700148168">ఇటీవల సందర్శించినవి</translation> @@ -366,6 +367,7 @@ <translation id="301080557829842765">గోప్యతా గైడ్</translation> <translation id="3016635187733453316">ఈ పరికరం ఇంటర్నెట్కు కనెక్ట్ చేయబడి ఉందని నిర్ధారించుకోండి</translation> <translation id="3026955690410463085">లింక్ను చేర్చండి</translation> +<translation id="3027644380269727216">సైట్లోని మీ యాక్టివిటీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="3029276696788198026">ప్రీ - లోడింగ్ అందుబాటులో లేదు</translation> <translation id="3029704984691124060">రహస్య పదబంధాలు సరిపోలలేదు</translation> <translation id="3031225630520268969">Assistant వాయిస్ సెర్చ్ సమ్మతి UI</translation> @@ -569,6 +571,7 @@ <translation id="4162867837470729563">షేరింగ్ ఆప్షన్ల లిస్ట్ స్క్రీన్ పూర్తిగా తెరవబడింది.</translation> <translation id="4170011742729630528">సేవ అందుబాటులో లేదు; తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="4177222230309051052">మీ బుక్మార్క్లు అన్నిటినీ పొందండి</translation> +<translation id="4177501066905053472">యాడ్ టాపిక్లు</translation> <translation id="4181841719683918333">భాషలు</translation> <translation id="4195643157523330669">కొత్త ట్యాబ్లో తెరువు</translation> <translation id="4196597275619698563">కార్డ్ను క్రియేట్ చేయండి</translation> @@ -650,6 +653,7 @@ <translation id="4678082183394354975">Chromeలో సైట్ల కోసం ముదురు రంగు రూపం ఆన్ చేసి ఉంది</translation> <translation id="4684427112815847243">అంతా సింక్ చేయండి</translation> <translation id="4685741273709472646">డ్రాప్డౌన్ లిస్ట్ నుండి ఎంచుకోండి</translation> +<translation id="4687718960473379118">సైట్ సూచించిన యాడ్లు</translation> <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 మరియు మరో <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 మరియు మరో <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation> <translation id="4699172675775169585">కాష్ చేసిన చిత్రాలు మరియు ఫైళ్లు</translation> <translation id="4719927025381752090">అనువదించమని ఆఫర్ చేయి</translation> @@ -927,6 +931,7 @@ <translation id="6193448654517602979">ట్యాబ్లను ఎంచుకోండి</translation> <translation id="6196315980958524839">పాస్వర్డ్లు ఈ పరికరంలోని Google Password Managerలో సేవ్ చేయబడతాయి</translation> <translation id="6202812185118613467">సింక్ను ప్రారంభించడం కోసం తిరిగి సైన్ ఇన్ చేయండి</translation> +<translation id="6205314730813004066">యాడ్ల గోప్యత</translation> <translation id="6210748933810148297"><ph name="EMAIL" /> కాదా?</translation> <translation id="6211386937064921208">ఈ పేజీని ప్రివ్యూ చేస్తోంది</translation> <translation id="6221633008163990886">మీ పాస్వర్డ్లను ఎగుమతి చేయడానికి అన్లాక్ చేయండి</translation> @@ -1153,6 +1158,7 @@ <translation id="7375125077091615385">రకం:</translation> <translation id="7376560087009844242">'వెతకడానికి తాకండి'ని ఉపయోగించినప్పుడు, పేజీ తాలూకు ఎక్కువ టెక్స్ట్ను చేర్చడం ద్వారా మీరు మెరుగైన ఫలితాలను చూడవచ్చు. దీనిని మార్చడానికి మీరు ఎప్పుడైనా <ph name="BEGIN_LINK" />సెట్టింగ్ల<ph name="END_LINK" />కు వెళ్లవచ్చు.</translation> <translation id="7379900596734708416">సైట్ల కోసం ముదురు రంగు రూపం అందుబాటులో ఉంది</translation> +<translation id="7388615499319468910">యాడ్ల పనితీరు ఎలా ఉంది అనేది సైట్లు, అడ్వర్టయిజర్లు అర్థం చేసుకోగలరు. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="7400418766976504921">URL</translation> <translation id="7403691278183511381">Chrome మొదటి అమలు అనుభవం</translation> <translation id="7411224099004328643">Google ఖాతా యూజర్</translation> @@ -1164,6 +1170,7 @@ <translation id="7443901082822119557">అజ్ఞాత మోడ్లో ఉండగా, వివిధ సైట్లలో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి సైట్లు మీ కుక్కీలను ఉపయోగించలేవు, ఉదాహరణకు, యాడ్లను వ్యక్తిగతీకరించడం. కొన్ని సైట్లలోని ఫీచర్లు సరిగ్గా పని చేయకపోవచ్చు.</translation> <translation id="7453467225369441013">దాదాపు అన్ని సైట్ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు.</translation> <translation id="7454641608352164238">తగినంత స్థలం లేదు</translation> +<translation id="7455988709578031708">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="7456774706094330779">పొడిగించిన ప్రీ - లోడింగ్</translation> <translation id="7474822150871987353">పేజీ నుండి నిష్క్రమించకుండానే వెబ్సైట్లలోని టాపిక్ల గురించి తెలుసుకోండి. వాటి కోసం సెర్చ్ చేయడానికి పేజీలో ఉన్న ఒకటి లేదా అంతకంటే ఎక్కువ పదాలను ఎంచుకోండి.</translation> <translation id="7475192538862203634">మీకు ఇది తరచుగా కనిపిస్తుంటే, ఈ <ph name="BEGIN_LINK" />సూచనల<ph name="END_LINK" />ను ప్రయత్నించండి.</translation> @@ -1473,9 +1480,11 @@ <translation id="9081543426177426948">మీరు సందర్శించే సైట్లు అజ్ఞాత మోడ్లో సేవ్ చేయబడవు</translation> <translation id="9086302186042011942">సింక్ చేస్తోంది</translation> <translation id="9086455579313502267">నెట్వర్క్ని యాక్సెస్ చేయడం సాధ్యం కాలేదు</translation> +<translation id="9099220545925418560">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆఫ్ చేయబడింది.</translation> <translation id="9100610230175265781">రహస్య పదబంధం అవసరం</translation> <translation id="9101137867221042551">మేనేజ్మెంట్</translation> <translation id="9102803872260866941">ప్రివ్యూ ట్యాబ్ తెరవబడింది</translation> +<translation id="9102864637938129124">యాడ్ల పనితీరు ఎలా ఉంది అనేది సైట్లు, అడ్వర్టయిజర్లు అర్థం చేసుకోగలరు. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation> <translation id="9104217018994036254">ట్యాబ్ను షేర్ చేయాల్సిన పరికరాల లిస్ట్.</translation> <translation id="9106148373857059373">బుక్మార్క్ను సేవ్ చేయడానికి సంబంధించిన దశల ఫోల్డర్ల ఫుల్-స్క్రీన్ మూసివేయబడింది</translation> <translation id="9108312223223904744">సెక్యూరిటీ కీ సపోర్ట్గా ఫోన్</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb index 3ad34e8..a9ac81a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">เรื่องรออ่าน</translation> <translation id="1266864766717917324">แชร์<ph name="CONTENT_TYPE" />ไม่ได้</translation> +<translation id="1273937721055267968">บล็อก <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">แตะเพื่อขยาย</translation> <translation id="1285310382777185058">เปลี่ยนภาษา</translation> <translation id="1291207594882862231">ล้างประวัติการเข้าชม คุกกี้ ข้อมูลเว็บไซต์ แคช…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">กิจกรรมบนเว็บและแอป</translation> <translation id="2239812875700136898">ควบคุมเรื่องราวของคุณจากปุ่ม "ตัวเลือกสำหรับ Discover"</translation> <translation id="2248941474044011069">ระบบจะเข้ารหัสให้กับรหัสผ่านในอุปกรณ์ก่อนบันทึกลงในเครื่องมือจัดการรหัสผ่านของ Google</translation> +<translation id="2249635629516220541">ปรับแต่งข้อมูลที่เว็บไซต์ใช้เพื่อแสดงโฆษณาแก่คุณ</translation> <translation id="2259659629660284697">ส่งออกรหัสผ่าน…</translation> <translation id="2276231040576210443">คุณเลือกสิ่งที่ต้องการซิงค์ได้เสมอใน<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" /> Google อาจปรับเปลี่ยน Search และบริการอื่นๆ ให้เหมาะกับคุณโดยอิงจากประวัติการเข้าชม</translation> <translation id="2276696007612801991">ลงชื่อเข้าใช้บัญชี Google เพื่อตรวจสอบรหัสผ่าน</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">หมายเลขบัตร</translation> <translation id="2625189173221582860">คัดลอกรหัสผ่านแล้ว</translation> <translation id="2642087927315268160">Bottom Sheet การลงชื่อเข้าใช้ปิดอยู่</translation> +<translation id="2643064289437760082">คุณลบข้อมูลการวัดผลโฆษณาได้ทุกเมื่อโดยการลบข้อมูลการท่องเว็บ</translation> <translation id="2647434099613338025">เพิ่มภาษา</translation> <translation id="2649068648233607930"><ph name="DOMAIN" /> เป็นผู้จัดการเบราว์เซอร์</translation> <translation id="2650348088770008516">ปิดคำอธิบายคู่มือความเป็นส่วนตัวแล้ว</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />ขอความช่วยเหลือ<ph name="END_LINK" /></translation> <translation id="3037177537145227281">กำลังติดตามราคา</translation> <translation id="3037517125981011456">แสดงข้อความแจ้งให้ลงชื่อเข้าใช้ Chrome</translation> +<translation id="3038272154009688107">ดูเว็บไซต์ทั้งหมด</translation> <translation id="3046945242843292318">ไปที่เว็บไซต์นี้ได้เร็วขึ้นในครั้งถัดไป</translation> <translation id="3055113921564083271">ความสนใจที่คุณนำออก</translation> <translation id="3055259925215945098">ย้ายบุ๊กมาร์กแล้ว</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">ลงชื่อเข้าใช้ Chrome</translation> <translation id="3285080554353377245">วิดีโอเกี่ยวกับวิธีใช้ Chrome</translation> <translation id="3290249595466894471">รวมถึงส่งตัวอย่างส่วนเล็กๆ ของหน้าเว็บ การดาวน์โหลด กิจกรรมของส่วนขยาย และข้อมูลระบบเพื่อช่วยค้นหาภัยคุกคามใหม่ๆ</translation> +<translation id="3293181007446299124">ระบบจะจัดเก็บประวัติการท่องเว็บไว้เป็นส่วนตัวในอุปกรณ์ และจะส่งรายงานล่าช้าเพื่อปกป้องตัวตนของคุณ</translation> <translation id="3297344142967351106">เสียงผู้ช่วย</translation> <translation id="3303414029551471755">ต้องการดำเนินการดาวน์โหลดเนื้อหานี้ไหม</translation> <translation id="3305795716056605962">ดูข้อความแจ้งเกี่ยวกับการแปลหน้าเว็บจากปุ่ม "ตัวเลือกเพิ่มเติม"</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">การซิงค์หยุดทำงานแล้ว</translation> <translation id="3976396876660209797">นำทางลัดนี้ออกแล้วสร้างใหม่</translation> <translation id="3981902534690264083">ผู้ลงโฆษณาจะรู้ได้ว่าโฆษณามีประสิทธิภาพแค่ไหน</translation> +<translation id="3985022125189960801">เพิ่มเว็บไซต์กลับหากต้องการรวมไว้ในกลุ่มเว็บไซต์ที่คาดเดาสิ่งที่คุณชอบได้</translation> <translation id="3985215325736559418">คุณต้องการดาวน์โหลด <ph name="FILE_NAME" /> อีกครั้งไหม</translation> <translation id="3987993985790029246">คัดลอกลิงก์</translation> <translation id="3999683152997576765">คุณสามารถดูและลบหัวข้อที่สนใจซึ่งเว็บไซต์ใช้เพื่อแสดงโฆษณาแก่คุณ Chrome คาดคะเนความสนใจของคุณโดยอิงจากประวัติการท่องเว็บล่าสุด</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">กำลังติดตาม...</translation> <translation id="4335835283689002019">Google Safe Browsing ปิดอยู่</translation> <translation id="4351244548802238354">ปิดข้อความโต้ตอบ</translation> +<translation id="4369735607080757018">ระบบจะแชร์ข้อมูลแบบจำกัดระหว่างเว็บไซต์เพื่อวัดประสิทธิภาพของโฆษณา เช่น ช่วงเวลาของวันที่มีการแสดงโฆษณาแก่คุณ</translation> <translation id="4378154925671717803">โทรศัพท์</translation> <translation id="438319986296050901">แชร์การ์ดเท่านั้น</translation> <translation id="4384468725000734951">กำลังใช้ Sogou ในการค้นหา</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">ผ่าน Wi-Fi และอินเทอร์เน็ตมือถือ</translation> <translation id="4508528996305412043">เมนูของการ์ดฟีดเปิดอยู่</translation> <translation id="4508642716788467538">เลือกภาษา</translation> +<translation id="4509501256689523862">ขณะที่คุณท่องเว็บ จะมีการปรับโฆษณาที่แสดงให้เหมาะกับคุณหรือไม่นั้นขึ้นอยู่กับการตั้งค่านี้ รวมถึง<ph name="BEGIN_LINK_1" />หัวข้อโฆษณา<ph name="END_LINK_1" /> <ph name="BEGIN_LINK_2" />การตั้งค่าคุกกี้<ph name="END_LINK_2" /> และเว็บไซต์ที่คุณดูว่ามีการปรับโฆษณาตามโปรไฟล์ของผู้ใช้ไหม</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# วันที่ผ่านมา}other{# วันที่ผ่านมา}}</translation> <translation id="451872707440238414">ค้นหาบุ๊กมาร์ก</translation> <translation id="4521489764227272523">ระบบได้นำข้อมูลที่เลือกออกจาก Chrome และอุปกรณ์ที่ซิงค์แล้ว @@ -646,6 +654,7 @@ <translation id="4662373422909645029">ชื่อเล่นต้องไม่มีตัวเลข</translation> <translation id="4663499661119906179">ดูเว็บไซต์ยอดนิยมและเรื่องราวสำหรับคุณ</translation> <translation id="4663756553811254707">ลบบุ๊กมาร์ก <ph name="NUMBER_OF_BOOKMARKS" /> รายการแล้ว</translation> +<translation id="4668279686271488041">ข้อมูลการวัดผลโฆษณาจะได้รับการลบออกจากอุปกรณ์เป็นระยะ</translation> <translation id="4668347365065281350">ข้อมูลทั้งหมดที่เว็บไซต์จัดเก็บไว้ ซึ่งรวมถึงคุกกี้และข้อมูลอื่นๆ ที่จัดเก็บไว้ในเครื่อง</translation> <translation id="4678082183394354975">ธีมมืดสำหรับเว็บไซต์เปิดอยู่ใน Chrome</translation> <translation id="4684427112815847243">ซิงค์ทุกอย่าง</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">เร็วๆ นี้คุณจะเห็นเรื่องราวจาก <ph name="SITE_NAME" /> เมื่อเปิดแท็บใหม่ ระบบจะบันทึกเว็บไซต์ที่คุณติดตามไว้ในบัญชี Google โดยคุณจัดการเว็บไซต์เหล่านี้ได้ในการตั้งค่า Discover</translation> <translation id="5091249083535528968">ข้อมูลการใช้งานเพิ่มเติม</translation> <translation id="509429900233858213">มีข้อผิดพลาดเกิดขึ้น</translation> +<translation id="5097349930204431044">เว็บไซต์ที่คุณเข้าชมจะสามารถระบุสิ่งที่คุณชอบ จากนั้นจะแนะนำโฆษณาในขณะที่คุณท่องเว็บต่อไป</translation> <translation id="5099845111805573968">เมื่อคุณเลือกเว็บไซต์เวอร์ชันเดสก์ท็อป 1 ครั้ง การตั้งค่าจะมีผลกับเว็บไซต์ดังกล่าวทุกครั้งที่คุณเข้าชม</translation> <translation id="5102401324271069229">หากเว็บไซต์พยายามขโมยรหัสผ่าน หรือคุณดาวน์โหลดไฟล์ที่เป็นอันตราย Chrome อาจส่ง URL รวมถึงเนื้อหาบางส่วนในหน้าไปยัง Google Safe Browsing</translation> <translation id="510275257476243843">เหลือ 1 ชั่วโมง</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">แท็บ</translation> <translation id="666731172850799929">เปิดใน <ph name="APP_NAME" /></translation> <translation id="6671495933530132209">คัดลอกรูปภาพ</translation> +<translation id="6672917148207387131">เพิ่ม <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">หากต้องการเริ่มต้นการซิงค์ ให้ป้อนรหัสผ่านของคุณ</translation> <translation id="6676840375528380067">ล้างข้อมูล Chrome ของคุณออกจากอุปกรณ์นี้ไหม</translation> <translation id="6676927815633975364">ลงชื่อเข้าใช้เว็บไซต์นี้และ Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">อนุญาตความสนใจหรือเว็บไซต์หากคุณคิดว่าโฆษณามีความเกี่ยวข้องกับสิ่งที่จะมีประโยชน์สำหรับคุณ</translation> <translation id="6738516213925468394">ข้อมูลของคุณเข้ารหัสลับไว้ด้วย<ph name="BEGIN_LINK" />รหัสผ่านการซิงค์<ph name="END_LINK" />เมื่อ <ph name="TIME" /> ป้อนรหัสผ่านเพื่อเริ่มซิงค์</translation> <translation id="6738867403308150051">กำลังดาวน์โหลด…</translation> +<translation id="674388916582496364">โดยทั่วไป เว็บไซต์ที่คุณเข้าชมจะจดจำสิ่งที่คุณสนใจเพื่อปรับประสบการณ์การใช้งานให้เหมาะกับคุณ เว็บไซต์ยังสามารถจัดเก็บข้อมูลเกี่ยวกับความสนใจไว้กับ Chrome ได้ด้วย</translation> <translation id="6751521182688001123">เปิดแท็บใหม่อย่างรวดเร็ว หากต้องการแก้ไขทางลัดนี้ ให้แตะค้างไว้</translation> <translation id="6756507620369789050">แชร์ความคิดเห็น</translation> <translation id="6767294960381293877">รายการอุปกรณ์ที่จะแชร์แท็บด้วยเปิดอยู่ที่ระดับความสูงครึ่งหนึ่งของหน้าจอ</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">ลบบุ๊กมาร์ก</translation> <translation id="696447261358045621">ออกจากโหมดไม่ระบุตัวตน</translation> <translation id="6971862865055170158">ไม่อนุมัติ</translation> +<translation id="6978717888677691380">เว็บไซต์ที่คุณบล็อก</translation> <translation id="6979737339423435258">ตั้งแต่ต้น</translation> <translation id="6987047470128880212">แท็บที่ไม่ระบุตัวตนไม่พร้อมใช้งานในอุปกรณ์นี้</translation> <translation id="6995899638241819463">เตือนคุณในกรณีที่รหัสผ่านรั่วไหลจากการละเมิดข้อมูล</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">ทำสไตไลซ์ไฮไลต์วันที่ <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">ตรวจสอบว่าการซิงค์ <ph name="TARGET_DEVICE_NAME" /> ใน Chrome เปิดอยู่</translation> <translation id="7252076891734325316">วางโทรศัพท์ไว้ใกล้กับคอมพิวเตอร์</translation> +<translation id="7260367682327802201">อุปกรณ์ Android อาจมีการตั้งค่าที่คล้ายกัน หากเปิดใช้การวัดผลโฆษณาใน Chrome และบนอุปกรณ์ Android บริษัทอาจสามารถวัดประสิทธิภาพของโฆษณาในเว็บไซต์ต่างๆ ที่คุณเข้าชมและแอปที่คุณใช้</translation> <translation id="727288900855680735">ส่ง <ph name="ONE_TIME_CODE" /> ไปยัง <ph name="ORIGIN" /> ไหม</translation> <translation id="7274013316676448362">เว็บไซต์ที่ถูกบล็อก</translation> <translation id="7286572596625053347">เปลี่ยนภาษา<ph name="LANGUAGE" />ไหม</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">บทความจะแสดงที่นี่ ซึ่งคุณจะอ่านได้แม้ในขณะออฟไลน์</translation> <translation id="768232549260819724">คัดลอก GIF แล้ว</translation> <translation id="7682724950699840886">ลองทำตามเคล็ดลับต่อไปนี้ ตรวจสอบว่าอุปกรณ์มีพื้นที่ว่างเพียงพอ จากนั้นพยายามส่งออกอีกครั้ง</translation> +<translation id="7686086654630106285">ข้อมูลเพิ่มเติมเกี่ยวกับโฆษณาที่เว็บไซต์แนะนำ</translation> <translation id="768618399695552958">ระบบจะโหลดหน้าเว็บบางหน้าที่คุณเข้าชมไว้ล่วงหน้า ระบบอาจโหลดหน้าเว็บล่วงหน้าผ่านเซิร์ฟเวอร์ของ Google เมื่อลิงก์จากเว็บไซต์ Google</translation> <translation id="7698359219371678927">สร้างอีเมลใน <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">เติมข้อความค้นหาและ URL อัตโนมัติ</translation> @@ -1262,7 +1277,7 @@ <translation id="7961015016161918242">ไม่ต้องเลย</translation> <translation id="7961926449547174351">คุณปิดการเข้าถึงพื้นที่เก็บข้อมูลไว้ โปรดไปที่การตั้งค่าเพื่อเปิดการเข้าถึง</translation> <translation id="7963646190083259054">ผู้ขาย:</translation> -<translation id="7965838025086216108">คุณใช้รหัสผ่านที่บันทึกไว้ในอุปกรณ์ใดก็ได้ โดยจะบันทึกอยู่ในเครื่องมือจัดการรหัสผ่านของ Google สำหรับ <ph name="ACCOUNT" /></translation> +<translation id="7965838025086216108">คุณใช้รหัสผ่านที่บันทึกไว้ในอุปกรณ์ใดก็ได้ โดยจะบันทึกอยู่ใน Google เครื่องมือจัดการรหัสผ่านสำหรับ <ph name="ACCOUNT" /></translation> <translation id="7968014550143838305">เพิ่มไปยังเรื่องรออ่านแล้ว</translation> <translation id="7971136598759319605">ใช้งานเมื่อ 1 วันที่ผ่านมา</translation> <translation id="7975379999046275268">พรีวิวหน้า <ph name="BEGIN_NEW" />ใหม่<ph name="END_NEW" /></translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">ป้อน URL ที่มีรูปแบบที่ถูกต้อง</translation> <translation id="854522910157234410">เปิดหน้านี้</translation> <translation id="8551513938758868521">ล็อกแท็บที่ไม่ระบุตัวตนเมื่อออกจาก Chrome</translation> +<translation id="8559961053328923750">Chrome จำกัดปริมาณข้อมูลทั้งหมดที่เว็บไซต์สามารถแชร์ผ่านเบราว์เซอร์เพื่อวัดประสิทธิภาพโฆษณา</translation> <translation id="8559990750235505898">เสนอที่จะแปลหน้าในภาษาอื่นๆ</translation> <translation id="8560602726703398413">หาเรื่องรออ่านในบุ๊กมาร์ก</translation> <translation id="8562452229998620586">รหัสผ่านที่บันทึกไว้จะแสดงที่นี่</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">กำลังดำเนินการตามคำขอ</translation> <translation id="8788265440806329501">ประวัติการนำทางปิดอยู่</translation> <translation id="8788968922598763114">เปิดแท็บที่เพิ่งปิดอีกครั้ง</translation> +<translation id="879027982257117598">ตัวอย่างเช่น หากคุณเข้าชมเว็บไซต์ที่ขายรองเท้าวิ่งระยะไกล เว็บไซต์นั้นอาจเข้าใจว่าคุณสนใจการวิ่งมาราธอน ภายหลัง เมื่อคุณเข้าชมเว็บไซต์อื่น เว็บไซต์นี้ก็อาจแสดงโฆษณารองเท้าวิ่งที่แนะนำโดยเว็บไซต์แรก</translation> <translation id="8798449543960971550">อ่านแล้ว</translation> <translation id="8803526663383843427">เมื่อเปิด</translation> <translation id="8805097383171548551">ใช้อุปกรณ์ที่มีกล้องเพื่อสแกนคิวอาร์โค้ด</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">เลือกผู้ให้บริการอื่น</translation> <translation id="8998729206196772491">คุณกำลังลงชื่อเข้าใช้ด้วยบัญชีที่จัดการโดย <ph name="MANAGED_DOMAIN" /> และทำให้ผู้ดูแลระบบของโดเมนควบคุมข้อมูล Chrome ของคุณได้ ข้อมูลดังกล่าวจะโยงกับบัญชีนี้อย่างถาวร การออกจากระบบ Chrome จะลบข้อมูลของคุณออกจากอุปกรณ์เครื่องนี้ แต่ข้อมูลจะยังจัดเก็บอยู่ในบัญชี Google</translation> <translation id="9022774213089566801">เข้าชมบ่อย</translation> +<translation id="9022871169049522985">เว็บไซต์และผู้ลงโฆษณาสามารถวัดประสิทธิภาพโฆษณาของตน</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{วิดีโอ # รายการ}other{วิดีโอ # รายการ}}</translation> <translation id="9042893549633094279">ความเป็นส่วนตัวและความปลอดภัย</translation> <translation id="9050666287014529139">ข้อความรหัสผ่าน</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">โทรศัพท์เป็นการรองรับคีย์ความปลอดภัย</translation> <translation id="9108808586816295166">DNS ที่ปลอดภัยอาจไม่พร้อมใช้งานในบางครั้ง</translation> <translation id="9128984223251192329">ข้อความแจ้งเกี่ยวกับ Privacy Sandbox เปิดอยู่แบบครึ่งหน้า</translation> +<translation id="9131209053278896908">เว็บไซต์ที่บล็อกจะปรากฏที่นี่</translation> <translation id="9133397713400217035">สำรวจแบบออฟไลน์</translation> <translation id="9148126808321036104">ลงชื่อเข้าใช้อีกครั้ง</translation> <translation id="9158770349521403363">แชร์เนื้อหาเท่านั้น</translation> <translation id="9159716826369098114">คืนค่ากลุ่มแท็บ <ph name="TAB_COUNT" /> แท็บเป็นกลุ่มแท็บใหม่ในเบื้องหลัง</translation> <translation id="9169507124922466868">ประวัติการนำทางเปิดอยู่ครึ่งเดียว</translation> +<translation id="9183331776983279456">Chrome จะลบข้อมูลเว็บไซต์ที่นานเกิน 4 สัปดาห์โดยอัตโนมัติ เว็บไซต์ที่คุณเข้าชมอีกครั้งอาจกลับมาปรากฏในรายการอีก หากไม่ต้องการ คุณอาจบล็อกเว็บไซต์ไม่ให้แนะนำโฆษณาก็ได้</translation> <translation id="9190276265094487094">อุปกรณ์ทั้งหมดที่ซิงค์ไว้จะมีประวัติการเข้าชม คุณจึงทำสิ่งที่ดำเนินการอยู่ต่อได้</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{ตรวจสอบเมื่อ 1 นาทีที่ผ่านมา}other{ตรวจสอบเมื่อ # นาทีที่ผ่านมา}}</translation> <translation id="9204836675896933765">เหลืออีก 1 ไฟล์</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">ดูหน้าเว็บในโหมดผู้อ่านไหม</translation> <translation id="968900484120156207">หน้าที่คุณเข้าชมจะปรากฏที่นี่</translation> <translation id="970715775301869095">เหลือ <ph name="MINUTES" /> นาที</translation> +<translation id="978317418833355355">คุณบล็อกเว็บไซต์ที่ไม่ต้องการได้ นอกจากนี้ Chrome จะลบข้อมูลเว็บไซต์ที่นานเกิน 4 สัปดาห์ออกจากรายการโดยอัตโนมัติ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation> <translation id="981121421437150478">ออฟไลน์</translation> <translation id="983192555821071799">ปิดแท็บทั้งหมด</translation> <translation id="987264212798334818">ทั่วไป</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index 2981d96..29f4b28c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google doodle'ı: <ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">Okuma listesi</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşılamadı</translation> +<translation id="1273937721055267968"><ph name="DOMAIN" /> sitesini engelle</translation> <translation id="1283039547216852943">Genişletmek için dokunun</translation> <translation id="1285310382777185058">Dili değiştirin</translation> <translation id="1291207594882862231">Geçmişi, çerezleri, site verilerini, önbelleği temizleyin…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">Web ve Uygulama Etkinliği</translation> <translation id="2239812875700136898">Haberlerinizi, Keşfet için Seçenekler düğmesinden kontrol edin</translation> <translation id="2248941474044011069">Şifreleriniz Google Şifre Yöneticisi'ne kaydedilmeden önce cihazınızda şifrelenir</translation> +<translation id="2249635629516220541">Sitelerin size reklam göstermek için kullandığı bilgileri özelleştirin</translation> <translation id="2259659629660284697">Şifreleri dışa aktar…</translation> <translation id="2276231040576210443">Neyin senkronize edileceğini istediğiniz zaman <ph name="BEGIN_LINK1" />ayarlardan<ph name="END_LINK1" /> seçebilirsiniz. Google, geçmişinize dayalı olarak Arama'yı ve diğer hizmetleri kişiselleştirebilir.</translation> <translation id="2276696007612801991">Şifrelerinizi kontrol etmek için Google hesabınızda oturum açın</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">Kart numarası</translation> <translation id="2625189173221582860">Şifre kopyalandı</translation> <translation id="2642087927315268160">Oturum açma alt sayfası kapatıldı.</translation> +<translation id="2643064289437760082">Tarama verilerini silerek reklam ölçümü verilerini istediğiniz zaman silebilirsiniz</translation> <translation id="2647434099613338025">Dil ekle</translation> <translation id="2649068648233607930">Tarayıcınız, <ph name="DOMAIN" /> tarafından yönetilmektedir</translation> <translation id="2650348088770008516">Gizlilik kılavuzu açıklaması kapatıldı</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />Yardım alın<ph name="END_LINK" /></translation> <translation id="3037177537145227281">Fiyat takip ediliyor</translation> <translation id="3037517125981011456">Chrome'da oturum açmak için istekleri gösterir</translation> +<translation id="3038272154009688107">Tüm siteleri göster</translation> <translation id="3046945242843292318">Gelecek sefer bu siteye daha hızlı ulaşın</translation> <translation id="3055113921564083271">Kaldırdığınız ilgi alanları</translation> <translation id="3055259925215945098">Yer işareti taşındı</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">Chrome'da oturum aç</translation> <translation id="3285080554353377245">Chrome'un nasıl kullanılacağıyla ilgili videolar</translation> <translation id="3290249595466894471">Ayrıca yeni tehditlerin keşfedilmesine yardımcı olmak için sayfalar, indirmeler, uzantı etkinliği ve sistem bilgilerinden küçük bir örnek gönderir.</translation> +<translation id="3293181007446299124">Tarama geçmişiniz cihazınızda gizli tutulur ve raporlar, kimliğinizin korunması için gecikmeli olarak gönderilir</translation> <translation id="3297344142967351106">Sesli yardım</translation> <translation id="3303414029551471755">İçeriği indirme işlemine başlansın mı?</translation> <translation id="3305795716056605962">Diğer Seçenekler düğmesinden sayfaları çevirin</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">Senkronizasyonun çalışması durdu</translation> <translation id="3976396876660209797">Bu kısayolu kaldırıp yeniden oluşturun</translation> <translation id="3981902534690264083">Reklamverenler, reklamların nasıl performans gösterdiğini anlayabilir</translation> +<translation id="3985022125189960801">Nelerden hoşlandığınızı tahmin eden siteler havuzunda görmek istediğiniz bir siteyi tekrar ekleyin</translation> <translation id="3985215325736559418"><ph name="FILE_NAME" /> dosyasını tekrar indirmek istiyor musunuz?</translation> <translation id="3987993985790029246">Bağlantıyı kopyala</translation> <translation id="3999683152997576765">Sitelerin size reklam göstermek için kullandığı ilgi alanlarını görebilir ve kaldırabilirsiniz. Chrome, ilgi alanlarınızı tahmin ederken son tarama geçmişinizi kullanır.</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">Takip ediliyor...</translation> <translation id="4335835283689002019">Güvenli Tarama kapalı</translation> <translation id="4351244548802238354">İletişim kutusunu kapat</translation> +<translation id="4369735607080757018">Reklamlarının performansını ölçmek isteyen siteler arasında, bir reklamın size gösterildiği saat gibi sınırlı veri türleri paylaşılır</translation> <translation id="4378154925671717803">Telefon</translation> <translation id="438319986296050901">Yalnızca kart paylaşılıyor</translation> <translation id="4384468725000734951">Arama için Sogou kullanılıyor</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">Kablosuz ağ ve mobil veri üzerinde</translation> <translation id="4508528996305412043">Akış kartı menüsü açık</translation> <translation id="4508642716788467538">Dilinizi seçin</translation> +<translation id="4509501256689523862">İnternette gezinirken gördüğünüz bir reklamın kişiselleştirilmiş olup olmaması bu ayara, <ph name="BEGIN_LINK_1" />reklam konularına<ph name="END_LINK_1" />, <ph name="BEGIN_LINK_2" />çerez ayarlarınıza<ph name="END_LINK_2" /> ve görüntülediğiniz sitenin reklamları kişiselleştirip kişiselleştirmediğine bağlıdır</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# gün önce}other{# gün önce}}</translation> <translation id="451872707440238414">Yer işaretlerinizde arayın</translation> <translation id="4521489764227272523">Seçilen veriler Chrome'dan ve senkronize edilen cihazlarınızdan kaldırıldı. @@ -646,6 +654,7 @@ <translation id="4662373422909645029">Takma ad sayı içeremez</translation> <translation id="4663499661119906179">Size özel popüler sitelere ve haberlere bakın</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> yer işareti silindi</translation> +<translation id="4668279686271488041">Reklam ölçümü verileri cihazınızdan düzenli olarak silinir</translation> <translation id="4668347365065281350">Çerezler ve yerel olarak depolanmış diğer veriler de dahil olmak üzere sitelerin depoladığı tüm veriler</translation> <translation id="4678082183394354975">Chrome'daki sitelerde koyu tema açık</translation> <translation id="4684427112815847243">Her şeyi senkronize et</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">Yakında yeni sekme açtığınızda <ph name="SITE_NAME" /> kaynağından haberler göreceksiniz. Takip ettiğiniz siteler Google hesabınıza kaydedilir. Bunları Keşfet ayarlarından yönetebilirsiniz.</translation> <translation id="5091249083535528968">Genişletilmiş kullanım verileri</translation> <translation id="509429900233858213">Bir hata oluştu.</translation> +<translation id="5097349930204431044">Ziyaret ettiğiniz siteler nelerden hoşlandığınızı belirleyip siz internette gezinmeye devam ederken reklam önerebilir</translation> <translation id="5099845111805573968">Masaüstü sitesini bir kez seçtiğinizde bu ayar her ziyaret ettiğinizde siteye uygulanır</translation> <translation id="5102401324271069229">Chrome, bir sitenin şifrenizi çalmaya çalışması veya zararlı bir dosya indirmeniz halinde Güvenli Tarama'ya sayfa içeriğinden parçalarla birlikte URL'ler gönderebilir</translation> <translation id="510275257476243843">1 saat kaldı</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">Sekme</translation> <translation id="666731172850799929"><ph name="APP_NAME" /> uygulamasında aç</translation> <translation id="6671495933530132209">Resmi kopyala</translation> +<translation id="6672917148207387131"><ph name="DOMAIN" /> ekle</translation> <translation id="6674571176963658787">Senkronizasyonu başlatmak için parolanızı girin</translation> <translation id="6676840375528380067">Chrome verileriniz bu cihazdan temizlensin mi?</translation> <translation id="6676927815633975364">Bu sitede ve Chrome'da oturum açın</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">Bir ilgi alanıyla veya siteyle ilgili reklamların sizin için yararlı olacağını düşünüyorsanız bu ilgi alanına veya siteye izin verin</translation> <translation id="6738516213925468394">Verileriniz <ph name="TIME" /> tarihinde <ph name="BEGIN_LINK" />senkronizasyon parolanızla<ph name="END_LINK" /> şifrelendi. Senkronizasyonu başlatmak için senkronizasyon parolanızı girin.</translation> <translation id="6738867403308150051">İndiriliyor…</translation> +<translation id="674388916582496364">Ziyaret ettiğiniz sitelerin deneyiminizi kişiselleştirmek için ilgi alanlarınızı hatırlaması olağan bir durumdur. Siteler, ilgi alanlarınız hakkındaki bilgileri Chrome'da da saklayabilir.</translation> <translation id="6751521182688001123">Hızlıca yeni bir sekme açın. Bu kısayolu düzenlemek için dokunup basılı tutun.</translation> <translation id="6756507620369789050">Geri bildiriminizi paylaşın</translation> <translation id="6767294960381293877">Sekme paylaşılacak cihazların listesi yarım yükseklikte açıldı.</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">Yer işaretlerini silme</translation> <translation id="696447261358045621">Gizli moddan çık</translation> <translation id="6971862865055170158">Onaylama</translation> +<translation id="6978717888677691380">Engellediğiniz siteler</translation> <translation id="6979737339423435258">Tüm zamanlar</translation> <translation id="6987047470128880212">Gizli mod bu cihazda kullanılamıyor</translation> <translation id="6995899638241819463">Şifreleriniz bir veri ihlalinde ifşa olursa uyarı alın</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">Stil eklenmiş vurgu <ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> cihazının Chrome'da senkronizasyonunun açık olduğundan emin olun</translation> <translation id="7252076891734325316">Telefonunuzu bilgisayara yakın bir yere koyun</translation> +<translation id="7260367682327802201">Android cihazınızda benzer bir ayar olabilir. Chrome'da ve Android cihazınızda reklam ölçümü etkinse bir şirket, ziyaret ettiğiniz web siteleri ve kullandığınız uygulamalardaki reklamların etkinliğini ölçebilir.</translation> <translation id="727288900855680735"><ph name="ORIGIN" /> adresine <ph name="ONE_TIME_CODE" /> gönderilsin mi?</translation> <translation id="7274013316676448362">Engellenmiş site</translation> <translation id="7286572596625053347"><ph name="LANGUAGE" /> değiştirilsin mi?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">Çevrimdışı olsanız bile okuyabileceğiniz makaleler burada görünür.</translation> <translation id="768232549260819724">GIF Kopyalandı</translation> <translation id="7682724950699840886">Şu ipuçlarını deneyin: Cihazınızda yeterli alan bulunduğundan emin olun, daha sonra dışa aktarmayı tekrar deneyin.</translation> +<translation id="7686086654630106285">Site tarafından önerilen reklamlar hakkında daha fazla bilgi</translation> <translation id="768618399695552958">Ziyaret ettiğiniz sayfaların bazıları önceden yüklenir. Bir Google sitesinden bağlantı verildiğinde sayfalar Google sunucuları aracılığıyla önceden yüklenebilir.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> adlı uygulamada e-posta oluşturun</translation> <translation id="7704317875155739195">Aramaları ve URL'leri otomatik tamamla</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">Doğru biçimli bir URL girin</translation> <translation id="854522910157234410">Şu sayfayı aç:</translation> <translation id="8551513938758868521">Chrome'dan ayrıldığınızda Gizli sekmeler kilitlensin</translation> +<translation id="8559961053328923750">Chrome, reklam performansını ölçmek için sitelerin tarayıcı aracılığıyla paylaşabileceği toplam veri miktarını sınırlar</translation> <translation id="8559990750235505898">Diğer dillerdeki sayfaları çevirmeyi öner</translation> <translation id="8560602726703398413">Okuma listenizi Yer işaretleri'nde görün</translation> <translation id="8562452229998620586">Kayıtlı şifreleriniz burada görünür.</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">İstek gerçekleştiriliyor</translation> <translation id="8788265440806329501">Gezinme geçmişi kapalı</translation> <translation id="8788968922598763114">Son kapatılan sekmeyi yeniden açar</translation> +<translation id="879027982257117598">Örneğin, uzun mesafe koşu ayakkabıları satan bir siteyi ziyaret ederseniz bu site maraton koşularıyla ilgilendiğinize karar verebilir. Daha sonra farklı bir siteyi ziyaret ettiğinizde de o site, ilk sitenin önerisi üzerine koşu ayakkabısı reklamı gösterebilir.</translation> <translation id="8798449543960971550">Okunanlar</translation> <translation id="8803526663383843427">Açık olduğunda</translation> <translation id="8805097383171548551">QR Kodu taramak için kamerası olan bir cihaz kullanın.</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">Başka bir sağlayıcı seçin:</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" /> tarafından yönetilen bir hesapla oturum açıyorsunuz ve yöneticiye tüm Chrome verileriniz üzerinde denetim olanağı veriyorsunuz. Verileriniz kalıcı olarak bu hesaba bağlanacaktır. Chrome'da oturumu kapattığınızda verileriniz bu cihazdan silinir, ancak Google Hesabınızda kalmaya devam eder.</translation> <translation id="9022774213089566801">Sık ziyaret edilenler</translation> +<translation id="9022871169049522985">Siteler ve reklamverenler, reklamlarının performansını ölçebilir</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# Video}other{# Video}}</translation> <translation id="9042893549633094279">Gizlilik ve güvenlik</translation> <translation id="9050666287014529139">Parola</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">Güvenlik Anahtarı Desteği olarak telefon</translation> <translation id="9108808586816295166">Güvenli DNS her zaman kullanılamayabilir</translation> <translation id="9128984223251192329">Özel Korumalı Alan istemi ekranın yarısına kadar açıldı</translation> +<translation id="9131209053278896908">Engellenen siteler burada gösterilir</translation> <translation id="9133397713400217035">Çevrimdışıyken Keşfet</translation> <translation id="9148126808321036104">Tekrar oturum açın</translation> <translation id="9158770349521403363">Yalnızca içerik paylaşılıyor</translation> <translation id="9159716826369098114"><ph name="TAB_COUNT" /> sekmeden oluşan sekme grubunu, yeni bir arka plan sekme grubu olarak geri yükleyin.</translation> <translation id="9169507124922466868">Gezinme geçmişi yarım açık</translation> +<translation id="9183331776983279456">Chrome, 4 haftadan daha uzun süre önce ziyaret edilmiş siteleri otomatik olarak siler. Tekrar ziyaret ettiğiniz siteler yine listede görünebilir. Alternatif olarak bir sitenin size reklam önermesini de engelleyebilirsiniz.</translation> <translation id="9190276265094487094">Geçmiş bilgilerinizi senkronize edilmiş tüm cihazlarınızda bulabilirsiniz. Bu şekilde, son bıraktığınız yerden devam edebilirsiniz</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 dakika önce kontrol edildi}other{# dakika önce kontrol edildi}}</translation> <translation id="9204836675896933765">1 dosya kaldı</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">Basitleştirilmiş sayfa görüntülensin mi?</translation> <translation id="968900484120156207">Ziyaret ettiğiniz sayfalar burada görünür</translation> <translation id="970715775301869095"><ph name="MINUTES" /> dk. kaldı</translation> +<translation id="978317418833355355">İstemediğiniz siteleri engelleyebilirsiniz. Chrome 4 haftadan daha uzun süre önce ziyaret edilmiş siteleri de otomatik olarak siler. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation> <translation id="981121421437150478">Çevrimdışı</translation> <translation id="983192555821071799">Tüm sekmeleri kapat</translation> <translation id="987264212798334818">Genel</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb index 68c7aa1d..892dce8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google 涂鸦:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">阅读清单</translation> <translation id="1266864766717917324">无法分享<ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">屏蔽 <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">点按即可展开</translation> <translation id="1285310382777185058">更改语言</translation> <translation id="1291207594882862231">清除历史记录、Cookie、网站数据、缓存内容…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">网络与应用活动记录</translation> <translation id="2239812875700136898">通过“‘探索’功能的选项”按钮控制您的报道</translation> <translation id="2248941474044011069">系统会先在设备上对您的密码进行加密,然后再将其保存到 Google 密码管理器中</translation> +<translation id="2249635629516220541">自定义要让网站使用什么信息向您展示广告</translation> <translation id="2259659629660284697">导出密码…</translation> <translation id="2276231040576210443">您随时可在<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />中选择要同步的内容。Google 可能会根据您的历史记录为您提供个性化的 Google 搜索和其他服务。</translation> <translation id="2276696007612801991">您需要先登录 Google 帐号才能检查您的密码</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">卡号</translation> <translation id="2625189173221582860">已复制密码</translation> <translation id="2642087927315268160">用于进行登录的底部工作表已关闭。</translation> +<translation id="2643064289437760082">您可随时通过删除浏览数据来删除广告衡量数据</translation> <translation id="2647434099613338025">添加语言</translation> <translation id="2649068648233607930">您的浏览器由 <ph name="DOMAIN" /> 管理</translation> <translation id="2650348088770008516">隐私保护指南说明已关闭</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />获取帮助<ph name="END_LINK" /></translation> <translation id="3037177537145227281">正在跟踪价格</translation> <translation id="3037517125981011456">显示意在引导用户登录 Chrome 的提示</translation> +<translation id="3038272154009688107">查看所有网站</translation> <translation id="3046945242843292318">下次可更快速地转到此网站</translation> <translation id="3055113921564083271">您移除的兴趣</translation> <translation id="3055259925215945098">已移动书签</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">登录 Chrome</translation> <translation id="3285080554353377245">介绍如何使用 Chrome 的视频</translation> <translation id="3290249595466894471">还会发送网页、下载内容、扩展程序活动和系统信息的少量样本,以帮助发现新威胁</translation> +<translation id="3293181007446299124">您的浏览记录会被私密地保留在您的设备上,并且系统会延迟发送报告以保护您的身份信息</translation> <translation id="3297344142967351106">语音助理</translation> <translation id="3303414029551471755">要开始下载该内容吗?</translation> <translation id="3305795716056605962">通过“更多选项”按钮翻译网页</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">同步功能已停止工作</translation> <translation id="3976396876660209797">移除并重新创建此快捷方式</translation> <translation id="3981902534690264083">广告主可以了解广告取得的效果</translation> +<translation id="3985022125189960801">若要允许该网站推测您的喜好,请将其重新添加到网站列表中</translation> <translation id="3985215325736559418">要重新下载“<ph name="FILE_NAME" />”吗?</translation> <translation id="3987993985790029246">复制链接</translation> <translation id="3999683152997576765">您可看到并移除被网站用来向您展示广告的兴趣主题。Chrome 会根据您近期的浏览记录推测出您的兴趣。</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">正在关注…</translation> <translation id="4335835283689002019">“安全浏览”功能处于关闭状态</translation> <translation id="4351244548802238354">关闭对话框</translation> +<translation id="4369735607080757018">为了衡量各自的广告效果,网站之间会分享有限类型的数据,例如一天当中向您展示广告的时段</translation> <translation id="4378154925671717803">电话机</translation> <translation id="438319986296050901">仅分享卡片</translation> <translation id="4384468725000734951">目前使用的搜索引擎是搜狗</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">连接到 Wi-Fi 和移动数据网络时</translation> <translation id="4508528996305412043">动态卡片上的菜单已打开</translation> <translation id="4508642716788467538">选择您的语言</translation> +<translation id="4509501256689523862">浏览网站时是否会看到个性化广告取决于此设置、<ph name="BEGIN_LINK_1" />广告主题<ph name="END_LINK_1" />、您的 <ph name="BEGIN_LINK_2" />Cookie 设置<ph name="END_LINK_2" />以及您正查看的网站是否会展示个性化广告</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# 天前}other{# 天前}}</translation> <translation id="451872707440238414">搜索书签</translation> <translation id="4521489764227272523">所选数据已从 Chrome 和同步的设备中移除。 @@ -646,6 +654,7 @@ <translation id="4662373422909645029">昵称不能包含数字</translation> <translation id="4663499661119906179">查看为您推荐的热门网站和报道</translation> <translation id="4663756553811254707">已删除 <ph name="NUMBER_OF_BOOKMARKS" /> 个书签</translation> +<translation id="4668279686271488041">系统会定期从您的设备中删除广告衡量数据</translation> <translation id="4668347365065281350">网站存储的所有数据,包括 Cookie 及其他本地存储的数据</translation> <translation id="4678082183394354975">Chrome 中已为网站开启深色主题</translation> <translation id="4684427112815847243">同步所有数据类型</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">不久之后,当打开新标签页时,您将看到来自<ph name="SITE_NAME" />的故事。您关注的网站会保存在您的 Google 帐号中。您可在“探索”设置中管理它们。</translation> <translation id="5091249083535528968">扩展的使用情况数据</translation> <translation id="509429900233858213">出现错误。</translation> +<translation id="5097349930204431044">您访问的网站能推测您的喜好,然后在您继续浏览时向您展示建议的广告</translation> <translation id="5099845111805573968">只要选择了一次桌面版网站,每当您访问相应网站时,系统都会应用此设置</translation> <translation id="5102401324271069229">如果某个网站企图窃取您的密码,或者您下载了有害的文件,Chrome 可能会将相应网址连同少量网页内容发送给“安全浏览”功能</translation> <translation id="510275257476243843">还剩 1 小时</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">标签页</translation> <translation id="666731172850799929">在 <ph name="APP_NAME" />中打开</translation> <translation id="6671495933530132209">复制图片</translation> +<translation id="6672917148207387131">添加 <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">若要开始同步,请输入您的密码</translation> <translation id="6676840375528380067">从这部设备中清除您的 Chrome 数据?</translation> <translation id="6676927815633975364">登录此网站和 Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">如果您认为与某项兴趣或某个网站相关的广告对您有用,则将相应的兴趣或网站设为允许</translation> <translation id="6738516213925468394">您的数据已于 <ph name="TIME" />使用您的<ph name="BEGIN_LINK" />同步密码<ph name="END_LINK" />加密。输入该密码即可开始同步。</translation> <translation id="6738867403308150051">正在下载…</translation> +<translation id="674388916582496364">您访问的网站经常会记住您感兴趣的内容,以便为您提供个性化体验。网站还能将您的兴趣信息存储在 Chrome 中。</translation> <translation id="6751521182688001123">快速打开一个新标签页。若要修改此快捷方式,请轻触并按住这里。</translation> <translation id="6756507620369789050">分享反馈</translation> <translation id="6767294960381293877">要与之分享标签页的设备的列表已半屏打开。</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">删除书签</translation> <translation id="696447261358045621">退出无痕模式</translation> <translation id="6971862865055170158">禁止</translation> +<translation id="6978717888677691380">您已屏蔽的网站</translation> <translation id="6979737339423435258">时间不限</translation> <translation id="6987047470128880212">无法在此设备上使用无痕模式</translation> <translation id="6995899638241819463">若密码遭遇了数据泄露,发出警告</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">已为突出显示的内容添加样式,日期为:<ph name="CURRENT_DATE" /></translation> <translation id="7248069434667874558">请确保<ph name="TARGET_DEVICE_NAME" />已在 Chrome 中开启同步功能</translation> <translation id="7252076891734325316">将手机靠近计算机</translation> +<translation id="7260367682327802201">您的 Android 设备可能包含类似的设置。如果您在 Chrome 中和 Android 设备上开启了“广告衡量”,相关公司或许就能对在您访问的网站和使用的应用中投放的广告进行效果衡量。</translation> <translation id="727288900855680735">将 <ph name="ONE_TIME_CODE" /> 提交至 <ph name="ORIGIN" />?</translation> <translation id="7274013316676448362">禁止访问的网站</translation> <translation id="7286572596625053347">更改<ph name="LANGUAGE" />?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">报道会显示在此处,即使在离线状态下也可以阅读</translation> <translation id="768232549260819724">GIF 已复制</translation> <translation id="7682724950699840886">请尝试按以下提示操作:确保您的设备上有足够的空间,然后重新尝试导出。</translation> +<translation id="7686086654630106285">详细了解网站建议的广告</translation> <translation id="768618399695552958">在您访问的网页中,有一些是预加载的网页。从 Google 网站链接到的网页可能会通过 Google 服务器预加载。</translation> <translation id="7698359219371678927">在 <ph name="APP_NAME" /> 中创建电子邮件</translation> <translation id="7704317875155739195">自动补全搜索字词和网址</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">请输入格式正确的网址</translation> <translation id="854522910157234410">打开此网页</translation> <translation id="8551513938758868521">在您退出 Chrome 时锁定无痕式标签页</translation> +<translation id="8559961053328923750">Chrome 会限制网站为衡量广告效果而通过浏览器分享的数据总量</translation> <translation id="8559990750235505898">询问是否翻译其他语言版本的网页</translation> <translation id="8560602726703398413">您可在“书签”界面中找到自己的阅读清单</translation> <translation id="8562452229998620586">已保存的密码将显示在这里。</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">正在处理请求</translation> <translation id="8788265440806329501">导航历史记录已关闭</translation> <translation id="8788968922598763114">重新打开上次关闭的标签页</translation> +<translation id="879027982257117598">例如,如果您访问一个销售长程跑鞋的网站,该网站可能会推测您对跑马拉松感兴趣。之后,如果您访问别的网站,后者便可根据第一个网站的建议向您展示跑鞋广告。</translation> <translation id="8798449543960971550">已读</translation> <translation id="8803526663383843427">处于开启状态时</translation> <translation id="8805097383171548551">如需扫描二维码,请使用一部带有摄像头的设备。</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">另选一个提供商</translation> <translation id="8998729206196772491">您正要登录由 <ph name="MANAGED_DOMAIN" /> 管理的帐号,并要授权其管理员控制您的 Chrome 数据。您的数据将与此帐号永久关联。退出 Chrome 后,您的数据将从这台设备上删除,但仍会保留在您的 Google 帐号中。</translation> <translation id="9022774213089566801">经常访问</translation> +<translation id="9022871169049522985">网站和广告主可以衡量其广告的效果</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# 个视频}other{# 个视频}}</translation> <translation id="9042893549633094279">隐私设置和安全性</translation> <translation id="9050666287014529139">密码</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">支持使用手机作为安全密钥</translation> <translation id="9108808586816295166">安全 DNS 未必一直可用</translation> <translation id="9128984223251192329">Privacy Sandbox 提示已半屏打开</translation> +<translation id="9131209053278896908">已屏蔽的网站会显示在这里</translation> <translation id="9133397713400217035">离线浏览</translation> <translation id="9148126808321036104">重新登录</translation> <translation id="9158770349521403363">仅分享内容</translation> <translation id="9159716826369098114">将包含 <ph name="TAB_COUNT" /> 个标签页的标签页分组恢复为新的背景标签页分组。</translation> <translation id="9169507124922466868">导航历史记录在下半屏中显示</translation> +<translation id="9183331776983279456">Chrome 会自动删除保留时长超过 4 周的网站。再次访问的网站可能会重新出现在列表中。您也可屏蔽某个网站,拒绝其展示建议的广告。</translation> <translation id="9190276265094487094">您将能够在所有已同步的设备上查看您的历史记录,以继续执行先前未完成的操作</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 分钟前检查过}other{# 分钟前检查过}}</translation> <translation id="9204836675896933765">还剩 1 个文件</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">查看简化版网页?</translation> <translation id="968900484120156207">您访问的网页会显示在此处</translation> <translation id="970715775301869095">还剩 <ph name="MINUTES" /> 分钟</translation> +<translation id="978317418833355355">您可根据自己的需要屏蔽一些网站。Chrome 还会自动从列表中删除保留时长超过 4 周的网站。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation> <translation id="981121421437150478">离线</translation> <translation id="983192555821071799">关闭所有标签页</translation> <translation id="987264212798334818">常规</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index 5225cca..61586df0 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">閱讀清單</translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">封鎖 <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">輕按即可展開</translation> <translation id="1285310382777185058">變更語言</translation> <translation id="1291207594882862231">清除記錄、Cookie、網站資料、快取…</translation> @@ -224,6 +225,7 @@ <translation id="223356358902285214">網絡和應用程式活動記錄</translation> <translation id="2239812875700136898">按一下 [探索的選項] 按鈕來控制您的報導</translation> <translation id="2248941474044011069">您的密碼會先在裝置上加密,然後才儲存至 Google 密碼管理工具</translation> +<translation id="2249635629516220541">自訂網站可用來顯示廣告的資料</translation> <translation id="2259659629660284697">匯出密碼…</translation> <translation id="2276231040576210443">您隨時可在<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />中選擇要同步的資料。Google 可能會根據您的記錄,提供個人化「搜尋」和其他服務。</translation> <translation id="2276696007612801991">登入 Google 帳戶以檢查密碼</translation> @@ -289,6 +291,7 @@ <translation id="2612676031748830579">信用卡號碼</translation> <translation id="2625189173221582860">已複製密碼</translation> <translation id="2642087927315268160">閂咗登入頁底面板。</translation> +<translation id="2643064289437760082">只要刪除瀏覽資料,即可隨時刪除廣告評估資料</translation> <translation id="2647434099613338025">新增語言</translation> <translation id="2649068648233607930">您的瀏覽器由 <ph name="DOMAIN" /> 管理</translation> <translation id="2650348088770008516">閂咗私隱權指南說明</translation> @@ -372,6 +375,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />取得說明<ph name="END_LINK" /></translation> <translation id="3037177537145227281">正在追蹤價格</translation> <translation id="3037517125981011456">顯示登入 Chrome 的指示</translation> +<translation id="3038272154009688107">查看所有網站</translation> <translation id="3046945242843292318">之後可更快前往此網站</translation> <translation id="3055113921564083271">您已移除的興趣</translation> <translation id="3055259925215945098">已移動書籤</translation> @@ -421,6 +425,7 @@ <translation id="3282568296779691940">登入 Chrome</translation> <translation id="3285080554353377245">關於如何使用 Chrome 的影片</translation> <translation id="3290249595466894471">同時傳送網頁、下載檔案、擴充程式活動及系統資料的少量抽樣資料,以協助發現新威脅</translation> +<translation id="3293181007446299124">您的瀏覽記錄會保留在裝置上,絕不會外洩。系統亦會延遲傳送報告,從而保護您的身分</translation> <translation id="3297344142967351106">語音助手</translation> <translation id="3303414029551471755">繼續下載內容?</translation> <translation id="3305795716056605962">透過「更多選項」掣翻譯頁面</translation> @@ -532,6 +537,7 @@ <translation id="397583555483684758">同步處理功能已停止運作</translation> <translation id="3976396876660209797">移除並重新建立此捷徑</translation> <translation id="3981902534690264083">廣告客戶可以瞭解廣告的效益</translation> +<translation id="3985022125189960801">您重新新增的網站可再次猜測您的興趣。</translation> <translation id="3985215325736559418">您要再次下載 <ph name="FILE_NAME" /> 嗎?</translation> <translation id="3987993985790029246">複製連結</translation> <translation id="3999683152997576765">您可以查看及移除網站用來向您顯示廣告的感興趣主題。Chrome 會根據您最近的瀏覽記錄,推測您感興趣的主題。</translation> @@ -596,6 +602,7 @@ <translation id="433213510553688132">正在設定為追蹤…</translation> <translation id="4335835283689002019">「安全瀏覽」功能已關閉</translation> <translation id="4351244548802238354">關閉對話方塊</translation> +<translation id="4369735607080757018">網站之間會分享有限種類的資料 (例如系統向您顯示廣告的時段),以評估廣告的效益</translation> <translation id="4378154925671717803">電話號碼</translation> <translation id="438319986296050901">只分享資訊卡</translation> <translation id="4384468725000734951">使用「搜狗」搜尋內容</translation> @@ -619,6 +626,7 @@ <translation id="4504667196171871375">使用 Wi-Fi 和流動數據時</translation> <translation id="4508528996305412043">資訊提供卡選單開咗</translation> <translation id="4508642716788467538">請選擇語言</translation> +<translation id="4509501256689523862">瀏覽時是否看到個人化廣告,取決於此設定、<ph name="BEGIN_LINK_1" />廣告主題<ph name="END_LINK_1" />、<ph name="BEGIN_LINK_2" />Cookie 設定<ph name="END_LINK_2" />、網站是否顯示個人化廣告</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# 天前}other{# 天前}}</translation> <translation id="451872707440238414">搜尋您的書籤</translation> <translation id="4521489764227272523">所選資料已從 Chrome 和已同步的裝置中移除。 @@ -646,6 +654,7 @@ <translation id="4662373422909645029">暱稱不可包含數字</translation> <translation id="4663499661119906179">查看熱門網站和報導</translation> <translation id="4663756553811254707">已刪除 <ph name="NUMBER_OF_BOOKMARKS" /> 個書籤</translation> +<translation id="4668279686271488041">系統會定期從裝置刪除廣告評估資料</translation> <translation id="4668347365065281350">網站儲存的所有資料,包括 Cookie 和其他儲存在本機上的資料</translation> <translation id="4678082183394354975">已在 Chrome 中啟用網站的深色主題背景</translation> <translation id="4684427112815847243">同步處理所有資料</translation> @@ -737,6 +746,7 @@ <translation id="5091199029769593641">不久後,您將會在開啟新分頁時看到 <ph name="SITE_NAME" /> 的內容。您追蹤的網站會儲存在 Google 帳戶中。您可在「探索」設定中管理已儲存的網站。</translation> <translation id="5091249083535528968">延伸使用情況資料</translation> <translation id="509429900233858213">發生錯誤。</translation> +<translation id="5097349930204431044">您瀏覽的網站可判斷您喜愛的內容,然後在您繼續瀏覽時建議廣告</translation> <translation id="5099845111805573968">只要選取一次桌面版網站,往後每次瀏覽時,網站都會套用此設定</translation> <translation id="5102401324271069229">如果有網站試圖盜取您的密碼,或當您下載有害檔案時,Chrome 可能將網址 (包括部分網頁內容) 傳送至「安全瀏覽」功能</translation> <translation id="510275257476243843">尚餘 1 小時</translation> @@ -1031,6 +1041,7 @@ <translation id="6659594942844771486">分頁</translation> <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation> <translation id="6671495933530132209">複製圖片</translation> +<translation id="6672917148207387131">新增 <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation> <translation id="6676840375528380067">要清除此裝置上的 Chrome 資料嗎?</translation> <translation id="6676927815633975364">登入此網站和 Chrome</translation> @@ -1043,6 +1054,7 @@ <translation id="6737612727720318154">如果您認為與項目有關的廣告會對您有用,可允許興趣或網站</translation> <translation id="6738516213925468394">您已於 <ph name="TIME" />使用<ph name="BEGIN_LINK" />同步密碼短語<ph name="END_LINK" />加密資料,請輸入密碼短語開始同步資料。</translation> <translation id="6738867403308150051">下載中…</translation> +<translation id="674388916582496364">您瀏覽的網站經常會記住您感興趣的項目,以便為您提供個人化體驗。網站亦可將您的興趣相關資訊儲存在 Chrome 中。</translation> <translation id="6751521182688001123">快速開啟新分頁。如要編輯此捷徑,請按住捷徑按鈕。</translation> <translation id="6756507620369789050">提供意見</translation> <translation id="6767294960381293877">要共用分頁嘅裝置清單宜家顯示喺畫面下半部。</translation> @@ -1086,6 +1098,7 @@ <translation id="6963766334940102469">刪除書籤</translation> <translation id="696447261358045621">退出無痕模式</translation> <translation id="6971862865055170158">不核准</translation> +<translation id="6978717888677691380">您已封鎖的網站</translation> <translation id="6979737339423435258">所有時間</translation> <translation id="6987047470128880212">這部裝置不支援無式痕分頁</translation> <translation id="6995899638241819463">密碼因資料外洩而被洩露時接收警告</translation> @@ -1130,6 +1143,7 @@ <translation id="7242755609445462077">風格化突顯內容 (日期:<ph name="CURRENT_DATE" />)</translation> <translation id="7248069434667874558">請確認 <ph name="TARGET_DEVICE_NAME" /> 已開啟 Chrome 的同步處理功能。</translation> <translation id="7252076891734325316">請將手機放在電腦附近</translation> +<translation id="7260367682327802201">Android 裝置可能會有類似的設定。如果 Chrome 和 Android 裝置已開啟廣告評估設定,廣告商或者就能在您瀏覽的網站和使用的應用程式上評估廣告成效。</translation> <translation id="727288900855680735">要將 <ph name="ONE_TIME_CODE" /> 提交至 <ph name="ORIGIN" /> 嗎?</translation> <translation id="7274013316676448362">已封鎖的網站</translation> <translation id="7286572596625053347">要將<ph name="LANGUAGE" />變更為其他語言嗎?</translation> @@ -1210,6 +1224,7 @@ <translation id="766587987807204883">文章在這裡顯示,即使處於離線狀態也可閱讀</translation> <translation id="768232549260819724">已複製 GIF</translation> <translation id="7682724950699840886">請嘗試按照以下提示操作:確保您的裝置上有足夠的儲存空間,然後嘗試重新匯出。</translation> +<translation id="7686086654630106285">進一步瞭解網站建議的廣告</translation> <translation id="768618399695552958">系統會預先載入您瀏覽的部分網頁。當您從 Google 網站連至這些網頁時,系統可能會透過 Google 伺服器預先載入網頁內容。</translation> <translation id="7698359219371678927">在 <ph name="APP_NAME" /> 中建立電郵</translation> <translation id="7704317875155739195">自動完成搜尋和網址</translation> @@ -1378,6 +1393,7 @@ <translation id="8540136935098276800">請輸入正確格式的網址</translation> <translation id="854522910157234410">開啟此頁</translation> <translation id="8551513938758868521">離開 Chrome 時鎖定無痕式分頁</translation> +<translation id="8559961053328923750">Chrome 會限制網站為評估廣告成效而透過瀏覽器分享的總資料量</translation> <translation id="8559990750235505898">詢問是否將網頁內容翻譯成其他語言</translation> <translation id="8560602726703398413">在書籤中尋找閱讀清單</translation> <translation id="8562452229998620586">已儲存的密碼會顯示在這裡。</translation> @@ -1418,6 +1434,7 @@ <translation id="8773160212632396039">正在處理要求</translation> <translation id="8788265440806329501">導覽記錄閂咗</translation> <translation id="8788968922598763114">重新開啟最近關閉的分頁</translation> +<translation id="879027982257117598">例如,如果您瀏覽售賣長距離跑步鞋的網站,該網站可能會判斷您有興趣參加馬拉松。如果您日後瀏覽其他網站,該網站就可以向您顯示第一個網站所建議的跑步鞋廣告。</translation> <translation id="8798449543960971550">已讀</translation> <translation id="8803526663383843427">開啟時</translation> <translation id="8805097383171548551">如要掃瞄 QR 碼,請使用有攝錄機的裝置。</translation> @@ -1460,6 +1477,7 @@ <translation id="8996847606757455498">選擇其他供應商</translation> <translation id="8998729206196772491">您即將登入由 <ph name="MANAGED_DOMAIN" /> 管理的帳戶,並讓帳戶管理員控制您的 Chrome 資料。您的資料將與這個帳戶建立永久連結。如果您登出 Chrome,系統將刪除此裝置上的資料,但這些資料仍會保留在您的 Google 帳戶中。</translation> <translation id="9022774213089566801">經常瀏覽</translation> +<translation id="9022871169049522985">網站和廣告客戶可評估廣告的效益</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# 部影片}other{# 部影片}}</translation> <translation id="9042893549633094279">私隱權和安全性</translation> <translation id="9050666287014529139">複雜密碼</translation> @@ -1481,11 +1499,13 @@ <translation id="9108312223223904744">支援「讓手機作為安全密鑰」</translation> <translation id="9108808586816295166">可能無法隨時使用安全 DNS</translation> <translation id="9128984223251192329">私隱沙箱提示宜家顯示喺畫面下半部</translation> +<translation id="9131209053278896908">已封鎖的網站會在此顯示</translation> <translation id="9133397713400217035">離線探索</translation> <translation id="9148126808321036104">重新登入</translation> <translation id="9158770349521403363">只分享內容</translation> <translation id="9159716826369098114">還原有 <ph name="TAB_COUNT" /> 個分頁嘅分頁群組做新嘅背景分頁群組。</translation> <translation id="9169507124922466868">導覽記錄喺畫面下半部分顯示</translation> +<translation id="9183331776983279456">Chrome 會自動刪除超過 4 星期的網站。您再次瀏覽的網頁可能會再次在清單中顯示。您亦可封鎖網站,讓該網站無法為您提供建議廣告。</translation> <translation id="9190276265094487094">您可在所有已同步的裝置上查看記錄,繼續執行先前的任何工作</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{曾在 1 分鐘前檢查}other{曾在 # 分鐘前檢查}}</translation> <translation id="9204836675896933765">尚餘 1 個檔案</translation> @@ -1507,6 +1527,7 @@ <translation id="96681097142096641">要查看簡化頁面嗎?</translation> <translation id="968900484120156207">您瀏覽的網頁會在這裡顯示</translation> <translation id="970715775301869095">尚餘 <ph name="MINUTES" /> 分鐘</translation> +<translation id="978317418833355355">您可封鎖不想要的網站。Chrome 亦會從清單自動刪除超過 4 星期的網站。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="981121421437150478">離線</translation> <translation id="983192555821071799">關閉所有分頁</translation> <translation id="987264212798334818">一般</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb index 676e4d8..4acb71b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -56,6 +56,7 @@ <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation> <translation id="1263231323834454256">閱讀清單</translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> +<translation id="1273937721055267968">封鎖 <ph name="DOMAIN" /></translation> <translation id="1283039547216852943">輕觸即可展開</translation> <translation id="1285310382777185058">變更語言</translation> <translation id="1291207594882862231">清除歷史記錄、Cookie、網站資料、快取…</translation> @@ -225,6 +226,7 @@ <translation id="223356358902285214">網路和應用程式活動</translation> <translation id="2239812875700136898">按一下 [探索的選項] 按鈕來控管你的報導</translation> <translation id="2248941474044011069">系統會先在裝置上將密碼加密,再儲存至 Google 密碼管理員</translation> +<translation id="2249635629516220541">自訂網站可用來顯示廣告的資訊</translation> <translation id="2259659629660284697">匯出密碼…</translation> <translation id="2276231040576210443">你隨時可以前往<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />選擇要同步處理的資料。Google 可能會根據你的歷史記錄在 Google 搜尋等其他服務中提供個人化體驗。</translation> <translation id="2276696007612801991">登入 Google 帳戶以檢查你的密碼</translation> @@ -290,6 +292,7 @@ <translation id="2612676031748830579">卡號</translation> <translation id="2625189173221582860">已複製密碼</translation> <translation id="2642087927315268160">登入底部功能表已關閉。</translation> +<translation id="2643064289437760082">刪除瀏覽資料即可刪除廣告評估資料</translation> <translation id="2647434099613338025">新增語言</translation> <translation id="2649068648233607930">你的瀏覽器是由 <ph name="DOMAIN" /> 管理</translation> <translation id="2650348088770008516">已關閉隱私權指南說明</translation> @@ -373,6 +376,7 @@ <translation id="3036750288708366620"><ph name="BEGIN_LINK" />取得說明<ph name="END_LINK" /></translation> <translation id="3037177537145227281">追蹤價格</translation> <translation id="3037517125981011456">顯示登入 Chrome 的提示</translation> +<translation id="3038272154009688107">查看所有網站</translation> <translation id="3046945242843292318">之後可更快前往這個網站</translation> <translation id="3055113921564083271">已移除的感興趣主題</translation> <translation id="3055259925215945098">已移動書籤</translation> @@ -422,6 +426,7 @@ <translation id="3282568296779691940">登入 Chrome</translation> <translation id="3285080554353377245">關於如何使用 Chrome 的影片</translation> <translation id="3290249595466894471">另外也會傳送少量網頁、下載內容、擴充功能活動和系統資訊,協助找出新的威脅</translation> +<translation id="3293181007446299124">在裝置端保留瀏覽記錄,僅供你本人存取。系統會延遲一段時間才傳送報告,保護你的身分</translation> <translation id="3297344142967351106">語音協助</translation> <translation id="3303414029551471755">繼續下載這項內容?</translation> <translation id="3305795716056605962">透過「更多選項」按鈕翻譯頁面</translation> @@ -533,6 +538,7 @@ <translation id="397583555483684758">同步處理功能已停止運作</translation> <translation id="3976396876660209797">移除這個捷徑後再重新建立</translation> <translation id="3981902534690264083">廣告客戶可以瞭解廣告成效</translation> +<translation id="3985022125189960801">你重新新增的網站可再次推斷你的興趣喜好</translation> <translation id="3985215325736559418">你要再次下載 <ph name="FILE_NAME" /> 嗎?</translation> <translation id="3987993985790029246">複製連結</translation> <translation id="3999683152997576765">你可以查看網站用於顯示廣告的興趣主題,並且視需要移除。Chrome 會根據近期瀏覽記錄推測你可能感興趣的主題。</translation> @@ -595,6 +601,7 @@ <translation id="433213510553688132">正在設為追蹤…</translation> <translation id="4335835283689002019">安全瀏覽功能已關閉</translation> <translation id="4351244548802238354">關閉對話方塊</translation> +<translation id="4369735607080757018">在網站間分享少數類型的資料,以評估廣告成效,例如你在哪個時段看到廣告</translation> <translation id="4378154925671717803">電話</translation> <translation id="438319986296050901">僅分享資訊卡</translation> <translation id="4384468725000734951">現已使用 Sogou 搜尋</translation> @@ -618,6 +625,7 @@ <translation id="4504667196171871375">使用 Wi-Fi 或行動數據時</translation> <translation id="4508528996305412043">已開啟動態消息資訊卡選單</translation> <translation id="4508642716788467538">選擇語言</translation> +<translation id="4509501256689523862">上網時是否會看到個人化廣告,取決於這項設定、<ph name="BEGIN_LINK_1" />廣告主題<ph name="END_LINK_1" />、<ph name="BEGIN_LINK_2" />Cookie 設定<ph name="END_LINK_2" />、網站是否顯示個人化廣告</translation> <translation id="4513387527876475750">{DAYS,plural, =1{# 天前}other{# 天前}}</translation> <translation id="451872707440238414">搜尋書籤</translation> <translation id="4521489764227272523">系統已將你所選取的資料從 Chrome 和其他同步的裝置中移除。 @@ -645,6 +653,7 @@ <translation id="4662373422909645029">暱稱不可包含數字</translation> <translation id="4663499661119906179">查看你常用的網站和精選報導</translation> <translation id="4663756553811254707">已刪除 <ph name="NUMBER_OF_BOOKMARKS" /> 個書籤</translation> +<translation id="4668279686271488041">定期刪除裝置上的廣告評估資料</translation> <translation id="4668347365065281350">網站儲存的所有資料,包括 Cookie 和其他儲存在本機上的資料</translation> <translation id="4678082183394354975">已在 Chrome 中啟用網站的深色主題</translation> <translation id="4684427112815847243">同步處理所有資料</translation> @@ -736,6 +745,7 @@ <translation id="5091199029769593641">不久後,你就會在開啟新分頁時看到「<ph name="SITE_NAME" />」的網路故事。你追蹤的網站會儲存在 Google 帳戶中,你可以在「探索」設定中管理這些網站。</translation> <translation id="5091249083535528968">延伸使用資料</translation> <translation id="509429900233858213">發生錯誤。</translation> +<translation id="5097349930204431044">你造訪的網站可以判斷你喜愛的內容,並在接下來的瀏覽過程中顯示建議廣告</translation> <translation id="5099845111805573968">只要選取一次電腦版網站,當你每次造訪時,網站都會套用這項設定</translation> <translation id="5102401324271069229">如果有網站試圖竊取你的密碼,或當你下載有害檔案時,Chrome 可能會將網址 (包括部分網頁內容) 傳送至安全瀏覽功能</translation> <translation id="510275257476243843">還剩 1 小時</translation> @@ -1030,6 +1040,7 @@ <translation id="6659594942844771486">分頁</translation> <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation> <translation id="6671495933530132209">複製圖片</translation> +<translation id="6672917148207387131">新增 <ph name="DOMAIN" /></translation> <translation id="6674571176963658787">如要開始同步處理,請輸入通關密語</translation> <translation id="6676840375528380067">要清除你在這個裝置上的 Chrome 資料嗎?</translation> <translation id="6676927815633975364">登入這個網站和 Chrome</translation> @@ -1042,6 +1053,7 @@ <translation id="6737612727720318154">如果你認為與該項目相關的廣告很實用,可以允許感興趣的主題或網站</translation> <translation id="6738516213925468394">你在 <ph name="TIME" />已使用<ph name="BEGIN_LINK" />同步通關密語<ph name="END_LINK" />將資料加密。如要開始同步處理資料,請輸入通關密語。</translation> <translation id="6738867403308150051">下載中…</translation> +<translation id="674388916582496364">一般來說,你造訪的網站會記住你感興趣的內容,以便提供個人化的服務體驗。此外,網站也可以將你的興趣喜好相關資訊儲存在 Chrome 中。</translation> <translation id="6751521182688001123">快速開啟新分頁。按住這裡即可編輯這個捷徑。</translation> <translation id="6756507620369789050">提供意見</translation> <translation id="6767294960381293877">要共用分頁的裝置清單已開啟,顯示在畫面下半部。</translation> @@ -1085,6 +1097,7 @@ <translation id="6963766334940102469">刪除書籤</translation> <translation id="696447261358045621">退出無痕模式</translation> <translation id="6971862865055170158">拒絕</translation> +<translation id="6978717888677691380">你封鎖的網站</translation> <translation id="6979737339423435258">不限時間</translation> <translation id="6987047470128880212">這部裝置不支援無痕模式</translation> <translation id="6995899638241819463">當密碼因資料侵害事件遭到外洩時發出警告</translation> @@ -1129,6 +1142,7 @@ <translation id="7242755609445462077">風格化醒目顯示內容 (日期:<ph name="CURRENT_DATE" />)</translation> <translation id="7248069434667874558">請確認「<ph name="TARGET_DEVICE_NAME" />」的 Chrome 同步功能已開啟</translation> <translation id="7252076891734325316">請將手機置於電腦附近</translation> +<translation id="7260367682327802201">Android 裝置可能會有類似的設定。如果 Chrome 和 Android 裝置開啟了廣告評估設定,廣告技術公司或許就能在你造訪的網站和使用的應用程式上評估廣告成效。</translation> <translation id="727288900855680735">要將 <ph name="ONE_TIME_CODE" /> 提交至 <ph name="ORIGIN" /> 嗎?</translation> <translation id="7274013316676448362">已封鎖網站</translation> <translation id="7286572596625053347">要將<ph name="LANGUAGE" />變更為其他語言嗎?</translation> @@ -1209,6 +1223,7 @@ <translation id="766587987807204883">文章會顯示在這裡,並可供離線閱讀</translation> <translation id="768232549260819724">已複製 GIF</translation> <translation id="7682724950699840886">請嘗試按照下列提示操作:確認你的裝置上有足夠空間,然後嘗試重新匯出。</translation> +<translation id="7686086654630106285">進一步瞭解網站建議廣告</translation> <translation id="768618399695552958">系統會預先載入你要造訪的部分網頁。當你從 Google 網站連到這些網頁時,系統可能會透過 Google 伺服器預先載入網頁內容。</translation> <translation id="7698359219371678927">在「<ph name="APP_NAME" />」中建立電子郵件</translation> <translation id="7704317875155739195">自動完成搜尋字詞與網址</translation> @@ -1377,6 +1392,7 @@ <translation id="8540136935098276800">請輸入正確格式的網址</translation> <translation id="854522910157234410">開啟以下網頁</translation> <translation id="8551513938758868521">退出 Chrome 時鎖定無痕分頁</translation> +<translation id="8559961053328923750">Chrome 會限制網站為評估廣告成效而透過瀏覽器分享的資料總量</translation> <translation id="8559990750235505898">詢問是否將網頁內容翻譯成其他語言</translation> <translation id="8560602726703398413">在書籤中尋找閱讀清單</translation> <translation id="8562452229998620586">已儲存的密碼會顯示在這裡。</translation> @@ -1417,6 +1433,7 @@ <translation id="8773160212632396039">正在處理要求</translation> <translation id="8788265440806329501">瀏覽記錄已關閉</translation> <translation id="8788968922598763114">重新開啟最近關閉的分頁</translation> +<translation id="879027982257117598">舉例來說,假設你造訪賣長跑鞋的網站,該網站可能會推斷你對跑馬拉松感興趣,並在你造訪其他網站時建議網站顯示跑鞋的廣告。</translation> <translation id="8798449543960971550">讀取</translation> <translation id="8803526663383843427">開啟時</translation> <translation id="8805097383171548551">如要掃描 QR 圖碼,請使用配有攝影機的裝置。</translation> @@ -1459,6 +1476,7 @@ <translation id="8996847606757455498">選擇其他供應商</translation> <translation id="8998729206196772491">您即將使用由 <ph name="MANAGED_DOMAIN" /> 所管理的帳戶登入,並授權該網域的管理員控管您的 Chrome 資料。您的資料會與這個帳戶建立永久連結。登出 Chrome 後,系統會將您的資料從這個裝置上刪除,但繼續保留在您的 Google 帳戶中。</translation> <translation id="9022774213089566801">經常造訪</translation> +<translation id="9022871169049522985">網站和廣告商可評估廣告成效</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# 部影片}other{# 部影片}}</translation> <translation id="9042893549633094279">隱私權和安全性</translation> <translation id="9050666287014529139">通關密語</translation> @@ -1480,11 +1498,13 @@ <translation id="9108312223223904744">支援使用手機做為安全金鑰</translation> <translation id="9108808586816295166">可能無法隨時使用安全 DNS</translation> <translation id="9128984223251192329">Privacy Sandbox 提示已開啟,顯示在畫面下半部</translation> +<translation id="9131209053278896908">這裡會顯示已封鎖的網站</translation> <translation id="9133397713400217035">離線探索</translation> <translation id="9148126808321036104">重新登入</translation> <translation id="9158770349521403363">僅分享內容</translation> <translation id="9159716826369098114">將 <ph name="TAB_COUNT" /> 個分頁群組還原為新的背景分頁群組。</translation> <translation id="9169507124922466868">已在畫面下半部顯示瀏覽記錄</translation> +<translation id="9183331776983279456">Chrome 會自動刪除 4 週前造訪的網站,但你再次造訪的網站可能會重新加回清單。你也可以封鎖網站,讓該網站無法為你提供建議廣告。</translation> <translation id="9190276265094487094">所有已同步的裝置上都會有你的歷史記錄,方便你繼續執行先前的工作</translation> <translation id="9199368092038462496">{NUM_MINS,plural, =1{已在 1 分鐘前檢查}other{已在 # 分鐘前檢查}}</translation> <translation id="9204836675896933765">還剩 1 個檔案</translation> @@ -1506,6 +1526,7 @@ <translation id="96681097142096641">要查看簡化頁面嗎?</translation> <translation id="968900484120156207">你曾造訪的頁面會顯示在這裡</translation> <translation id="970715775301869095">還剩 <ph name="MINUTES" /> 分鐘</translation> +<translation id="978317418833355355">你可以封鎖不喜歡的網站,Chrome 也會自動將 4 週前造訪的網站從清單中刪除。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="981121421437150478">離線</translation> <translation id="983192555821071799">關閉所有分頁</translation> <translation id="987264212798334818">一般</translation>
diff --git a/chrome/browser/ui/views/file_system_access/file_system_access_browsertest.cc b/chrome/browser/ui/views/file_system_access/file_system_access_browsertest.cc index d859866..cf51d279 100644 --- a/chrome/browser/ui/views/file_system_access/file_system_access_browsertest.cc +++ b/chrome/browser/ui/views/file_system_access/file_system_access_browsertest.cc
@@ -1148,7 +1148,7 @@ })"; EXPECT_TRUE(ExecJs(fenced_frame_parent, content::JsReplace(kAddFencedFrameScript, url))); - navigation.WaitForNavigationFinished(); + EXPECT_TRUE(navigation.WaitForNavigationFinished()); content::RenderFrameHost* new_frame = ChildFrameAt(fenced_frame_parent, 0);
diff --git a/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc b/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc new file mode 100644 index 0000000..2ee92cd4 --- /dev/null +++ b/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc
@@ -0,0 +1,185 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/webui/signin/enterprise_profile_welcome_ui.h" + +#include <memory> + +#include "base/functional/callback_forward.h" +#include "base/scoped_environment_variable_override.h" +#include "base/strings/strcat.h" +#include "base/test/bind.h" +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/test/test_browser_ui.h" +#include "chrome/browser/ui/views/profiles/profile_management_step_controller.h" +#include "chrome/browser/ui/views/profiles/profile_picker_view_test_utils.h" +#include "chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h" +#include "chrome/common/webui_url_constants.h" +#include "components/signin/public/base/signin_buildflags.h" +#include "components/signin/public/identity_manager/account_info.h" +#include "content/public/test/browser_test.h" +#include "ui/compositor/scoped_animation_duration_scale_mode.h" + +#if !BUILDFLAG(ENABLE_DICE_SUPPORT) +#error Platform not supported +#endif + +// Tests for the chrome://enterprise-profile-welcome/ WebUI page. They live here +// and not in the webui directory because they manipulate views. + +namespace { +// To be passed as 4th argument to `INSTANTIATE_TEST_SUITE_P()`, allows the test +// to be named like `<TestClassName>.InvokeUi_default/<TestSuffix>` instead +// of using the index of the param in `TestParam` as suffix. +std::string ParamToTestSuffix( + const ::testing::TestParamInfo<PixelTestParam>& info) { + return info.param.test_suffix; +} + +// Permutations of supported parameters. +const PixelTestParam testParams[] = { + {.test_suffix = "EnterpriseWelcome"}, + {.test_suffix = "EnterpriseWelcomeDarkTheme", .use_dark_theme = true}, + {.test_suffix = "EnterpriseWelcomeRtl", .use_right_to_left_language = true}, + {.test_suffix = "EnterpriseWelcomeSmallWindow", .use_small_window = true}, + {.test_suffix = "EnterpriseWelcomeFre", .use_fre_style = true}, + {.test_suffix = "EnterpriseWelcomeFreDarkTheme", + .use_dark_theme = true, + .use_fre_style = true}, + {.test_suffix = "EnterpriseWelcomeFreRtl", + .use_right_to_left_language = true, + .use_fre_style = true}, + {.test_suffix = "EnterpriseWelcomeFreSmallWindow", + .use_small_window = true, + .use_fre_style = true}, +}; + +// Creates a step to represent the enterprise-profile-welcome +class EnterpriseWelcomeStepControllerForTest + : public ProfileManagementStepController { + public: + explicit EnterpriseWelcomeStepControllerForTest( + ProfilePickerWebContentsHost* host, + Profile* profile, + const AccountInfo& account_info) + : ProfileManagementStepController(host), + enterprise_welcome_url_( + GURL(chrome::kChromeUIEnterpriseProfileWelcomeURL)), + profile_(profile), + account_info_(&account_info) {} + + ~EnterpriseWelcomeStepControllerForTest() override = default; + + void Show(StepSwitchFinishedCallback step_shown_callback, + bool reset_state) override { + // Reload the WebUI in the picker contents. + host()->ShowScreenInPickerContents( + enterprise_welcome_url_, + base::BindOnce( + &EnterpriseWelcomeStepControllerForTest::OnEnterpriseWelcomeLoaded, + weak_ptr_factory_.GetWeakPtr(), std::move(step_shown_callback))); + } + + void OnNavigateBackRequested() override { NOTREACHED(); } + + void OnEnterpriseWelcomeLoaded( + StepSwitchFinishedCallback step_shown_callback) { + DCHECK(profile_); + DCHECK(account_info_); + auto* enterprise_welcome_ui = static_cast<EnterpriseProfileWelcomeUI*>( + host()->GetPickerContents()->GetWebUI()->GetController()); + + enterprise_welcome_ui->Initialize( + nullptr, + EnterpriseProfileWelcomeUI::ScreenType::kEntepriseAccountSyncEnabled, + *account_info_, false, false, absl::nullopt, base::DoNothing()); + + if (step_shown_callback) { + std::move(step_shown_callback).Run(/*success=*/true); + } + } + + private: + const GURL enterprise_welcome_url_; + raw_ptr<Profile> profile_; + raw_ptr<const AccountInfo> account_info_; + base::WeakPtrFactory<EnterpriseWelcomeStepControllerForTest> + weak_ptr_factory_{this}; +}; +} // namespace + +class EnterpriseWelcomeUIWindowPixelTest + : public UiBrowserTest, + public testing::WithParamInterface<PixelTestParam> { + public: + EnterpriseWelcomeUIWindowPixelTest() { + std::vector<base::test::FeatureRef> enabled_features = {}; + std::vector<base::test::FeatureRef> disabled_features = {}; + InitPixelTestFeatures(GetParam(), scoped_feature_list_, enabled_features, + disabled_features); + } + + void SetUpCommandLine(base::CommandLine* command_line) override { + SetUpPixelTestCommandLine(GetParam(), scoped_env_override_, command_line); + } + + void ShowUi(const std::string& name) override { + ui::ScopedAnimationDurationScaleMode disable_animation( + ui::ScopedAnimationDurationScaleMode::ZERO_DURATION); + DCHECK(browser()); + + auto account_info = SignInWithPrimaryAccount(browser()->profile(), true); + profile_picker_view_ = new ProfileManagementStepTestView( + ProfilePicker::Params::ForFirstRun(browser()->profile()->GetPath(), + base::DoNothing()), + ProfileManagementFlowController::Step::kPostSignInFlow, + /*step_controller_factory=*/ + base::BindLambdaForTesting( + [this, &account_info](ProfilePickerWebContentsHost* host) + -> std::unique_ptr<ProfileManagementStepController> { + return std::make_unique<EnterpriseWelcomeStepControllerForTest>( + host, browser()->profile(), account_info); + })); + profile_picker_view_->ShowAndWait( + GetParam().use_small_window + ? absl::optional<gfx::Size>(gfx::Size(750, 590)) + : absl::nullopt); + } + + bool VerifyUi() override { + views::Widget* widget = GetWidgetForScreenshot(); + + auto* test_info = testing::UnitTest::GetInstance()->current_test_info(); + const std::string screenshot_name = + base::StrCat({test_info->test_case_name(), "_", test_info->name()}); + + return VerifyPixelUi(widget, "EnterpriseWelcomeUIWindowPixelTest", + screenshot_name); + } + + void WaitForUserDismissal() override { + DCHECK(GetWidgetForScreenshot()); + ViewDeletedWaiter(profile_picker_view_).Wait(); + } + + private: + views::Widget* GetWidgetForScreenshot() { + return profile_picker_view_->GetWidget(); + } + + base::test::ScopedFeatureList scoped_feature_list_; + raw_ptr<ProfileManagementStepTestView, DanglingUntriaged> + profile_picker_view_; + std::unique_ptr<base::ScopedEnvironmentVariableOverride> scoped_env_override_; +}; + +IN_PROC_BROWSER_TEST_P(EnterpriseWelcomeUIWindowPixelTest, InvokeUi_default) { + ShowAndVerifyUi(); +} + +INSTANTIATE_TEST_SUITE_P(, + EnterpriseWelcomeUIWindowPixelTest, + testing::ValuesIn(testParams), + &ParamToTestSuffix);
diff --git a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc index 9005422..bf6e5bd 100644 --- a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc +++ b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc
@@ -7,17 +7,15 @@ #include "base/scoped_environment_variable_override.h" #include "base/strings/strcat.h" #include "base/test/scoped_feature_list.h" -#include "chrome/browser/signin/signin_features.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/test/test_browser_ui.h" #include "chrome/browser/ui/views/profiles/first_run_flow_controller_dice.h" #include "chrome/browser/ui/views/profiles/profile_management_step_controller.h" #include "chrome/browser/ui/views/profiles/profile_picker_view_test_utils.h" -#include "chrome/common/chrome_features.h" +#include "chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h" #include "components/signin/public/base/signin_buildflags.h" #include "content/public/test/browser_test.h" #include "testing/gtest/include/gtest/gtest.h" -#include "ui/base/ui_base_switches.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" #if !BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -27,32 +25,34 @@ // Tests for the chrome://intro WebUI page. They live here and not in the webui // directory because they manipulate views. namespace { - -struct TestParam { - std::string test_suffix = ""; - bool use_dark_theme = false; +struct FirstRunTestParam { + PixelTestParam pixel_test_param; bool use_fixed_size = false; bool use_longer_strings = false; - bool use_right_to_left_language = false; }; // To be passed as 4th argument to `INSTANTIATE_TEST_SUITE_P()`, allows the test // to be named like `<TestClassName>.InvokeUi_default/<TestSuffix>` instead -// of using the index of the param in `kTestParam` as suffix. -std::string ParamToTestSuffix(const ::testing::TestParamInfo<TestParam>& info) { - return info.param.test_suffix; +// of using the index of the param in `TestParam` as suffix. +std::string ParamToTestSuffix( + const ::testing::TestParamInfo<FirstRunTestParam>& info) { + return info.param.pixel_test_param.test_suffix; } // Permutations of supported parameters. -const TestParam kTestParams[] = { - {.test_suffix = "DarkThemeFixedSize", - .use_dark_theme = true, +const FirstRunTestParam kTestParams[] = { + {.pixel_test_param = {.test_suffix = "DarkThemeFixedSize", + .use_dark_theme = true, + .use_fre_style = true}, .use_fixed_size = true}, - {.test_suffix = "LightTheme"}, - {.test_suffix = "LongerStringsFixedSize", + {.pixel_test_param = {.test_suffix = "LightTheme", .use_fre_style = true}}, + {.pixel_test_param = {.test_suffix = "LongerStringsFixedSize", + .use_fre_style = true}, .use_fixed_size = true, .use_longer_strings = true}, - {.test_suffix = "RightToLeftLanguage", .use_right_to_left_language = true}, + {.pixel_test_param = {.test_suffix = "RightToLeftLanguage", + .use_right_to_left_language = true, + .use_fre_style = true}}, }; const char kMakeCardDescriptionLongerJsString[] = @@ -65,33 +65,22 @@ " cardDescriptions[0].textContent.repeat(20);" " return true;" "})();"; - } // namespace -class FirstRunIntroPixelTest : public UiBrowserTest, - public testing::WithParamInterface<TestParam> { +class FirstRunIntroPixelTest + : public UiBrowserTest, + public testing::WithParamInterface<FirstRunTestParam> { public: FirstRunIntroPixelTest() { - std::vector<base::test::FeatureRef> enabled_features = {kForYouFre}; - if (GetParam().use_dark_theme) { - enabled_features.push_back(features::kWebUIDarkMode); - } - scoped_feature_list_.InitWithFeatures(enabled_features, {}); + std::vector<base::test::FeatureRef> enabled_features = {}; + std::vector<base::test::FeatureRef> disabled_features = {}; + InitPixelTestFeatures(GetParam().pixel_test_param, scoped_feature_list_, + enabled_features, disabled_features); } void SetUpCommandLine(base::CommandLine* command_line) override { - if (GetParam().use_dark_theme) { - command_line->AppendSwitch(switches::kForceDarkMode); - } - if (GetParam().use_right_to_left_language) { - command_line->AppendSwitchASCII(switches::kLang, "ar"); - - // On Linux & Lacros the command line switch has no effect, we need to use - // environment variables to change the language. - scoped_env_override_ = - std::make_unique<base::ScopedEnvironmentVariableOverride>("LANGUAGE", - "ar"); - } + SetUpPixelTestCommandLine(GetParam().pixel_test_param, scoped_env_override_, + command_line); } void ShowUi(const std::string& name) override {
diff --git a/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.cc b/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.cc new file mode 100644 index 0000000..8584f0b --- /dev/null +++ b/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.cc
@@ -0,0 +1,86 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h" +#include <memory> +#include "base/command_line.h" +#include "base/scoped_environment_variable_override.h" +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/browser/signin/signin_features.h" +#include "chrome/common/chrome_features.h" +#include "components/signin/public/base/signin_buildflags.h" +#include "components/signin/public/identity_manager/account_info.h" +#include "components/signin/public/identity_manager/identity_test_utils.h" +#include "ui/base/ui_base_switches.h" + +namespace { +AccountInfo FillAccountInfo(const CoreAccountInfo& core_info, + bool is_managed_account) { + const char kHostedDomain[] = "example.com"; + AccountInfo account_info; + + account_info.email = core_info.email; + account_info.gaia = core_info.gaia; + account_info.account_id = core_info.account_id; + account_info.is_under_advanced_protection = + core_info.is_under_advanced_protection; + account_info.full_name = "Test Full Name"; + account_info.given_name = "Joe"; + account_info.hosted_domain = + is_managed_account ? kHostedDomain : kNoHostedDomainFound; + account_info.locale = "en"; + account_info.picture_url = "https://example.com"; + return account_info; +} +} // namespace + +AccountInfo SignInWithPrimaryAccount(Profile* profile, + bool is_managed_account) { + DCHECK(profile); + + auto* identity_manager = IdentityManagerFactory::GetForProfile(profile); + auto core_account_info = signin::MakePrimaryAccountAvailable( + identity_manager, + is_managed_account ? "joe.consumer@example.com" + : "joe.consumer@gmail.com", + signin::ConsentLevel::kSignin); + auto account_info = FillAccountInfo(core_account_info, is_managed_account); + signin::UpdateAccountInfoForAccount(identity_manager, account_info); + + return account_info; +} + +void SetUpPixelTestCommandLine( + const PixelTestParam& params, + std::unique_ptr<base::ScopedEnvironmentVariableOverride>& env_variables, + base::CommandLine* command_line) { + if (params.use_dark_theme) { + command_line->AppendSwitch(switches::kForceDarkMode); + } + if (params.use_right_to_left_language) { + command_line->AppendSwitchASCII(switches::kLang, "ar"); + + // On Linux & Lacros the command line switch has no effect, we need to use + // environment variables to change the language. + env_variables = std::make_unique<base::ScopedEnvironmentVariableOverride>( + "LANGUAGE", "ar"); + } +} + +void InitPixelTestFeatures( + const PixelTestParam& params, + base::test::ScopedFeatureList& feature_list, + std::vector<base::test::FeatureRef>& enabled_features, + std::vector<base::test::FeatureRef>& disabled_features) { + if (params.use_dark_theme) { + enabled_features.push_back(features::kWebUIDarkMode); + } +#if BUILDFLAG(ENABLE_DICE_SUPPORT) + if (params.use_fre_style) { + enabled_features.push_back(kForYouFre); + } +#endif + feature_list.InitWithFeatures(enabled_features, disabled_features); +}
diff --git a/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h b/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h new file mode 100644 index 0000000..ebe18c1 --- /dev/null +++ b/chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h
@@ -0,0 +1,57 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_VIEWS_PROFILES_PROFILES_PIXEL_TEST_UTILS_H_ +#define CHROME_BROWSER_UI_VIEWS_PROFILES_PROFILES_PIXEL_TEST_UTILS_H_ + +#include <memory> +#include <string> + +namespace base { +class CommandLine; +class ScopedEnvironmentVariableOverride; + +namespace test { +class FeatureRef; +class ScopedFeatureList; +} // namespace test +} // namespace base + +struct AccountInfo; +class Profile; + +// Parameters that are used for most of the pixel tests. These params +// will be used to create combinations with the test name as `test_suffix` and +// will be passed to the parametrised test as the second argument of +// `INSTANTIATE_TEST_SUITE_P`. +struct PixelTestParam { + std::string test_suffix = ""; + bool use_dark_theme = false; + bool use_right_to_left_language = false; + bool use_small_window = false; + bool use_fre_style = false; +}; + +// Used to create a dummy account and sign it it as a primary account. +AccountInfo SignInWithPrimaryAccount(Profile* profile, + bool is_managed_account = false); + +// Sets up the parameters that are passed to the command line. For example, +// to enable dark mode, we need to pass `kForceDarkMode` to the command line. +// This function should be called inside the `SetUpCommandLine` function. +void SetUpPixelTestCommandLine( + const PixelTestParam& params, + std::unique_ptr<base::ScopedEnvironmentVariableOverride>& env_variables, + base::CommandLine* command_line); + +// Enables and disables the features that we need for the test. This function +// will automatically add dark mode and the first run experience feature when +// used. +void InitPixelTestFeatures( + const PixelTestParam& params, + base::test::ScopedFeatureList& feature_list, + std::vector<base::test::FeatureRef>& enabled_features, + std::vector<base::test::FeatureRef>& disabled_features); + +#endif // CHROME_BROWSER_UI_VIEWS_PROFILES_PROFILES_PIXEL_TEST_UTILS_H_
diff --git a/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc b/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc index e1ff993d..36b56898 100644 --- a/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc +++ b/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc
@@ -6,24 +6,20 @@ #include "base/scoped_environment_variable_override.h" #include "base/strings/strcat.h" #include "base/test/scoped_feature_list.h" -#include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/signin/signin_features.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/test/test_browser_dialog.h" #include "chrome/browser/ui/test/test_browser_ui.h" #include "chrome/browser/ui/views/profiles/profile_management_step_controller.h" #include "chrome/browser/ui/views/profiles/profile_picker_view_test_utils.h" +#include "chrome/browser/ui/views/profiles/profiles_pixel_test_utils.h" #include "chrome/browser/ui/webui/signin/signin_url_utils.h" #include "chrome/browser/ui/webui/signin/sync_confirmation_ui.h" -#include "chrome/common/chrome_features.h" #include "chrome/common/webui_url_constants.h" #include "components/signin/public/base/signin_buildflags.h" #include "components/signin/public/base/signin_switches.h" -#include "components/signin/public/identity_manager/identity_test_utils.h" -#include "components/signin/public/identity_manager/primary_account_mutator.h" #include "content/public/test/browser_test.h" #include "content/public/test/test_navigation_observer.h" -#include "ui/base/ui_base_switches.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" #if !BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -37,12 +33,9 @@ // Tests for the chrome://sync-confirmation WebUI page. They live here and not // in the webui directory because they manipulate views. namespace { -struct TestParam { - std::string test_suffix = ""; - bool use_dark_theme = false; +struct SyncConfirmationTestParam { + PixelTestParam pixel_test_param; bool use_tangible_sync = false; - bool use_right_to_left_language = false; - bool use_small_window = false; bool use_managed_account = false; SyncConfirmationStyle sync_style = SyncConfirmationStyle::kWindow; }; @@ -50,61 +43,67 @@ // To be passed as 4th argument to `INSTANTIATE_TEST_SUITE_P()`, allows the test // to be named like `<TestClassName>.InvokeUi_default/<TestSuffix>` instead // of using the index of the param in `TestParam` as suffix. -std::string ParamToTestSuffix(const ::testing::TestParamInfo<TestParam>& info) { - return info.param.test_suffix; +std::string ParamToTestSuffix( + const ::testing::TestParamInfo<SyncConfirmationTestParam>& info) { + return info.param.pixel_test_param.test_suffix; } // Permutations of supported parameters. -const TestParam kWindowTestParams[] = { - {.test_suffix = "LegacySync"}, - {.test_suffix = "LegacySyncDarkTheme", .use_dark_theme = true}, - {.test_suffix = "LegacySyncRtl", .use_right_to_left_language = true}, - {.test_suffix = "LegacySyncSmallWindow", .use_small_window = true}, - {.test_suffix = "LegacySyncManagedAccount", .use_managed_account = true}, - {.test_suffix = "TangibleSync", .use_tangible_sync = true}, - {.test_suffix = "TangibleSyncDarkTheme", - .use_dark_theme = true, +const SyncConfirmationTestParam kWindowTestParams[] = { + {.pixel_test_param = {.test_suffix = "LegacySync"}}, + {.pixel_test_param = {.test_suffix = "LegacySyncDarkTheme", + .use_dark_theme = true}}, + {.pixel_test_param = {.test_suffix = "LegacySyncRtl", + .use_right_to_left_language = true}}, + {.pixel_test_param = {.test_suffix = "LegacySyncSmallWindow", + .use_small_window = true}}, + {.pixel_test_param = {.test_suffix = "LegacySyncManagedAccount"}, + .use_managed_account = true}, + {.pixel_test_param = {.test_suffix = "TangibleSync"}, .use_tangible_sync = true}, - {.test_suffix = "TangibleSyncRtl", - .use_tangible_sync = true, - .use_right_to_left_language = true}, - {.test_suffix = "TangibleSyncSmallWindow", - .use_tangible_sync = true, - .use_small_window = true}, - {.test_suffix = "TangibleSyncManagedAccount", + {.pixel_test_param = {.test_suffix = "TangibleSyncDarkTheme", + .use_dark_theme = true}, + .use_tangible_sync = true}, + {.pixel_test_param = {.test_suffix = "TangibleSyncRtl", + .use_right_to_left_language = true}, + .use_tangible_sync = true}, + {.pixel_test_param = {.test_suffix = "TangibleSyncSmallWindow", + .use_small_window = true}, + .use_tangible_sync = true}, + {.pixel_test_param = {.test_suffix = "TangibleSyncManagedAccount"}, .use_tangible_sync = true, .use_managed_account = true}, }; -const TestParam kDialogTestParams[] = { - {.test_suffix = "LegacySync", +const SyncConfirmationTestParam kDialogTestParams[] = { + {.pixel_test_param = {.test_suffix = "LegacySync"}, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "LegacySyncSigninInterceptStyle", + {.pixel_test_param = {.test_suffix = "LegacySyncSigninInterceptStyle"}, .sync_style = SyncConfirmationStyle::kSigninInterceptModal}, - {.test_suffix = "LegacySyncDarkTheme", - .use_dark_theme = true, + {.pixel_test_param = {.test_suffix = "LegacySyncDarkTheme", + .use_dark_theme = true}, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "LegacySyncRtl", - .use_right_to_left_language = true, + {.pixel_test_param = {.test_suffix = "LegacySyncRtl", + .use_right_to_left_language = true}, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "LegacySyncManagedAccount", + {.pixel_test_param = {.test_suffix = "LegacySyncManagedAccount"}, .use_managed_account = true, .sync_style = SyncConfirmationStyle::kSigninInterceptModal}, - {.test_suffix = "TangibleSync", + {.pixel_test_param = {.test_suffix = "TangibleSync"}, .use_tangible_sync = true, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "TangibleSyncSigninInterceptStyle", + {.pixel_test_param = {.test_suffix = "TangibleSyncSigninInterceptStyle"}, .use_tangible_sync = true, .sync_style = SyncConfirmationStyle::kSigninInterceptModal}, - {.test_suffix = "TangibleSyncDarkTheme", - .use_dark_theme = true, + {.pixel_test_param = {.test_suffix = "TangibleSyncDarkTheme", + .use_dark_theme = true}, .use_tangible_sync = true, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "TangibleSyncRtl", + {.pixel_test_param = {.test_suffix = "TangibleSyncRtl", + .use_right_to_left_language = true}, .use_tangible_sync = true, - .use_right_to_left_language = true, .sync_style = SyncConfirmationStyle::kDefaultModal}, - {.test_suffix = "TangibleSyncManagedAccount", + {.pixel_test_param = {.test_suffix = "TangibleSyncManagedAccount"}, .use_tangible_sync = true, .use_managed_account = true, .sync_style = SyncConfirmationStyle::kDefaultModal}, @@ -116,36 +115,6 @@ SyncConfirmationStyle::kWindow); } -AccountInfo FillAccountInfo(const CoreAccountInfo& core_info, - bool is_managed_account) { - AccountInfo account_info; - const char kHostedDomain[] = "example.com"; - - account_info.email = core_info.email; - account_info.gaia = core_info.gaia; - account_info.account_id = core_info.account_id; - account_info.is_under_advanced_protection = - core_info.is_under_advanced_protection; - account_info.full_name = "Test Full Name"; - account_info.given_name = "Joe"; - account_info.hosted_domain = - is_managed_account ? kHostedDomain : kNoHostedDomainFound; - account_info.locale = "en"; - account_info.picture_url = "https://example.com"; - return account_info; -} - -void SignInWithPrimaryAccount(Profile* profile, bool is_managed_account) { - DCHECK(profile); - - auto* identity_manager = IdentityManagerFactory::GetForProfile(profile); - auto core_account_info = signin::MakePrimaryAccountAvailable( - identity_manager, "joe.consumer@gmail.com", - signin::ConsentLevel::kSignin); - auto account_info = FillAccountInfo(core_account_info, is_managed_account); - signin::UpdateAccountInfoForAccount(identity_manager, account_info); -} - // Creates a step to represent the sync-confirmation. class SyncConfirmationStepControllerForTest : public ProfileManagementStepController { @@ -187,42 +156,24 @@ this}; }; -void InitFeatures(const TestParam& params, +void InitFeatures(const SyncConfirmationTestParam& params, base::test::ScopedFeatureList& feature_list) { std::vector<base::test::FeatureRef> enabled_features = {}; + std::vector<base::test::FeatureRef> disabled_features = {}; if (params.use_tangible_sync) { enabled_features.push_back(switches::kTangibleSync); } - if (params.use_dark_theme) { - enabled_features.push_back(features::kWebUIDarkMode); - } if (params.sync_style == SyncConfirmationStyle::kSigninInterceptModal) { enabled_features.push_back(kSyncPromoAfterSigninIntercept); } - feature_list.InitWithFeatures(enabled_features, {}); -} - -void SetUpCommandLine( - const TestParam& params, - std::unique_ptr<base::ScopedEnvironmentVariableOverride>& env_variables, - base::CommandLine* command_line) { - if (params.use_dark_theme) { - command_line->AppendSwitch(switches::kForceDarkMode); - } - if (params.use_right_to_left_language) { - command_line->AppendSwitchASCII(switches::kLang, "ar"); - - // On Linux & Lacros the command line switch has no effect, we need to use - // environment variables to change the language. - env_variables = std::make_unique<base::ScopedEnvironmentVariableOverride>( - "LANGUAGE", "ar"); - } + InitPixelTestFeatures(params.pixel_test_param, feature_list, enabled_features, + disabled_features); } } // namespace class SyncConfirmationUIWindowPixelTest : public UiBrowserTest, - public testing::WithParamInterface<TestParam> { + public testing::WithParamInterface<SyncConfirmationTestParam> { public: SyncConfirmationUIWindowPixelTest() { DCHECK(GetParam().sync_style == SyncConfirmationStyle::kWindow); @@ -230,7 +181,8 @@ } void SetUpCommandLine(base::CommandLine* command_line) override { - ::SetUpCommandLine(GetParam(), scoped_env_override_, command_line); + SetUpPixelTestCommandLine(GetParam().pixel_test_param, scoped_env_override_, + command_line); } void ShowUi(const std::string& name) override { @@ -250,7 +202,7 @@ new SyncConfirmationStepControllerForTest(host)); })); profile_picker_view_->ShowAndWait( - GetParam().use_small_window + GetParam().pixel_test_param.use_small_window ? absl::optional<gfx::Size>(gfx::Size(750, 590)) : absl::nullopt); } @@ -293,7 +245,7 @@ class SyncConfirmationUIDialogPixelTest : public DialogBrowserTest, - public testing::WithParamInterface<TestParam> { + public testing::WithParamInterface<SyncConfirmationTestParam> { public: SyncConfirmationUIDialogPixelTest() { DCHECK(GetParam().sync_style != SyncConfirmationStyle::kWindow); @@ -322,7 +274,8 @@ } void SetUpCommandLine(base::CommandLine* command_line) override { - ::SetUpCommandLine(GetParam(), scoped_env_override_, command_line); + SetUpPixelTestCommandLine(GetParam().pixel_test_param, scoped_env_override_, + command_line); } base::test::ScopedFeatureList scoped_feature_list_;
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom index 009f250c..63b6033 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom
@@ -29,6 +29,16 @@ kMoveConfirmationGoogleDrive, }; +// A local file task that is displayed in the `kFileHandlerDialog` which the +// user could select to open the files. The `position` is the tasks position +// in a vector with the other `DialogTask`s. +struct DialogTask { + int32 position; + string title; + string app_id; + string icon_url; +}; + // Contains the arguments used to set up the dialog. struct DialogArgs { // List of files that will be uploaded on dialog close if the user completes @@ -37,6 +47,10 @@ // Tells the dialog which sub-page/flow we want to show. DialogPage dialog_page; + + // The local file tasks the user can pick from to open the files. Displayed in + // the `kFileHandlerDialog` dialog. + array<DialogTask> tasks; }; // Lives in the browser process. A renderer uses this to create a page handler @@ -66,7 +80,11 @@ SignInToOneDrive() => (bool success); // Returns the user selected action and requests the dialog to be closed. - RespondAndClose(UserAction response); + RespondWithUserActionAndClose(UserAction response); + + // Returns the user selected local file task to launch and requests the + // dialog to be closed. + RespondWithLocalTaskAndClose(int32 task_position); // Set Office as the default file handler for office files and mark the // setup as complete so that it does not need to be started again.
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.cc index 8eb7c7d8..46f810c2 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.cc
@@ -8,8 +8,8 @@ #include "base/functional/callback.h" #include "base/json/json_writer.h" #include "base/logging.h" -#include "base/memory/ref_counted.h" #include "base/metrics/histogram_macros.h" +#include "base/strings/string_number_conversions.h" #include "chrome/browser/ash/file_manager/file_tasks.h" #include "chrome/browser/ash/file_manager/open_with_browser.h" #include "chrome/browser/ash/file_system_provider/mount_path_util.h" @@ -19,9 +19,16 @@ #include "chrome/browser/ui/webui/ash/cloud_upload/drive_upload_handler.h" #include "chrome/browser/ui/webui/ash/cloud_upload/one_drive_upload_handler.h" #include "chrome/common/webui_url_constants.h" +#include "extensions/browser/api/file_handlers/mime_util.h" +#include "extensions/browser/entry_info.h" #include "ui/gfx/geometry/size.h" namespace ash::cloud_upload { + +typedef base::OnceCallback<void( + const std::vector<extensions::EntryInfo>& entries)> + EntriesCallback; + namespace { using file_manager::file_tasks::kDriveTaskResultMetricName; @@ -132,11 +139,11 @@ } if (cloud_provider == CloudProvider::kGoogleDrive) { - CloudUploadDialog::Show(profile, file_urls, - mojom::DialogPage::kMoveConfirmationGoogleDrive); + CloudUploadDialog::SetUpAndShowDialog( + profile, file_urls, mojom::DialogPage::kMoveConfirmationGoogleDrive); } else if (cloud_provider == CloudProvider::kOneDrive) { - CloudUploadDialog::Show(profile, file_urls, - mojom::DialogPage::kMoveConfirmationOneDrive); + CloudUploadDialog::SetUpAndShowDialog( + profile, file_urls, mojom::DialogPage::kMoveConfirmationOneDrive); } } @@ -162,45 +169,133 @@ return true; } -void OnDialogComplete(Profile* profile, - const std::vector<storage::FileSystemURL>& file_urls, - const std::string& action) { - using file_manager::file_tasks::SetExcelFileHandler; - using file_manager::file_tasks::SetOfficeSetupComplete; - using file_manager::file_tasks::SetPowerPointFileHandler; - using file_manager::file_tasks::SetWordFileHandler; +bool HasWordFile(const std::vector<storage::FileSystemURL>& file_urls) { + constexpr const char* kWordExtensions[] = {".doc", ".docx"}; + for (auto& url : file_urls) { + for (const char* extension : kWordExtensions) { + if (url.path().MatchesExtension(extension)) { + return true; + } + } + } + return false; +} - if (action == kUserActionConfirmOrUploadToGoogleDrive) { - SetWordFileHandler(profile, - file_manager::file_tasks::kActionIdWebDriveOfficeWord); - SetExcelFileHandler(profile, - file_manager::file_tasks::kActionIdWebDriveOfficeExcel); - SetPowerPointFileHandler( +bool HasExcelFile(const std::vector<storage::FileSystemURL>& file_urls) { + constexpr const char* kExcelExtensions[] = {".xls", ".xlsx"}; + for (auto& url : file_urls) { + for (const char* extension : kExcelExtensions) { + if (url.path().MatchesExtension(extension)) { + return true; + } + } + } + return false; +} + +bool HasPowerPointFile(const std::vector<storage::FileSystemURL>& file_urls) { + constexpr const char* kPowerpointExtensions[] = {".ppt", ".pptx"}; + for (auto& url : file_urls) { + for (const char* extension : kPowerpointExtensions) { + if (url.path().MatchesExtension(extension)) { + return true; + } + } + } + return false; +} + +// Launch the local file task in `tasks` with the position specified by +// `string_task_position`. +void LaunchLocalFileTask( + Profile* profile, + const std::vector<storage::FileSystemURL>& file_urls, + const std::string& string_task_position, + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks) { + // Convert the `string_task_position` - the string of the task position in + // `tasks_` - to an int. Ensure that it is within the range of `tasks`. + int task_position; + if (!base::StringToInt(string_task_position, &task_position) || + task_position < 0 || static_cast<size_t>(task_position) >= tasks.size()) { + LOG(ERROR) << "Position for local file task is unexpectedly unable to be " + "retrieved. Retrieved position: " + << string_task_position + << " from user response: " << string_task_position; + return; + } + // Launch the task. + file_manager::file_tasks::TaskDescriptor& task = tasks[task_position]; + file_manager::file_tasks::ExecuteFileTask( + profile, task, file_urls, + base::BindOnce( + [](Profile* profile, + const std::vector<storage::FileSystemURL> file_urls, + file_manager::file_tasks::TaskDescriptor task, + extensions::api::file_manager_private::TaskResult result, + std::string error_message) { + if (!error_message.empty()) { + LOG(ERROR) << "Execution of local file task with app id " + << task.app_id + << " to open office files. Led to error message: " + << error_message << " and result: " << result; + } else { + if (HasWordFile(file_urls)) { + SetWordFileHandler(profile, task); + } + if (HasExcelFile(file_urls)) { + SetExcelFileHandler(profile, task); + } + if (HasPowerPointFile(file_urls)) { + SetPowerPointFileHandler(profile, task); + } + file_manager::file_tasks::SetOfficeSetupComplete(profile); + } + }, + profile, file_urls, task)); +} +} // namespace + +void OnDialogComplete( + Profile* profile, + const std::vector<storage::FileSystemURL>& file_urls, + const std::string& user_response, + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks) { + using file_manager::file_tasks::SetExcelFileHandlerToFilesSWA; + using file_manager::file_tasks::SetOfficeSetupComplete; + using file_manager::file_tasks::SetPowerPointFileHandlerToFilesSWA; + using file_manager::file_tasks::SetWordFileHandlerToFilesSWA; + + if (user_response == kUserActionConfirmOrUploadToGoogleDrive) { + SetWordFileHandlerToFilesSWA( + profile, file_manager::file_tasks::kActionIdWebDriveOfficeWord); + SetExcelFileHandlerToFilesSWA( + profile, file_manager::file_tasks::kActionIdWebDriveOfficeExcel); + SetPowerPointFileHandlerToFilesSWA( profile, file_manager::file_tasks::kActionIdWebDriveOfficePowerPoint); SetOfficeSetupComplete(profile); OpenOrMoveFiles(profile, file_urls, CloudProvider::kGoogleDrive); - } else if (action == kUserActionConfirmOrUploadToOneDrive) { + } else if (user_response == kUserActionConfirmOrUploadToOneDrive) { // Default handlers have already been set by this point for // Office/OneDrive. OpenOrMoveFiles(profile, file_urls, CloudProvider::kOneDrive); - } else if (action == kUserActionUploadToGoogleDrive) { + } else if (user_response == kUserActionUploadToGoogleDrive) { StartUpload(profile, file_urls, CloudProvider::kGoogleDrive); - } else if (action == kUserActionUploadToOneDrive) { + } else if (user_response == kUserActionUploadToOneDrive) { StartUpload(profile, file_urls, CloudProvider::kOneDrive); - } else if (action == kUserActionSetUpGoogleDrive) { - CloudUploadDialog::Show(profile, file_urls, - mojom::DialogPage::kGoogleDriveSetup); - } else if (action == kUserActionSetUpOneDrive) { - CloudUploadDialog::Show(profile, file_urls, - mojom::DialogPage::kOneDriveSetup); - } else if (action == kUserActionCancel) { + } else if (user_response == kUserActionSetUpGoogleDrive) { + CloudUploadDialog::SetUpAndShowDialog(profile, file_urls, + mojom::DialogPage::kGoogleDriveSetup); + } else if (user_response == kUserActionSetUpOneDrive) { + CloudUploadDialog::SetUpAndShowDialog(profile, file_urls, + mojom::DialogPage::kOneDriveSetup); + } else if (user_response == kUserActionCancel) { UMA_HISTOGRAM_ENUMERATION(kDriveTaskResultMetricName, OfficeTaskResult::CANCELLED); + } else { + LaunchLocalFileTask(profile, file_urls, user_response, std::move(tasks)); } } -} // namespace - bool OpenFilesWithCloudProvider( Profile* profile, const std::vector<storage::FileSystemURL>& file_urls, @@ -212,8 +307,8 @@ } // Run the setup flow if it's never been completed. if (!file_manager::file_tasks::OfficeSetupComplete(profile)) { - return CloudUploadDialog::Show(profile, file_urls, - mojom::DialogPage::kFileHandlerDialog); + return CloudUploadDialog::SetUpAndShowDialog( + profile, file_urls, mojom::DialogPage::kFileHandlerDialog); } OpenOrMoveFiles(profile, file_urls, cloud_provider); return true; @@ -236,8 +331,94 @@ } } +void GetEntriesFromFilePathsAndMimeTypes( + const std::vector<base::FilePath>& file_paths, + EntriesCallback entries_callback, + std::unique_ptr<std::vector<std::string>> mime_types) { + std::vector<extensions::EntryInfo> entries; + DCHECK_EQ(file_paths.size(), mime_types->size()); + for (size_t i = 0; i < file_paths.size(); ++i) { + entries.emplace_back(file_paths[i], (*mime_types)[i], false); + } + std::move(entries_callback).Run(entries); +} + +// Find the file tasks that can open the `file_urls` and pass them to the +// `find_all_types_of_tasks_callback`. +void FindTasksForDialog(Profile* profile, + const std::vector<storage::FileSystemURL>& file_urls, + file_manager::file_tasks::FindTasksCallback + find_all_types_of_tasks_callback) { + // Get the file info for finding the tasks. + std::vector<base::FilePath> local_paths; + std::vector<GURL> gurls; + for (const auto& file_url : file_urls) { + local_paths.push_back(file_url.path()); + gurls.push_back(file_url.ToGURL()); + } + + // Callback to find the tasks after the file entries have been collected. + EntriesCallback entries_callback = base::BindOnce( + [](Profile* profile, const std::vector<GURL>& gurls, + file_manager::file_tasks::FindTasksCallback + find_all_types_of_tasks_callback, + const std::vector<extensions::EntryInfo>& entries) { + // TODO(cassycc): Handle dlp_source_urls appropriately. + const std::vector<std::string> dlp_source_urls(entries.size(), ""); + FindAllTypesOfTasks(profile, entries, gurls, dlp_source_urls, + std::move(find_all_types_of_tasks_callback)); + }, + profile, gurls, std::move(find_all_types_of_tasks_callback)); + + // Get the mime types of the files and then pass them to the callback to + // get the entries. + extensions::app_file_handler_util::MimeTypeCollector* mime_collector = + new extensions::app_file_handler_util::MimeTypeCollector(profile); + mime_collector->CollectForLocalPaths( + local_paths, base::BindOnce(&GetEntriesFromFilePathsAndMimeTypes, + local_paths, std::move(entries_callback))); +} + // static -bool CloudUploadDialog::Show( +void CloudUploadDialog::ShowDialog( + mojom::DialogArgsPtr args, + const mojom::DialogPage dialog_page, + UploadRequestCallback upload_callback, + std::unique_ptr<file_manager::file_tasks::ResultingTasks> resulting_tasks) { + std::vector<file_manager::file_tasks::TaskDescriptor> tasks; + if (resulting_tasks) { + for (int i = 0; static_cast<size_t>(i) < resulting_tasks->tasks.size(); + i++) { + auto task = resulting_tasks->tasks[i]; + // Ignore Google Docs and MS Office tasks as they are already + // set up to show in the dialog. And ignore QuickOffice. + if (IsWebDriveOfficeTask(task.task_descriptor) || + file_manager::file_tasks::IsOpenInOfficeTask(task.task_descriptor) || + extension_misc::IsQuickOfficeExtension(task.task_descriptor.app_id)) { + continue; + } + mojom::DialogTaskPtr dialog_task = mojom::DialogTask::New(); + // The (unique and positive) `position` of the task in the `tasks` vector. + // If the user responds with the `position`, the task will be launched via + // `LaunchLocalFileTask()`. + dialog_task->position = i; + dialog_task->title = task.task_title; + dialog_task->icon_url = task.icon_url.spec(); + dialog_task->app_id = task.task_descriptor.app_id; + + args->tasks.push_back(std::move(dialog_task)); + tasks.push_back(std::move(task.task_descriptor)); + } + } + CloudUploadDialog* dialog = + new CloudUploadDialog(std::move(args), std::move(upload_callback), + dialog_page, std::move(tasks)); + + dialog->ShowSystemDialog(); +} + +// static +bool CloudUploadDialog::SetUpAndShowDialog( Profile* profile, const std::vector<storage::FileSystemURL>& file_urls, const mojom::DialogPage dialog_page) { @@ -254,14 +435,27 @@ } args->dialog_page = dialog_page; - // The pointer is managed by an instance of `views::WebDialogView` and removed - // in `SystemWebDialogDelegate::OnDialogClosed`. - UploadRequestCallback uploadCallback = + // The pointer is managed by an instance of `views::WebDialogView` and + // removed in `SystemWebDialogDelegate::OnDialogClosed`. + UploadRequestCallback upload_callback = base::BindOnce(&OnDialogComplete, profile, file_urls); - CloudUploadDialog* dialog = new CloudUploadDialog( - std::move(args), std::move(uploadCallback), dialog_page); - dialog->ShowSystemDialog(); + // Display local file handlers (tasks) only for the file handler dialog. + if (dialog_page == mojom::DialogPage::kFileHandlerDialog) { + // Callback to show the dialog after the tasks have been found. + file_manager::file_tasks::FindTasksCallback + find_all_types_of_tasks_callback = + base::BindOnce(&ShowDialog, std::move(args), dialog_page, + std::move(upload_callback)); + // Find the file tasks that can open the `file_urls` and then run + // `ShowDialog`. + FindTasksForDialog(profile, file_urls, + std::move(find_all_types_of_tasks_callback)); + + } else { + ShowDialog(std::move(args), dialog_page, std::move(upload_callback), + nullptr); + } return true; } @@ -274,23 +468,28 @@ void CloudUploadDialog::OnDialogClosed(const std::string& json_retval) { UploadRequestCallback callback = std::move(callback_); - // Deletes this, so we store the callback first. + std::vector<file_manager::file_tasks::TaskDescriptor> tasks = + std::move(tasks_); + // Deletes this, so we store the `callback` and `tasks` first. SystemWebDialogDelegate::OnDialogClosed(json_retval); - // The callback can create a new dialog. It must be called last because we can - // only have one of these dialogs at a time. + // The callback can create a new dialog. It must be called last because we + // can only have one of these dialogs at a time. if (callback) { - std::move(callback).Run(json_retval); + std::move(callback).Run(json_retval, std::move(tasks)); } } -CloudUploadDialog::CloudUploadDialog(mojom::DialogArgsPtr args, - UploadRequestCallback callback, - const mojom::DialogPage dialog_page) +CloudUploadDialog::CloudUploadDialog( + mojom::DialogArgsPtr args, + UploadRequestCallback callback, + const mojom::DialogPage dialog_page, + std::vector<file_manager::file_tasks::TaskDescriptor> tasks) : SystemWebDialogDelegate(GURL(chrome::kChromeUICloudUploadURL), std::u16string() /* title */), dialog_args_(std::move(args)), callback_(std::move(callback)), - dialog_page_(dialog_page) {} + dialog_page_(dialog_page), + tasks_(std::move(tasks)) {} CloudUploadDialog::~CloudUploadDialog() = default; @@ -320,6 +519,7 @@ void CloudUploadDialog::GetDialogSize(gfx::Size* size) const { switch (dialog_page_) { + // TODO(cassycc): resize dialog based on number of local file tasks. case mojom::DialogPage::kFileHandlerDialog: { size->set_width(kDialogWidthForFileHandlerDialog); size->set_height(kDialogHeightForFileHandlerDialog);
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h index 6f4ca68..0c96e01 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h
@@ -7,6 +7,7 @@ #include <vector> +#include "chrome/browser/ash/file_manager/file_tasks.h" #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom.h" #include "chrome/browser/ui/webui/ash/system_web_dialog_delegate.h" #include "storage/browser/file_system/file_system_url.h" @@ -33,9 +34,17 @@ kOneDrive, }; -// Opens the `file_urls` from the `cloud_provider`. Runs setup for for Office -// files if it has not been run before. Uploads the files to the cloud if -// needed. +// Receive user's dialog response and acts accordingly. The `user_response` is +// either an ash::cloud_upload::mojom::UserAction or the id (position) of the +// task in `tasks` to launch. +void OnDialogComplete( + Profile* profile, + const std::vector<storage::FileSystemURL>& file_urls, + const std::string& user_response, + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks); + +// Opens the `file_urls` from the `cloud_provider`. Runs setup for Office files +// if it has not been run before. Uploads the files to the cloud if needed. bool OpenFilesWithCloudProvider( Profile* profile, const std::vector<storage::FileSystemURL>& file_urls, @@ -50,25 +59,43 @@ // Defines the web dialog used to help users upload Office files to the cloud. class CloudUploadDialog : public SystemWebDialogDelegate { public: - using UploadRequestCallback = - base::OnceCallback<void(const std::string& action)>; + using UploadRequestCallback = base::OnceCallback<void( + const std::string& user_response, + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks)>; CloudUploadDialog(const CloudUploadDialog&) = delete; CloudUploadDialog& operator=(const CloudUploadDialog&) = delete; - // Creates and shows a new dialog for the cloud upload workflow. Returns true - // if a new dialog has been effectively created. - static bool Show(Profile* profile, - const std::vector<storage::FileSystemURL>& file_urls, - const mojom::DialogPage dialog_page); + // Creates and shows a new dialog for the cloud upload workflow. If there are + // local file tasks from `resulting_tasks`, include them in the dialog + // arguments. These tasks are can be selected by the user to open the files + // instead of using a cloud provider. + static void ShowDialog( + mojom::DialogArgsPtr args, + const mojom::DialogPage dialog_page, + UploadRequestCallback uploadCallback, + std::unique_ptr<::file_manager::file_tasks::ResultingTasks> + resulting_tasks); + + // Creates and shows a new dialog for the cloud upload workflow by processing + // the dialog arguments and passing them to `ShowDialog()`. If the + // `dialog_page` is kFileHandlerDialog, also find the local file tasks + // and pass them to `ShowDialog()`. Returns true if a new dialog has been + // effectively created. + static bool SetUpAndShowDialog( + Profile* profile, + const std::vector<storage::FileSystemURL>& file_urls, + const mojom::DialogPage dialog_page); void OnDialogShown(content::WebUI* webui) override; void OnDialogClosed(const std::string& json_retval) override; protected: - CloudUploadDialog(mojom::DialogArgsPtr args, - UploadRequestCallback callback, - const mojom::DialogPage dialog_page); + CloudUploadDialog( + mojom::DialogArgsPtr args, + UploadRequestCallback callback, + const mojom::DialogPage dialog_page, + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks); ~CloudUploadDialog() override; bool ShouldCloseDialogOnEscape() const override; bool ShouldShowCloseButton() const override; @@ -78,6 +105,7 @@ mojom::DialogArgsPtr dialog_args_; UploadRequestCallback callback_; mojom::DialogPage dialog_page_; + std::vector<::file_manager::file_tasks::TaskDescriptor> tasks_; }; } // namespace ash::cloud_upload
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc new file mode 100644 index 0000000..18eb294 --- /dev/null +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc
@@ -0,0 +1,349 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <unistd.h> +#include <algorithm> +#include <string> + +#include "ash/constants/ash_features.h" +#include "base/json/json_parser.h" +#include "base/json/json_reader.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/stringprintf.h" +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/ash/file_manager/file_manager_test_util.h" +#include "chrome/browser/ash/file_manager/file_tasks.h" +#include "chrome/browser/ash/file_manager/fileapi_util.h" +#include "chrome/browser/ash/file_manager/path_util.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h" +#include "chrome/browser/web_applications/test/web_app_install_test_utils.h" +#include "chrome/browser/web_applications/web_app_install_info.h" +#include "chrome/browser/web_applications/web_app_provider.h" +#include "chrome/browser/web_applications/web_app_sync_bridge.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "content/public/browser/web_contents.h" +#include "content/public/browser/web_ui.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" +#include "content/public/test/test_navigation_observer.h" +#include "extensions/common/constants.h" + +namespace ash::cloud_upload { + +namespace { + +// Create `n` fake web apps that open any files with the `file_extensions` and +// matching `mime_types`. The apps can be identified by a unique `app_id` +// and launched by file_manager::file_tasks::ExecuteFileTask() which can be +// observed by the unique `url`. Store the info of the created tasks in `urls` +// and `tasks`. +void CreateFakeWebApps( + Profile* profile, + std::vector<std::string>* urls, + std::vector<file_manager::file_tasks::TaskDescriptor>* tasks, + const std::vector<std::string>& file_extensions, + const std::vector<std::string>& mime_types, + int n) { + ASSERT_EQ(file_extensions.size(), mime_types.size()); + for (int i = 0; i < n; ++i) { + std::string start_url = + "https://www.example" + base::NumberToString(i) + ".com"; + auto web_app_info = std::make_unique<WebAppInstallInfo>(); + web_app_info->start_url = GURL(start_url); + web_app_info->scope = GURL(start_url); + apps::FileHandler handler; + std::string url = start_url + "/handle_file"; + handler.action = GURL(url); + handler.display_name = u"activity name"; + for (size_t j = 0; j < file_extensions.size(); j++) { + apps::FileHandler::AcceptEntry accept_entry; + accept_entry.file_extensions.insert(file_extensions[j]); + accept_entry.mime_type = mime_types[j]; + handler.accept.push_back(accept_entry); + } + web_app_info->file_handlers.push_back(std::move(handler)); + + // Install a PWA in ash. + std::string app_id = + web_app::test::InstallWebApp(profile, std::move(web_app_info)); + // Skip past the permission dialog. + web_app::WebAppProvider::GetForTest(profile) + ->sync_bridge_unsafe() + .SetAppFileHandlerApprovalState(app_id, + web_app::ApiApprovalState::kAllowed); + + file_manager::file_tasks::TaskDescriptor task_descriptor( + app_id, file_manager::file_tasks::TaskType::TASK_TYPE_WEB_APP, url); + + urls->push_back(url); + tasks->push_back(task_descriptor); + } +} + +// Returns the position of `elt` in `list`. If `list` does not contain `elt`, +// return -1. +int PositionInList(base::Value::List& list, const std::string& elt) { + for (size_t i = 0; i < list.size(); i++) { + if (elt == list[i]) { + return i; + } + } + return -1; +} + +} // namespace + +// Tests the `kFileHandlerDialog` dialog page of the `CloudUploadDialog`. +// Ensures that fake local file tasks are all found and passed to the JS side of +// the dialog - the `FileHandlerPageElement`. Ensures that a local file task +// selected on the JS side gets executed. +class CloudUploadDialogBrowserTest : public InProcessBrowserTest { + public: + CloudUploadDialogBrowserTest() { + feature_list_.InitAndEnableFeature(features::kUploadOfficeToCloud); + } + + CloudUploadDialogBrowserTest(const CloudUploadDialogBrowserTest&) = delete; + CloudUploadDialogBrowserTest& operator=(const CloudUploadDialogBrowserTest&) = + delete; + + Profile* profile() { return browser()->profile(); } + + // Create a test office file for each file extension and store in `files_` and + // create `n` fake web apps for all office file types. + void SetUpTasksAndFiles(const std::vector<std::string>& file_extensions, + int n) { + // Create `n` fake web apps for office files with the Doc extension and + // store the created `urls_` and `tasks_`. + CreateFakeWebApps( + profile(), &urls_, &tasks_, + {doc_file_extension_, ppt_file_extension_, xls_file_extension_}, + {doc_mime_type_, ppt_mime_type_, xls_mime_type_}, n); + + for (const auto& file_extension : file_extensions) { + base::FilePath file = + file_manager::util::GetMyFilesFolderForProfile(profile()).AppendASCII( + "foo" + file_extension); + GURL url; + CHECK(file_manager::util::ConvertAbsoluteFilePathToFileSystemUrl( + profile(), file, file_manager::util::GetFileManagerURL(), &url)); + files_.push_back(storage::FileSystemURL::CreateForTest(url)); + } + } + + // Fill in the placeholder from `script_with_placeholder` with the JS command + // to retrieve the `FileHandlerPageElement`. Return this script wrapped with + // the send command. + std::string ScriptJS(const char script_with_placeholder[]) { + const char send_command[] = "domAutomationController.send(%s)"; + const char dialog[] = + "document.querySelectorAll('file-handler-" + "page')[0]"; + std::string script = base::StringPrintf(script_with_placeholder, dialog); + return base::StringPrintf(send_command, script.c_str()); + } + + protected: + // The mime type and file_extension must be matching for + // `CreateFakeWebApps()`. + std::string doc_file_extension_ = ".doc"; + std::string doc_mime_type_ = "application/msword"; + std::string ppt_file_extension_ = ".ppt"; + std::string ppt_mime_type_ = "application/vnd.ms-powerpoint"; + std::string xls_file_extension_ = ".xls"; + std::string xls_mime_type_ = "application/vnd.ms-excel"; + std::vector<std::string> urls_; + std::vector<file_manager::file_tasks::TaskDescriptor> tasks_; + std::vector<storage::FileSystemURL> files_; + + private: + base::test::ScopedFeatureList feature_list_; +}; + +// Test which launches a `CloudUploadDialog` which in turn creates a +// `FileHandlerPageElement`. Tests that the `FileHandlerPageElement` observes +// all of the fake file tasks and that a file task can be launched by clicking +// on its button before clicking the open button. +IN_PROC_BROWSER_TEST_F(CloudUploadDialogBrowserTest, OpenFileTaskFromDialog) { + // Create fake doc and ppt files and 3 fake local file tasks that support all + // office file types. + SetUpTasksAndFiles({doc_file_extension_, ppt_file_extension_}, 3); + + // Install QuickOffice. + file_manager::test::AddDefaultComponentExtensionsOnMainThread(profile()); + + // Watch for File Handler dialog URL chrome://cloud-upload. + content::TestNavigationObserver navigation_observer_dialog( + (GURL(chrome::kChromeUICloudUploadURL))); + navigation_observer_dialog.StartWatchingNewWebContents(); + + // Check that the Setup flow has never run and so the File + // Handler dialog will be launched when OpenFilesWithCloudProvider() is + // called. + ASSERT_FALSE(file_manager::file_tasks::OfficeSetupComplete(profile())); + + // Launch File Handler dialog. + ASSERT_TRUE(OpenFilesWithCloudProvider(profile(), files_, + CloudProvider::kGoogleDrive)); + + // Wait for File Handler dialog to open at chrome://cloud-upload. + navigation_observer_dialog.Wait(); + ASSERT_TRUE(navigation_observer_dialog.last_navigation_succeeded()); + + // Get the web contents of the dialog to be able to query + // `FileHandlerPageElement`. + ash::SystemWebDialogDelegate* dialog = + ash::SystemWebDialogDelegate::FindInstance( + chrome::kChromeUICloudUploadURL); + ASSERT_TRUE(dialog); + content::WebUI* webui = dialog->GetWebUIForTest(); + ASSERT_TRUE(webui); + content::WebContents* web_contents = webui->GetWebContents(); + ASSERT_TRUE(web_contents); + + // Get the `tasks` member from the `FileHandlerPageElement` which are all of + // the observed local file tasks. + bool dialog_init_complete = false; + base::internal::JSONParser parser(base::JSON_PARSE_RFC); + absl::optional<base::Value> value; + std::string result; + while (!dialog_init_complete) { + // It is possible that the `FileHandlerPageElement` element still hasn't + // been initiated yet. It is completed when the `tasks` member is non-empty. + if (!content::ExecuteScriptAndExtractString( + web_contents, + ScriptJS("JSON.stringify(%s.tasks.map(task => task.appId))"), + &result)) { + continue; + } + value = parser.Parse(result); + ASSERT_TRUE(value->is_list()); + dialog_init_complete = !(value->GetList().empty()); + } + + base::Value::List& observed_app_ids = value->GetList(); +// Check QuickOffice was not observed by the dialog. +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) + ASSERT_TRUE(file_manager::file_tasks::IsExtensionInstalled( + profile(), extension_misc::kQuickOfficeComponentExtensionId)); + ASSERT_LT(PositionInList(observed_app_ids, + extension_misc::kQuickOfficeComponentExtensionId), + 0); +#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + + // Position (in the `tasks_` and `urls_` vector) of the selected file + // task to be opened. Use this to find the `selected_task_position` and to + // watch for the appropriate url in `urls_` to open. + size_t selected_task = 1; + // Position of the selected task in dialog's tasks array - this is not + // necessarily the same as the `tasks_` vector. Its position is its id + // so use this to click the task's button. + size_t selected_task_position; + + // Check that each local file task was observed in the dialog. + for (size_t i = 0; i < tasks_.size(); i++) { + int position = PositionInList(observed_app_ids, tasks_[i].app_id); + ASSERT_GE(position, 0); + // Record the `selected_task_position`. + if (i == selected_task) { + selected_task_position = position; + } + } + + // Watch for the selected task to open. + content::TestNavigationObserver navigation_observer_task( + (GURL(urls_[selected_task]))); + navigation_observer_task.StartWatchingNewWebContents(); + + // Check that there is not a default task for doc files. + file_manager::file_tasks::TaskDescriptor default_task; + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), doc_mime_type_, doc_file_extension_, + &default_task)); + + // Check that there is not a default task for ppt files. + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), ppt_mime_type_, ppt_file_extension_, + &default_task)); + + // Click the selected task. + std::string rename_task_id = + "%s.$('#id" + base::NumberToString(selected_task_position) + "').click()"; + EXPECT_TRUE(content::ExecJs(web_contents, ScriptJS(rename_task_id.c_str()))); + + // Click the open button. + EXPECT_TRUE(content::ExecJs(web_contents, + ScriptJS("%s.$('.action-button').click()"))); + + // Wait for selected task to open. + navigation_observer_task.Wait(); + + // Check that the Setup flow has been marked complete. + ASSERT_TRUE(file_manager::file_tasks::OfficeSetupComplete(profile())); + + // Check that the selected task has been made the default for doc files. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), doc_mime_type_, doc_file_extension_, + &default_task)); + ASSERT_EQ(tasks_[selected_task], default_task); + + // Check that the selected task has been made the default for ppt files. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), ppt_mime_type_, ppt_file_extension_, + &default_task)); + ASSERT_EQ(tasks_[selected_task], default_task); + + // Check that the selected task has not been made the default for xls files + // because there was not an xls file selected by the user, even though the + // task supports xls files. + ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), xls_mime_type_, xls_file_extension_, + &default_task)); +} + +// Tests that OnDialogComplete() opens the specified fake file task. +IN_PROC_BROWSER_TEST_F(CloudUploadDialogBrowserTest, + OnDialogCompleteOpensFileTasks) { + file_manager::file_tasks::TaskDescriptor default_task; + int num_tasks = 3; + SetUpTasksAndFiles({xls_file_extension_}, num_tasks); + + for (int selected_task = 0; selected_task < num_tasks; selected_task++) { + std::string user_response = base::NumberToString(selected_task); + // Watch for the selected task to open. + content::TestNavigationObserver navigation_observer_task( + (GURL(urls_[selected_task]))); + navigation_observer_task.StartWatchingNewWebContents(); + + std::vector<file_manager::file_tasks::TaskDescriptor> tasks = tasks_; + + // Simulate user selecting this task. + OnDialogComplete(profile(), files_, user_response, std::move(tasks)); + + // Wait for the selected task to open. + navigation_observer_task.Wait(); + + // Check that the selected task has been made the default. + ASSERT_TRUE(file_manager::file_tasks::GetDefaultTaskFromPrefs( + *profile()->GetPrefs(), xls_mime_type_, xls_file_extension_, + &default_task)); + ASSERT_EQ(tasks_[selected_task], default_task); + } +} + +// Tests that OnDialogComplete() doesn't crash when the specified selected task +// doesn't exist. +IN_PROC_BROWSER_TEST_F(CloudUploadDialogBrowserTest, OnDialogCompleteNoCrash) { + int num_tasks = 3; + SetUpTasksAndFiles({ppt_file_extension_}, num_tasks); + + int out_of_range_task = 3; + std::string user_response = base::NumberToString(out_of_range_task); + + // Simulate user selecting a nonexistent selected task. + OnDialogComplete(profile(), files_, user_response, std::move(tasks_)); +} +} // namespace ash::cloud_upload
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc index 2a0027c..ef5472f 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc
@@ -33,12 +33,14 @@ Profile* profile, mojom::DialogArgsPtr args, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler, - RespondAndCloseCallback callback) + RespondWithUserActionAndCloseCallback user_action_callback, + RespondWithLocalTaskAndCloseCallback local_task_callback) : profile_{profile}, web_ui_{web_ui}, dialog_args_{std::move(args)}, receiver_{this, std::move(pending_page_handler)}, - callback_{std::move(callback)} {} + user_action_callback_{std::move(user_action_callback)}, + local_task_callback_{std::move(local_task_callback)} {} CloudUploadPageHandler::~CloudUploadPageHandler() = default; @@ -125,20 +127,28 @@ weak_ptr_factory_.GetWeakPtr(), std::move(callback))); } -void CloudUploadPageHandler::RespondAndClose(mojom::UserAction action) { - if (callback_) { - std::move(callback_).Run(action); +void CloudUploadPageHandler::RespondWithUserActionAndClose( + mojom::UserAction action) { + if (user_action_callback_) { + std::move(user_action_callback_).Run(action); + } +} + +void CloudUploadPageHandler::RespondWithLocalTaskAndClose(int task_position) { + if (local_task_callback_) { + std::move(local_task_callback_).Run(task_position); } } void CloudUploadPageHandler::SetOfficeAsDefaultHandler() { using file_manager::file_tasks::kActionIdOpenInOffice; - file_manager::file_tasks::SetWordFileHandler(profile_, kActionIdOpenInOffice); - file_manager::file_tasks::SetExcelFileHandler(profile_, - kActionIdOpenInOffice); - file_manager::file_tasks::SetPowerPointFileHandler(profile_, - kActionIdOpenInOffice); + file_manager::file_tasks::SetWordFileHandlerToFilesSWA(profile_, + kActionIdOpenInOffice); + file_manager::file_tasks::SetExcelFileHandlerToFilesSWA( + profile_, kActionIdOpenInOffice); + file_manager::file_tasks::SetPowerPointFileHandlerToFilesSWA( + profile_, kActionIdOpenInOffice); file_manager::file_tasks::SetOfficeSetupComplete(profile_); }
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h index 9e51071..50f3b476 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h
@@ -27,14 +27,17 @@ // the browser process exposing various methods for the JS to invoke. class CloudUploadPageHandler : public mojom::PageHandler { public: - using RespondAndCloseCallback = + using RespondWithUserActionAndCloseCallback = base::OnceCallback<void(mojom::UserAction action)>; + using RespondWithLocalTaskAndCloseCallback = + base::OnceCallback<void(int task_position)>; CloudUploadPageHandler( content::WebUI* web_ui, Profile* profile, mojom::DialogArgsPtr args, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler, - RespondAndCloseCallback callback); + RespondWithUserActionAndCloseCallback user_action_callback, + RespondWithLocalTaskAndCloseCallback local_task_callback); CloudUploadPageHandler(const CloudUploadPageHandler&) = delete; CloudUploadPageHandler& operator=(const CloudUploadPageHandler&) = delete; @@ -52,7 +55,8 @@ void InstallOfficeWebApp(InstallOfficeWebAppCallback callback) override; void IsODFSMounted(IsODFSMountedCallback callback) override; void SignInToOneDrive(SignInToOneDriveCallback callback) override; - void RespondAndClose(mojom::UserAction action) override; + void RespondWithUserActionAndClose(mojom::UserAction action) override; + void RespondWithLocalTaskAndClose(int task_position) override; void SetOfficeAsDefaultHandler() override; void SetAlwaysMoveOfficeFiles(bool always_move) override; @@ -62,7 +66,8 @@ mojom::DialogArgsPtr dialog_args_; mojo::Receiver<PageHandler> receiver_; - RespondAndCloseCallback callback_; + RespondWithUserActionAndCloseCallback user_action_callback_; + RespondWithLocalTaskAndCloseCallback local_task_callback_; base::WeakPtrFactory<CloudUploadPageHandler> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc index 6433ad4..d448b9e 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc
@@ -6,6 +6,7 @@ #include "ash/constants/ash_features.h" #include "base/logging.h" +#include "base/strings/string_number_conversions.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog.h" #include "chrome/browser/ui/webui/webui_util.h" @@ -58,11 +59,14 @@ web_ui(), Profile::FromWebUI(web_ui()), std::move(dialog_args_), std::move(receiver), // base::Unretained() because |page_handler_| will not out-live |this|. - base::BindOnce(&CloudUploadUI::RespondAndCloseDialog, + base::BindOnce(&CloudUploadUI::RespondWithUserActionAndCloseDialog, + base::Unretained(this)), + base::BindOnce(&CloudUploadUI::RespondWithLocalTaskAndCloseDialog, base::Unretained(this))); } -void CloudUploadUI::RespondAndCloseDialog(mojom::UserAction action) { +void CloudUploadUI::RespondWithUserActionAndCloseDialog( + mojom::UserAction action) { base::Value::List args; switch (action) { case mojom::UserAction::kCancel: @@ -90,6 +94,12 @@ ui::MojoWebDialogUI::CloseDialog(args); } +void CloudUploadUI::RespondWithLocalTaskAndCloseDialog(int task_position) { + base::Value::List args; + args.Append(base::NumberToString(task_position)); + ui::MojoWebDialogUI::CloseDialog(args); +} + WEB_UI_CONTROLLER_TYPE_IMPL(CloudUploadUI) } // namespace ash::cloud_upload
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.h b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.h index dda6ada..0d82008 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.h +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.h
@@ -49,7 +49,8 @@ mojo::PendingReceiver<mojom::PageHandler> pending_page_handler) override; private: - void RespondAndCloseDialog(mojom::UserAction action); + void RespondWithUserActionAndCloseDialog(mojom::UserAction action); + void RespondWithLocalTaskAndCloseDialog(int task_position); mojom::DialogArgsPtr dialog_args_; std::unique_ptr<CloudUploadPageHandler> page_handler_;
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc index 94e4acf..d4e316c 100644 --- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc +++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
@@ -87,6 +87,8 @@ {"noticeOpenSettingsButton", IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON}, + {"adPrivacyPageTitle", IDS_SETTINGS_AD_PRIVACY_PAGE_TITLE}, + // Strings for the consent step of the combined dialog (kM1Consent). {"m1ConsentTitle", IDS_PRIVACY_SANDBOX_M1_CONSENT_TITLE}, {"m1ConsentDescription1", IDS_PRIVACY_SANDBOX_M1_CONSENT_DESCRIPTION_1}, @@ -106,8 +108,6 @@ IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_BULLET_3}, {"m1ConsentLearnMoreLink", IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_LINK}, - {"m1ConsentBannerImageA11yDescription", - IDS_PRIVACY_SANDBOX_M1_CONSENT_BANNER_IMAGE_A11Y_DESCRIPTION}, // Strings for the notice step of the combined dialog (kM1NoticeEEA). {"m1NoticeEeaTitle", IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_TITLE}, @@ -168,8 +168,6 @@ IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_4}, {"m1NoticeRowLearnMoreDescription5", IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_5}, - {"m1NoticeRowBannerImageA11yDescription", - IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_BANNER_IMAGE_A11Y_DESCRIPTION}, // Shared for all dialogs. {"m1DialogMoreButton", IDS_PRIVACY_SANDBOX_M1_DIALOG_MORE_BUTTON}};
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index 91cd061e..db0befaf 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -320,14 +320,6 @@ std::u16string browser_version = VersionUI::GetAnnotatedVersionStringForUi(); -#if BUILDFLAG(IS_CHROMEOS_LACROS) - // Lacros is in development so we don't worry about l10n for now. This message - // will not be shown for the full release. - browser_version += u". "; - browser_version += - l10n_util::GetStringUTF16(IDS_EXPERIMENTAL_LACROS_WARNING_MESSAGE); -#endif - html_source->AddString("aboutBrowserVersion", browser_version); html_source->AddString( "aboutProductCopyright", @@ -2026,6 +2018,8 @@ IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION}, {"topicsPageCurrentTopicsDescriptionLearnMoreLink", IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_LEARN_MORE_LINK}, + {"topicsPageCurrentTopicsRegionA11yDescription", + IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_REGION_A11Y_DESCRIPTION}, {"topicsPageLearnMoreHeading", IDS_SETTINGS_TOPICS_PAGE_LEARN_MORE_HEADING}, {"topicsPageLearnMoreBullet1", @@ -2047,6 +2041,8 @@ IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION}, {"topicsPageBlockedTopicsDescriptionEmpty", IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION_EMPTY}, + {"topicsPageBlockedTopicsRegionA11yDescription", + IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_REGION_A11Y_DESCRIPTION}, {"topicsPageAllowTopic", IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC}, {"topicsPageAllowTopicA11yLabel", IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL}, @@ -2065,6 +2061,8 @@ IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_DISABLED}, {"fledgePageCurrentSitesDescriptionEmpty", IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY}, + {"fledgePageCurrentSitesRegionA11yDescription", + IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION}, {"fledgePageSeeAllSitesLabel", IDS_SETTINGS_FLEDGE_PAGE_SEE_ALL_SITES_LABEL}, {"fledgePageBlockSite", IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE}, @@ -2076,6 +2074,8 @@ IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION}, {"fledgePageBlockedSitesDescriptionEmpty", IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION_EMPTY}, + {"fledgePageBlockedSitesRegionA11yDescription", + IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_REGION_A11Y_DESCRIPTION}, {"fledgePageAllowSite", IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE}, {"fledgePageAllowSiteA11yLabel", IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL},
diff --git a/chrome/browser/web_applications/commands/install_from_manifest_command.cc b/chrome/browser/web_applications/commands/install_from_manifest_command.cc index 22782bef5..47c3e34 100644 --- a/chrome/browser/web_applications/commands/install_from_manifest_command.cc +++ b/chrome/browser/web_applications/commands/install_from_manifest_command.cc
@@ -35,6 +35,7 @@ GURL document_url, GURL manifest_url, std::string manifest_contents, + AppId expected_id, OnceInstallCallback callback) : WebAppCommandTemplate<SharedWebContentsLock>( "InstallFromManifestCommand"), @@ -42,6 +43,7 @@ document_url_(std::move(document_url)), manifest_url_(std::move(manifest_url)), manifest_contents_(std::move(manifest_contents)), + expected_id_(std::move(expected_id)), install_callback_(std::move(callback)), web_contents_lock_description_( std::make_unique<SharedWebContentsLockDescription>()) {} @@ -122,6 +124,12 @@ AppId app_id = GenerateAppId(web_app_info_->manifest_id, web_app_info_->start_url); + if (app_id != expected_id_) { + Abort(CommandResult::kFailure, + webapps::InstallResultCode::kExpectedAppIdCheckFailed); + return; + } + app_lock_description_ = command_manager()->lock_manager().UpgradeAndAcquireLock( std::move(web_contents_lock_), {app_id},
diff --git a/chrome/browser/web_applications/commands/install_from_manifest_command.h b/chrome/browser/web_applications/commands/install_from_manifest_command.h index 0bd4b5fa..e4c60efaf 100644 --- a/chrome/browser/web_applications/commands/install_from_manifest_command.h +++ b/chrome/browser/web_applications/commands/install_from_manifest_command.h
@@ -47,11 +47,14 @@ // `manifest_url`: URL that the manifest content was retrieved from. Used for // manifest parsing. // `manifest_contents`: JSON string of a web app manifest to install. + // `expected_id`: Expected hashed App ID for the installed app. If the ID does + // not match, installation will abort with an error. // `callback`: Called when installation completes. InstallFromManifestCommand(webapps::WebappInstallSource install_source, GURL document_url, GURL manifest_url, std::string manifest_contents, + AppId expected_id, OnceInstallCallback callback); ~InstallFromManifestCommand() override; @@ -77,6 +80,7 @@ GURL document_url_; GURL manifest_url_; std::string manifest_contents_; + AppId expected_id_; OnceInstallCallback install_callback_; // SharedWebContentsLock is held while parsing the manifest.
diff --git a/chrome/browser/web_applications/commands/install_from_manifest_command_browsertest.cc b/chrome/browser/web_applications/commands/install_from_manifest_command_browsertest.cc index 84f60bdf7..98c9234 100644 --- a/chrome/browser/web_applications/commands/install_from_manifest_command_browsertest.cc +++ b/chrome/browser/web_applications/commands/install_from_manifest_command_browsertest.cc
@@ -71,14 +71,15 @@ } })json"; + AppId expected_id = GenerateAppId(/*manifest_id=*/absl::nullopt, kStartUrl); base::test::TestFuture<const AppId&, webapps::InstallResultCode> result; provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, expected_id, result.GetCallback())); AppId result_id = result.Get<0>(); - EXPECT_EQ(result_id, GenerateAppId(/*manifest_id=*/absl::nullopt, kStartUrl)); + EXPECT_EQ(result_id, expected_id); EXPECT_TRUE(webapps::IsSuccess(result.Get<1>())); EXPECT_EQ(provider().registrar_unsafe().GetAppShortName(result_id), @@ -101,15 +102,17 @@ "name": "Test app" })json"; + AppId expected_id = + GenerateAppId(/*manifest_id=*/absl::nullopt, kDocumentUrl); + base::test::TestFuture<const AppId&, webapps::InstallResultCode> result; provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, expected_id, result.GetCallback())); AppId result_id = result.Get<0>(); - EXPECT_EQ(result_id, - GenerateAppId(/*manifest_id=*/absl::nullopt, kDocumentUrl)); + EXPECT_EQ(result_id, expected_id); EXPECT_TRUE(webapps::IsSuccess(result.Get<1>())); EXPECT_TRUE(IsShortcutCreated(result_id, "Test app")); } @@ -123,14 +126,15 @@ "name": "Test app" })json"; + AppId expected_id = GenerateAppId("appid", kDocumentUrl); base::test::TestFuture<const AppId&, webapps::InstallResultCode> result; provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, expected_id, result.GetCallback())); AppId result_id = result.Get<0>(); - EXPECT_EQ(result_id, GenerateAppId("appid", kDocumentUrl)); + EXPECT_EQ(result_id, expected_id); EXPECT_TRUE(webapps::IsSuccess(result.Get<1>())); EXPECT_TRUE(IsShortcutCreated(result_id, "Test app")); @@ -153,7 +157,7 @@ provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::INTERNAL_DEFAULT, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, existing_id, result.GetCallback())); AppId result_id = result.Get<0>(); EXPECT_EQ(result_id, existing_id); @@ -176,7 +180,8 @@ provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, + /*expected_id=*/"", result.GetCallback())); EXPECT_EQ(result.Get<1>(), webapps::InstallResultCode::kNotValidManifestForWebApp); @@ -194,7 +199,8 @@ provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, + /*expected_id=*/"", result.GetCallback())); EXPECT_EQ(result.Get<1>(), webapps::InstallResultCode::kNotValidManifestForWebApp); @@ -215,10 +221,34 @@ provider().command_manager().ScheduleCommand( std::make_unique<InstallFromManifestCommand>( webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, - kManifestUrl, kManifest, result.GetCallback())); + kManifestUrl, kManifest, + /*expected_id=*/"", result.GetCallback())); EXPECT_EQ(result.Get<1>(), webapps::InstallResultCode::kNotValidManifestForWebApp); } +IN_PROC_BROWSER_TEST_F(InstallFromManifestCommandTest, + FailureExpectedIdMismatch) { + // Installation will fail because the start URL is a different origin to the + // document URL. + const GURL kDocumentUrl("https://www.app.com/"); + const GURL kManifestUrl("https://www.app.com/manifest.json"); + const char kManifest[] = R"json({ + "start_url": "/", + "id": "/one", + "name": "Test app 2" + })json"; + + base::test::TestFuture<const AppId&, webapps::InstallResultCode> result; + provider().command_manager().ScheduleCommand( + std::make_unique<InstallFromManifestCommand>( + webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON, kDocumentUrl, + kManifestUrl, kManifest, GenerateAppId("/two", kDocumentUrl), + result.GetCallback())); + + EXPECT_EQ(result.Get<1>(), + webapps::InstallResultCode::kExpectedAppIdCheckFailed); +} + } // namespace web_app
diff --git a/chrome/browser/web_applications/test/web_app_test_utils.cc b/chrome/browser/web_applications/test/web_app_test_utils.cc index f3b88ed..96f45ee 100644 --- a/chrome/browser/web_applications/test/web_app_test_utils.cc +++ b/chrome/browser/web_applications/test/web_app_test_utils.cc
@@ -347,6 +347,7 @@ web_app->AddSource(source_type); web_app->SetUserDisplayMode(mojom::UserDisplayMode::kStandalone); web_app->SetName("Name"); + web_app->SetIsLocallyInstalled(true); return web_app; }
diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h index 7c96c38..e93ff82 100644 --- a/chrome/browser/web_applications/web_app.h +++ b/chrome/browser/web_applications/web_app.h
@@ -452,7 +452,7 @@ syncer::StringOrdinal user_page_ordinal_; syncer::StringOrdinal user_launch_ordinal_; absl::optional<WebAppChromeOsData> chromeos_data_; - bool is_locally_installed_ = true; + bool is_locally_installed_ = false; bool is_from_sync_and_pending_installation_ = false; // Note: This field is not persisted in the database. // TODO(crbug.com/1162477): Add this field to the protocol buffer file and
diff --git a/chrome/browser/web_applications/web_app_install_finalizer.cc b/chrome/browser/web_applications/web_app_install_finalizer.cc index 588e025c..68617025 100644 --- a/chrome/browser/web_applications/web_app_install_finalizer.cc +++ b/chrome/browser/web_applications/web_app_install_finalizer.cc
@@ -126,25 +126,17 @@ return; } - // TODO(loyso): Expose Source argument as a field of AppTraits struct. - const WebAppManagement::Type source = options.source; - AppId app_id = GenerateAppId(web_app_info.manifest_id, web_app_info.start_url); const WebApp* existing_web_app = GetWebAppRegistrar().GetAppById(app_id); std::unique_ptr<WebApp> web_app; if (existing_web_app) { - app_id = existing_web_app->app_id(); - // Prepare copy-on-write: - // Allows changing manifest_id and start_url when manifest_id is enabled. web_app = std::make_unique<WebApp>(*existing_web_app); + } else { + web_app = std::make_unique<WebApp>(app_id); + } - // The UI may initiate a full install to overwrite the existing - // non-locally-installed app. Therefore, |is_locally_installed| can be - // promoted to |true|, but not vice versa. - if (!web_app->is_locally_installed()) - web_app->SetIsLocallyInstalled(options.locally_installed); - + if (existing_web_app) { // There is a chance that existing sources type(s) are user uninstallable // but the newly added source type is NOT user uninstallable. In this // case, the following call will unregister os uninstallation. @@ -153,15 +145,21 @@ // this os hook is written. The best place to fix this is to put this code // is where OS Hooks are called - however that is currently separate from // this class. See https://crbug.com/1273269. - MaybeUnregisterOsUninstall(web_app.get(), source, *os_integration_manager_); - } else { - // New app. - web_app = std::make_unique<WebApp>(app_id); - web_app->SetStartUrl(web_app_info.start_url); - web_app->SetManifestId(web_app_info.manifest_id); - web_app->SetIsLocallyInstalled(options.locally_installed); - if (options.locally_installed) - web_app->SetInstallTime(base::Time::Now()); + MaybeUnregisterOsUninstall(web_app.get(), options.source, + *os_integration_manager_); + } + + // The UI may initiate a full install to overwrite the existing + // non-locally-installed app. Therefore, |is_locally_installed| can be + // promoted to |true|, but not vice versa. + web_app->SetIsLocallyInstalled(web_app->is_locally_installed() || + options.locally_installed); + + if (options.locally_installed && web_app->install_time().is_null()) { + web_app->SetInstallTime(base::Time::Now()); + } + + if (!web_app->run_on_os_login_os_integration_state()) { web_app->SetRunOnOsLoginOsIntegrationState(RunOnOsLoginMode::kNotRun); } @@ -198,18 +196,19 @@ } web_app->SetAdditionalSearchTerms(web_app_info.additional_search_terms); - web_app->AddSource(source); + web_app->AddSource(options.source); web_app->SetIsFromSyncAndPendingInstallation(false); web_app->SetParentAppId(options.parent_app_id); web_app->SetInstallSourceForMetrics(options.install_surface); - WriteExternalConfigMapInfo(*web_app, source, web_app_info.is_placeholder, + WriteExternalConfigMapInfo(*web_app, options.source, + web_app_info.is_placeholder, web_app_info.install_url); if (!options.locally_installed) { DCHECK(!(options.add_to_applications_menu || options.add_to_desktop || options.add_to_quick_launch_bar)) - << "Cannot create os hooks for a non-locally installed "; + << "Cannot create os hooks for a non-locally installed app"; } CommitCallback commit_callback = base::BindOnce(
diff --git a/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc b/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc index acc9dc3..57505a8 100644 --- a/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc +++ b/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc
@@ -265,6 +265,44 @@ EXPECT_TRUE(install_manager_observer_->web_app_manifest_updated_called()); } +TEST_P(WebAppInstallFinalizerUnitTest, + NonLocalThenLocalInstallSetsInstallTime) { + auto info = std::make_unique<WebAppInstallInfo>(); + info->start_url = GURL("https://foo.example"); + info->title = u"Foo Title"; + WebAppInstallFinalizer::FinalizeOptions options( + webapps::WebappInstallSource::INTERNAL_DEFAULT); + options.locally_installed = false; + // OS Hooks must be disabled for non-locally installed app. + options.add_to_applications_menu = false; + options.add_to_desktop = false; + options.add_to_quick_launch_bar = false; + + { + FinalizeInstallResult result = AwaitFinalizeInstall(*info, options); + + ASSERT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code); + const WebApp* installed_app = + registrar().GetAppById(result.installed_app_id); + + EXPECT_FALSE(installed_app->is_locally_installed()); + EXPECT_TRUE(installed_app->install_time().is_null()); + } + + options.locally_installed = true; + + { + FinalizeInstallResult result = AwaitFinalizeInstall(*info, options); + + ASSERT_EQ(webapps::InstallResultCode::kSuccessNewInstall, result.code); + const WebApp* installed_app = + registrar().GetAppById(result.installed_app_id); + + EXPECT_TRUE(installed_app->is_locally_installed()); + EXPECT_FALSE(installed_app->install_time().is_null()); + } +} + TEST_P(WebAppInstallFinalizerUnitTest, InstallNoDesktopShortcut) { auto info = std::make_unique<WebAppInstallInfo>(); info->start_url = GURL("https://foo.example");
diff --git a/chrome/browser/web_applications/web_app_sync_bridge_unittest.cc b/chrome/browser/web_applications/web_app_sync_bridge_unittest.cc index 0327eb6..153df45 100644 --- a/chrome/browser/web_applications/web_app_sync_bridge_unittest.cc +++ b/chrome/browser/web_applications/web_app_sync_bridge_unittest.cc
@@ -1062,6 +1062,7 @@ std::make_unique<WebApp>(expected_app.app_id()); entity_data_app->AddSource(WebAppManagement::kPolicy); entity_data_app->SetName("Name"); + entity_data_app->SetIsLocallyInstalled(true); EXPECT_TRUE(IsSyncDataEqualIfApplied( expected_app, std::move(entity_data_app), *entity_data));
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 84ab9d0b..50c9832 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1673805199-39d647e4dd97de6423d29e2b2009255377b0f05d.profdata +chrome-linux-main-1673870121-b62734de5644bef30e88bfbdc9e2a5573005f30b.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index c0baeda..4874656 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1673805199-525bc272bab94d372a6bd12d7f6e1cbb8b9db1ea.profdata +chrome-mac-arm-main-1673870121-366b28776e80a894ee023bb1e4519d1444aefe4d.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 37823ef..66c585640 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1673805199-64650a6d8460a1d31e14deef60dd88914e68d011.profdata +chrome-mac-main-1673870121-4361cc03702a014fece97662ce651a3993ed5ad4.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 6f13972..7e3058e0 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1673815550-29fee933f29e415b2a6401ca3e77464d7b102520.profdata +chrome-win32-main-1673870121-cf57b92732e15e9225ab68e5c65a7a0e9570c215.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index f2417b1b..5dc2be7 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1673815550-3c905c7681958037c8e7d60680df22bd5a9fb839.profdata +chrome-win64-main-1673870121-432919db25e9b9526751d911df5520647e798236.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 753ed45..8f1d4b3 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -1411,11 +1411,7 @@ // Enables omnibox trigger prerendering. BASE_FEATURE(kOmniboxTriggerForPrerender2, "OmniboxTriggerForPrerender2", -#if BUILDFLAG(IS_ANDROID) base::FEATURE_ENABLED_BY_DEFAULT); -#else - base::FEATURE_DISABLED_BY_DEFAULT); -#endif BASE_FEATURE(kSupportSearchSuggestionForPrerender2, "SupportSearchSuggestionForPrerender2", @@ -1434,11 +1430,12 @@ // Enables omnibox trigger no state prefetch. Only one of // kOmniboxTriggerForPrerender2 or kOmniboxTriggerForNoStatePrefetch can be -// enabled in the experiment. +// enabled in the experiment. If both are enabled, only +// kOmniboxTriggerForPrerender2 takes effect. // TODO(crbug.com/1267731): Remove this flag once the experiments are completed. BASE_FEATURE(kOmniboxTriggerForNoStatePrefetch, "OmniboxTriggerForNoStatePrefetch", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_CHROMEOS_ASH) // A feature to indicate whether setting wake time >24hours away is supported by
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index f6becf86..ea3de368 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -672,6 +672,8 @@ "../browser/ui/views/media_router/app_menu_test_api_views.cc", "../browser/ui/views/profiles/profile_picker_view_test_utils.cc", "../browser/ui/views/profiles/profile_picker_view_test_utils.h", + "../browser/ui/views/profiles/profiles_pixel_test_utils.cc", + "../browser/ui/views/profiles/profiles_pixel_test_utils.h", "../browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_test_helper.cc", "../browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_test_helper.h", "base/test_theme_provider.cc", @@ -2830,6 +2832,7 @@ # TODO(crbug.com/1052397): Update guard when pixel tests support widens. if (is_win || is_linux || is_chromeos_lacros) { sources += [ + "../browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc", "../browser/ui/views/profiles/first_run_intro_browsertest.cc", "../browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc", ] @@ -4108,6 +4111,7 @@ "../browser/ui/webui/ash/add_supervision/add_supervision_metrics_recorder_browsertest.cc", "../browser/ui/webui/ash/add_supervision/add_supervision_ui_browsertest.cc", "../browser/ui/webui/ash/bluetooth_pairing_dialog_browsertest-inl.h", + "../browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc", "../browser/ui/webui/ash/cloud_upload/drive_upload_handler_browsertest.cc", "../browser/ui/webui/ash/cloud_upload/one_drive_upload_handler_browsertest.cc", "../browser/ui/webui/ash/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc", @@ -7327,6 +7331,7 @@ "../browser/ui/window_sizer/window_sizer_unittest.cc", ] sources += [ + "../browser/apps/app_deduplication_service/app_deduplication_mapper_unittest.cc", "../browser/apps/app_deduplication_service/app_deduplication_server_connector_unittest.cc", "../browser/apps/app_deduplication_service/app_deduplication_service_unittest.cc", "../browser/apps/app_discovery_service/app_discovery_service_unittest.cc",
diff --git a/chrome/test/data/web_apps/empty_web_app.json b/chrome/test/data/web_apps/empty_web_app.json index 6dec565..297533c 100644 --- a/chrome/test/data/web_apps/empty_web_app.json +++ b/chrome/test/data/web_apps/empty_web_app.json
@@ -12,7 +12,8 @@ "client_data": { "system_web_app_data": null }, - "current_os_integration_states": {}, + "current_os_integration_states": { + }, "dark_mode_background_color": "none", "dark_mode_theme_color": "none", "data_size_in_bytes": "", @@ -33,7 +34,7 @@ "install_time": "1601-01-01 00:00:00.000 UTC", "is_from_sync_and_pending_installation": false, "is_generated_icon": false, - "is_locally_installed": true, + "is_locally_installed": false, "is_storage_isolated": false, "is_uninstalling": false, "last_badging_time": "1601-01-01 00:00:00.000 UTC",
diff --git a/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts b/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts index 20a4e45..ced92cf 100644 --- a/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts +++ b/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts
@@ -3,10 +3,13 @@ // found in the LICENSE file. import 'chrome://cloud-upload/cloud_upload_dialog.js'; +// TODO(cassycc): Check this okay to put here. +import 'chrome://cloud-upload/file_handler_page.js'; -import {DialogArgs, DialogPage, PageHandlerRemote, UserAction} from 'chrome://cloud-upload/cloud_upload.mojom-webui.js'; +import {DialogArgs, DialogPage, DialogTask, PageHandlerRemote, UserAction} from 'chrome://cloud-upload/cloud_upload.mojom-webui.js'; import {CloudUploadBrowserProxy} from 'chrome://cloud-upload/cloud_upload_browser_proxy.js'; import {CloudUploadElement} from 'chrome://cloud-upload/cloud_upload_dialog.js'; +import {FileHandlerPageElement} from 'chrome://cloud-upload/file_handler_page.js'; import {OfficePwaInstallPageElement} from 'chrome://cloud-upload/office_pwa_install_page.js'; import {OneDriveUploadPageElement} from 'chrome://cloud-upload/one_drive_upload_page.js'; import {SetupCancelDialogElement} from 'chrome://cloud-upload/setup_cancel_dialog.js'; @@ -20,6 +23,8 @@ officeWebAppInstalled: boolean; installOfficeWebAppResult: boolean; odfsMounted: boolean; + dialogPage: DialogPage; + tasks?: DialogTask[]|null; } /** @@ -33,11 +38,15 @@ this.handler = TestBrowserProxy.fromClass(PageHandlerRemote); const args: DialogArgs = { fileNames: [], - dialogPage: DialogPage.kOneDriveSetup, + dialogPage: options.dialogPage, + tasks: [], }; if (options.fileName != null) { args.fileNames.push(options.fileName); } + if (options.tasks != null) { + args.tasks = options.tasks; + } this.handler.setResultFor('getDialogArgs', {args: args}); this.handler.setResultFor( 'isOfficeWebAppInstalled', {installed: options.officeWebAppInstalled}); @@ -153,6 +162,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); // Go to the OneDrive upload page. @@ -174,6 +184,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); // Go to the OneDrive upload page. @@ -195,6 +206,7 @@ officeWebAppInstalled: true, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); await doWelcomePage(); @@ -212,6 +224,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: true, + dialogPage: DialogPage.kOneDriveSetup, }); await doWelcomePage(); @@ -231,6 +244,7 @@ officeWebAppInstalled: true, installOfficeWebAppResult: true, odfsMounted: true, + dialogPage: DialogPage.kOneDriveSetup, }); await doWelcomePage(); @@ -240,7 +254,7 @@ /** * Tests that clicking the open file button triggers the right - * `respondAndClose` mojo request. + * `respondWithUserActionAndClose` mojo request. */ test('Open file button', async () => { await setUp({ @@ -248,6 +262,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); checkIsWelcomePage(); @@ -259,16 +274,17 @@ checkIsOneDriveUploadPage(); cloudUploadApp.$('.action-button').click(); - await testProxy.handler.whenCalled('respondAndClose'); - assertEquals(1, testProxy.handler.getCallCount('respondAndClose')); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); assertDeepEquals( [UserAction.kConfirmOrUploadToOneDrive], - testProxy.handler.getArgs('respondAndClose')); + testProxy.handler.getArgs('respondWithUserActionAndClose')); }); /** * Tests that clicking the close button on the last page triggers the right - * `respondAndClose` mojo request. + * `respondWithUserActionAndClose` mojo request. */ test('Close button on last page', async () => { await setUp({ @@ -276,6 +292,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); // Go to the OneDrive upload page. @@ -285,10 +302,12 @@ checkIsOneDriveUploadPage(); cloudUploadApp.$('.cancel-button').click(); - await testProxy.handler.whenCalled('respondAndClose'); - assertEquals(1, testProxy.handler.getCallCount('respondAndClose')); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); assertDeepEquals( - [UserAction.kCancel], testProxy.handler.getArgs('respondAndClose')); + [UserAction.kCancel], + testProxy.handler.getArgs('respondWithUserActionAndClose')); }); /** @@ -301,6 +320,7 @@ officeWebAppInstalled: false, installOfficeWebAppResult: true, odfsMounted: false, + dialogPage: DialogPage.kOneDriveSetup, }); // Go to the specified page. @@ -322,12 +342,255 @@ // Bring up the cancel dialog and cancel setup. cloudUploadApp.$('.cancel-button').click(); assertTrue(cancelDialog.open); - assertEquals(0, testProxy.handler.getCallCount('respondAndClose')); + assertEquals( + 0, testProxy.handler.getCallCount('respondWithUserActionAndClose')); cancelDialog.$('.cancel-button').click(); - await testProxy.handler.whenCalled('respondAndClose'); - assertEquals(1, testProxy.handler.getCallCount('respondAndClose')); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); assertDeepEquals( - [UserAction.kCancel], testProxy.handler.getArgs('respondAndClose')); + [UserAction.kCancel], + testProxy.handler.getArgs('respondWithUserActionAndClose')); })); }); + +suite('<file-handler-page>', () => { + /* Holds the <file-handler-page> app. */ + let container: HTMLDivElement; + /* The <file-handler-page> app. */ + let fileHandlerPageApp: FileHandlerPageElement; + /* The BrowserProxy element to make assertions on when mojo methods are + called. */ + let testProxy: CloudUploadTestBrowserProxy; + + async function setUp(options: ProxyOptions) { + testProxy = new CloudUploadTestBrowserProxy(options); + CloudUploadBrowserProxy.setInstance(testProxy); + + // Creates and attaches the <file-handler-page> element to the DOM tree. + fileHandlerPageApp = + document.createElement('file-handler-page') as FileHandlerPageElement; + container.appendChild(fileHandlerPageApp); + await fileHandlerPageApp.initDynamicContent; + } + + /** + * Create `numTasks` number of `DialogTask` tasks with each task having a + * unique `position`. + */ + function createTasks(numTasks: number): DialogTask[] { + const tasks: DialogTask[] = []; + const title = 'title'; + const iconUrl = 'iconUrl'; + const appId = 'appId'; + for (let i = 0; i < numTasks; i++) { + const position = i; + tasks.push({title, position, appId, iconUrl}); + } + return tasks; + } + + /** + * Runs prior to all the tests running, attaches a div to enable isolated + * clearing and attaching of the web component. + */ + suiteSetup(() => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + + /** + * Runs after each test. Removes all elements from the <div> that holds + * the <file-handler-page> component. + */ + teardown(() => { + container.innerHTML = ''; + testProxy.handler.reset(); + }); + + /** + * Test that clicking the Drive App and then the open file button triggers the + * right `respondWithUserActionAndClose` mojo request when the Office PWA is + * installed and there are local file tasks. + */ + test('Open file with Drive when Office PWA installed', async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: true, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#drive').click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); + assertDeepEquals( + [UserAction.kConfirmOrUploadToGoogleDrive], + testProxy.handler.getArgs('respondWithUserActionAndClose')); + }); + + + /** + * Test that clicking the Drive App and then the open file button triggers the + * right `respondWithUserActionAndClose` mojo request when the Office PWA is + * not installed and there are local file tasks. + */ + test('Open file with Drive when Office PWA not installed', async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: false, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#drive').click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); + assertDeepEquals( + [UserAction.kConfirmOrUploadToGoogleDrive], + testProxy.handler.getArgs('respondWithUserActionAndClose')); + }); + + /** + * Test that clicking the OneDrive App and then the open file button triggers + * the right `respondWithUserActionAndClose` mojo request when the Office PWA + * is installed and there are local file tasks. + */ + test('Open file with OneDrive when Office PWA installed', async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: true, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#onedrive').click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); + assertDeepEquals( + [UserAction.kSetUpOneDrive], + testProxy.handler.getArgs('respondWithUserActionAndClose')); + }); + + + /** + * Test that clicking the OneDrive App and then the open file button triggers + * the right `respondWithUserActionAndClose` mojo request when the Office PWA + * is not installed and there are local file tasks. + */ + test('Open file with OneDrive when Office PWA not installed', async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: false, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#onedrive').click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithUserActionAndClose'); + assertEquals( + 1, testProxy.handler.getCallCount('respondWithUserActionAndClose')); + assertDeepEquals( + [UserAction.kSetUpOneDrive], + testProxy.handler.getArgs('respondWithUserActionAndClose')); + }); + + /** + * For each created local task, test that clicking that task and then the open + * file button triggers the right `respondWithLocalTaskAndClose` mojo request + * when the Office PWA is installed. + */ + [0, 1, 2, 3, 4].forEach( + taskPosition => test( + `Open file with local task ${taskPosition} when Office PWA installed`, + async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: true, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#id' + taskPosition).click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithLocalTaskAndClose'); + assertEquals( + 1, + testProxy.handler.getCallCount('respondWithLocalTaskAndClose')); + assertDeepEquals( + [taskPosition], + testProxy.handler.getArgs('respondWithLocalTaskAndClose')); + })); + + /** + * For each created local task, test that clicking that task and then the open + * file button triggers the right `respondWithLocalTaskAndClose` mojo request + * when the Office PWA is not installed. + */ + [0, 1, 2, 3, 4].forEach( + taskPosition => test( + `Open file with local task ${ + taskPosition} when Office PWA not installed`, + async () => { + const numTasks = 5; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: false, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: createTasks(numTasks), + }); + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + fileHandlerPageApp.$('#id' + taskPosition).click(); + fileHandlerPageApp.$('.action-button').click(); + await testProxy.handler.whenCalled('respondWithLocalTaskAndClose'); + assertEquals( + 1, + testProxy.handler.getCallCount('respondWithLocalTaskAndClose')); + assertDeepEquals( + [taskPosition], + testProxy.handler.getArgs('respondWithLocalTaskAndClose')); + })); + + /** Test that the dialog doesn't crash when there are no local tasks.*/ + test(`No local task`, async () => { + const numTasks = 0; + await setUp({ + fileName: 'file.docx', + officeWebAppInstalled: false, + installOfficeWebAppResult: false, + odfsMounted: false, + dialogPage: DialogPage.kFileHandlerDialog, + tasks: [], + }); + assertEquals(fileHandlerPageApp.tasks.length, numTasks); + }); +}); \ No newline at end of file
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js index 5af2d0f7..bcc4ec1 100644 --- a/chrome/test/data/webui/settings/cr_settings_browsertest.js +++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -639,11 +639,21 @@ runMochaSuite('PrivacySandboxTopicsSubpageTests'); }); +TEST_F( + 'CrSettingsPrivacySandboxPageTest', 'TopicsSubpageEmptyTests', function() { + runMochaSuite('PrivacySandboxTopicsSubpageEmptyTests'); + }); + TEST_F('CrSettingsPrivacySandboxPageTest', 'FledgeSubpageTests', function() { runMochaSuite('PrivacySandboxFledgeSubpageTests'); }); TEST_F( + 'CrSettingsPrivacySandboxPageTest', 'FledgeSubpageEmptyTests', function() { + runMochaSuite('PrivacySandboxFledgeSubpageEmptyTests'); + }); + +TEST_F( 'CrSettingsPrivacySandboxPageTest', 'FledgeSubpageSeeAllSitesTests', function() { runMochaSuite('PrivacySandboxFledgeSubpageSeeAllSitesTests');
diff --git a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts index a585099..9c5169a 100644 --- a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts +++ b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts
@@ -263,8 +263,6 @@ assertEquals(learnMoreButton, page.shadowRoot!.activeElement); }); - // TODO(crbug.com/1378703): Add test for empty blocked topics list description - // when `getTopicsState()` returns an empty list. test('blockedTopicsNotEmpty', async function() { page.setPrefValue('privacy_sandbox.m1.topics_enabled', false); const blockedTopicsRow = @@ -426,6 +424,96 @@ }); }); +suite('PrivacySandboxTopicsSubpageEmptyTests', function() { + let page: SettingsPrivacySandboxTopicsSubpageElement; + let testPrivacySandboxBrowserProxy: TestPrivacySandboxBrowserProxy; + let metricsBrowserProxy: TestMetricsBrowserProxy; + let settingsPrefs: SettingsPrefsElement; + + suiteSetup(function() { + loadTimeData.overrideValues({ + isPrivacySandboxRestricted: false, + }); + settingsPrefs = document.createElement('settings-prefs'); + return CrSettingsPrefs.initialized; + }); + + setup(async function() { + testPrivacySandboxBrowserProxy = new TestPrivacySandboxBrowserProxy(); + testPrivacySandboxBrowserProxy.setTopicsState({ + topTopics: [], + blockedTopics: [], + }); + PrivacySandboxBrowserProxyImpl.setInstance(testPrivacySandboxBrowserProxy); + metricsBrowserProxy = new TestMetricsBrowserProxy(); + MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); + + document.body.innerHTML = window.trustedTypes!.emptyHTML; + document.body.appendChild(settingsPrefs); + page = document.createElement('settings-privacy-sandbox-topics-subpage'); + page.prefs = settingsPrefs.prefs!; + document.body.appendChild(page); + await testPrivacySandboxBrowserProxy.whenCalled('getTopicsState'); + return flushTasks(); + }); + + teardown(function() { + Router.getInstance().resetRouteForTesting(); + }); + + test('topicsDisabled', async function() { + page.setPrefValue('privacy_sandbox.m1.topics_enabled', false); + await flushTasks(); + // Check the current topics descriptions. + assertTrue(isChildVisible(page, '#currentTopicsDescription')); + assertFalse(isChildVisible(page, '#currentTopicsDescriptionEmpty')); + assertTrue(isChildVisible(page, '#currentTopicsDescriptionDisabled')); + }); + + test('topicsEnabled', async function() { + page.setPrefValue('privacy_sandbox.m1.topics_enabled', true); + await flushTasks(); + // Check the current topics descriptions. + assertTrue(isChildVisible(page, '#currentTopicsDescription')); + assertTrue(isChildVisible(page, '#currentTopicsDescriptionEmpty')); + assertFalse(isChildVisible(page, '#currentTopicsDescriptionDisabled')); + // Check that there are no current topics. + const currentTopics = + page.shadowRoot!.querySelectorAll('privacy-sandbox-interest-item'); + assertEquals(0, currentTopics.length); + }); + + test('blockedTopicsEmpty', async function() { + page.setPrefValue('privacy_sandbox.m1.topics_enabled', true); + await flushTasks(); + const blockedTopicsRow = + page.shadowRoot!.querySelector<HTMLElement>('#blockedTopicsRow')!; + const blockedTopicsDescription = + page.shadowRoot!.querySelector<HTMLElement>( + '#blockedTopicsDescription')!; + assertTrue(isVisible(blockedTopicsRow)); + assertFalse(isVisible(blockedTopicsDescription)); + blockedTopicsRow.click(); + await flushTasks(); + assertEquals( + 'Settings.PrivacySandbox.Topics.BlockedTopicsOpened', + await metricsBrowserProxy.whenCalled('recordAction')); + + // Check the blocked topics description. + assertTrue(isVisible(blockedTopicsDescription)); + assertEquals( + loadTimeData.getString('topicsPageBlockedTopicsDescriptionEmpty'), + blockedTopicsDescription.innerText); + + // Check that there are no blocked topics. + const blockedTopicsList = + page.shadowRoot!.querySelector('#blockedTopicsList')!; + const blockedTopics = + blockedTopicsList.querySelectorAll('privacy-sandbox-interest-item'); + assertEquals(0, blockedTopics.length); + }); +}); + suite('PrivacySandboxFledgeSubpageTests', function() { let page: SettingsPrivacySandboxFledgeSubpageElement; let testPrivacySandboxBrowserProxy: TestPrivacySandboxBrowserProxy; @@ -511,8 +599,6 @@ loadTimeData.getString('fledgePageToggleSubLabel'), page.$.fledgeToggle.subLabel); assertTrue(isChildVisible(page, '#currentSitesDescription')); - // TODO(crbug.com/1378703): Add test for `#currentSitesDescriptionEmpty` - // when `getFledgeState()` returns an empty list. assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty')); assertFalse(isChildVisible(page, '#currentSitesDescriptionDisabled')); @@ -563,8 +649,6 @@ assertEquals(learnMoreButton, page.shadowRoot!.activeElement); }); - // TODO(crbug.com/1378703): Add test for empty blocked sites list description - // when `getFledgeState()` returns an empty list. test('blockedSitesDescriptionNotEmpty', async function() { page.setPrefValue('privacy_sandbox.m1.fledge_enabled', false); const blockedSitesRow = @@ -716,6 +800,96 @@ }); }); +suite('PrivacySandboxFledgeSubpageEmptyTests', function() { + let page: SettingsPrivacySandboxFledgeSubpageElement; + let testPrivacySandboxBrowserProxy: TestPrivacySandboxBrowserProxy; + let metricsBrowserProxy: TestMetricsBrowserProxy; + let settingsPrefs: SettingsPrefsElement; + + suiteSetup(function() { + loadTimeData.overrideValues({ + isPrivacySandboxRestricted: false, + }); + settingsPrefs = document.createElement('settings-prefs'); + return CrSettingsPrefs.initialized; + }); + + setup(async function() { + testPrivacySandboxBrowserProxy = new TestPrivacySandboxBrowserProxy(); + testPrivacySandboxBrowserProxy.setFledgeState({ + joiningSites: [], + blockedSites: [], + }); + PrivacySandboxBrowserProxyImpl.setInstance(testPrivacySandboxBrowserProxy); + metricsBrowserProxy = new TestMetricsBrowserProxy(); + MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); + + document.body.innerHTML = window.trustedTypes!.emptyHTML; + document.body.appendChild(settingsPrefs); + page = document.createElement('settings-privacy-sandbox-fledge-subpage'); + page.prefs = settingsPrefs.prefs!; + document.body.appendChild(page); + await testPrivacySandboxBrowserProxy.whenCalled('getFledgeState'); + return flushTasks(); + }); + + teardown(function() { + Router.getInstance().resetRouteForTesting(); + }); + + test('fledgeDisabled', async function() { + page.setPrefValue('privacy_sandbox.m1.fledge_enabled', false); + await flushTasks(); + // Check the current sites descriptions. + assertTrue(isChildVisible(page, '#currentSitesDescription')); + assertFalse(isChildVisible(page, '#currentSitesDescriptionEmpty')); + assertTrue(isChildVisible(page, '#currentSitesDescriptionDisabled')); + }); + + test('fledgeEnabled', async function() { + page.setPrefValue('privacy_sandbox.m1.fledge_enabled', true); + await flushTasks(); + // Check the current sites descriptions. + assertTrue(isChildVisible(page, '#currentSitesDescription')); + assertTrue(isChildVisible(page, '#currentSitesDescriptionEmpty')); + assertFalse(isChildVisible(page, '#currentSitesDescriptionDisabled')); + assertFalse(isChildVisible(page, '#seeAllSites')); + // Check that there are no current sites. + const currentSites = + page.shadowRoot!.querySelectorAll('privacy-sandbox-interest-item'); + assertEquals(0, currentSites.length); + }); + + test('blockedSitesEmpty', async function() { + page.setPrefValue('privacy_sandbox.m1.fledge_enabled', true); + await flushTasks(); + const blockedSitesRow = + page.shadowRoot!.querySelector<HTMLElement>('#blockedSitesRow')!; + const blockedSitesDescription = page.shadowRoot!.querySelector<HTMLElement>( + '#blockedSitesDescription')!; + assertTrue(isVisible(blockedSitesRow)); + assertFalse(isVisible(blockedSitesDescription)); + blockedSitesRow.click(); + await flushTasks(); + assertEquals( + 'Settings.PrivacySandbox.Fledge.BlockedSitesOpened', + await metricsBrowserProxy.whenCalled('recordAction')); + + // Check the blocked sites description. + assertTrue(isVisible(blockedSitesDescription)); + assertEquals( + loadTimeData.getString('fledgePageBlockedSitesDescriptionEmpty'), + blockedSitesDescription.innerText); + + // Check that there are no blocked sites. + const blockedSitesList = + page.shadowRoot!.querySelector('#blockedSitesList')!; + const blockedSites = + blockedSitesList.querySelectorAll('privacy-sandbox-interest-item'); + assertEquals(0, blockedSites.length); + }); +}); + suite('PrivacySandboxFledgeSubpageSeeAllSitesTests', function() { let page: SettingsPrivacySandboxFledgeSubpageElement; let testPrivacySandboxBrowserProxy: TestPrivacySandboxBrowserProxy;
diff --git a/chrome/test/data/webui/settings/test_privacy_sandbox_browser_proxy.ts b/chrome/test/data/webui/settings/test_privacy_sandbox_browser_proxy.ts index 12ab57e..60e6586 100644 --- a/chrome/test/data/webui/settings/test_privacy_sandbox_browser_proxy.ts +++ b/chrome/test/data/webui/settings/test_privacy_sandbox_browser_proxy.ts
@@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {CanonicalTopic, FledgeState, PrivacySandboxBrowserProxy} from 'chrome://settings/settings.js'; +import {CanonicalTopic, FledgeState, PrivacySandboxBrowserProxy, TopicsState} from 'chrome://settings/settings.js'; import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js'; export class TestPrivacySandboxBrowserProxy extends TestBrowserProxy implements PrivacySandboxBrowserProxy { private fledgeState_: FledgeState; + private topicsState_: TopicsState; constructor() { super([ @@ -21,6 +22,13 @@ joiningSites: ['test-site-one.com'], blockedSites: ['test-site-two.com'], }; + + this.topicsState_ = { + topTopics: + [{topicId: 1, taxonomyVersion: 1, displayString: 'test-topic-1'}], + blockedTopics: + [{topicId: 2, taxonomyVersion: 1, displayString: 'test-topic-2'}], + }; } setFledgeState(fledgeState: FledgeState) { @@ -36,14 +44,13 @@ this.methodCalled('setFledgeJoiningAllowed', [site, allowed]); } + setTopicsState(topicsState: TopicsState) { + this.topicsState_ = topicsState; + } + getTopicsState() { this.methodCalled('getTopicsState'); - return Promise.resolve({ - topTopics: - [{topicId: 1, taxonomyVersion: 1, displayString: 'test-topic-1'}], - blockedTopics: - [{topicId: 2, taxonomyVersion: 1, displayString: 'test-topic-2'}], - }); + return Promise.resolve(this.topicsState_); } setTopicAllowed(topic: CanonicalTopic, allowed: boolean) {
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc index 600a2d7..8080679 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc
@@ -113,6 +113,25 @@ return browser_context; } +const user_manager::User* BrowserContextHelper::GetUserByBrowserContext( + content::BrowserContext* browser_context) { + if (!IsUserBrowserContext(browser_context)) { + return nullptr; + } + + const std::string hash = GetUserIdHashFromBrowserContext(browser_context); + + // Finds the matching user in logged-in user list since only a logged-in + // user would have a profile. + auto* user_manager = user_manager::UserManager::Get(); + for (const auto* user : user_manager->GetLoggedInUsers()) { + if (user->username_hash() == hash) { + return user; + } + } + return nullptr; +} + // static std::string BrowserContextHelper::GetUserBrowserContextDirName( base::StringPiece user_id_hash) {
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.h b/chromeos/ash/components/browser_context_helper/browser_context_helper.h index 9faf9eab..7d42c90 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.h +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.h
@@ -88,6 +88,11 @@ content::BrowserContext* GetBrowserContextByUser( const user_manager::User* user); + // Returns User instance of the given |browser_context|. If not found, + // returns nullptr. + const user_manager::User* GetUserByBrowserContext( + content::BrowserContext* browser_context); + // Returns user browser context dir in a format of "u-${user_id_hash}". static std::string GetUserBrowserContextDirName( base::StringPiece user_id_hash);
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc index e94d03a..49e2aa5 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc
@@ -213,6 +213,46 @@ EXPECT_EQ(otr_browser_context, helper.GetBrowserContextByUser(user)); } +TEST_F(BrowserContextHelperTest, GetUserByBrowserContext) { + // Set up BrowserContextHelper instance. + auto delegate = std::make_unique<FakeBrowserContextHelperDelegate>(); + auto* delegate_ptr = delegate.get(); + BrowserContextHelper helper(std::move(delegate)); + + // Set up UserManager. + user_manager::ScopedUserManager scoped_user_manager( + std::make_unique<user_manager::FakeUserManager>()); + auto* fake_user_manager = static_cast<user_manager::FakeUserManager*>( + user_manager::UserManager::Get()); + + const AccountId account_id = AccountId::FromUserEmail("test@test"); + const std::string username_hash = + user_manager::FakeUserManager::GetFakeUsernameHash(account_id); + const user_manager::User* user = fake_user_manager->AddUser(account_id); + content::BrowserContext* browser_context = delegate_ptr->CreateBrowserContext( + delegate_ptr->GetUserDataDir()->Append("u-" + username_hash), + /*is_off_the_record=*/false); + fake_user_manager->UserLoggedIn(account_id, username_hash, + /*browser_restart=*/false, + /*is_child=*/false); + + EXPECT_EQ(user, helper.GetUserByBrowserContext(browser_context)); + + // Special browser_context. + content::BrowserContext* signin_browser_context = + delegate_ptr->CreateBrowserContext( + delegate_ptr->GetUserDataDir()->Append(kSigninBrowserContextBaseName), + /*is_off_the_record=*/false); + EXPECT_FALSE(helper.GetUserByBrowserContext(signin_browser_context)); + + // Returns nullptr for unknown browser context. + content::BrowserContext* unknown_browser_context = + delegate_ptr->CreateBrowserContext( + delegate_ptr->GetUserDataDir()->Append("unknown@user"), + /*is_off_the_record=*/false); + EXPECT_FALSE(helper.GetUserByBrowserContext(unknown_browser_context)); +} + TEST_F(BrowserContextHelperTest, GetUserBrowserContextDirName) { constexpr struct { const char* expect;
diff --git a/chromeos/ash/components/drivefs/drivefs_pin_manager.cc b/chromeos/ash/components/drivefs/drivefs_pin_manager.cc index 80b3c389..b8db36e 100644 --- a/chromeos/ash/components/drivefs/drivefs_pin_manager.cc +++ b/chromeos/ash/components/drivefs/drivefs_pin_manager.cc
@@ -308,24 +308,28 @@ // queue. constexpr base::TimeDelta kPeriodicRemovalInterval = base::Seconds(10); -void DriveFsPinManager::Add(const StableId id, +bool DriveFsPinManager::Add(const StableId id, const std::string& path, - const int64_t expected_size) { + const int64_t size) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - // Emplace an item with no progress (yet). The progress values will get - // updated in the `OnSyncingStatusUpdate`. - const auto [it, ok] = files_to_track_.try_emplace( - id, Progress{.path = path, .total = expected_size}); + DCHECK_GE(size, 0) << " for " << id << " " << Quote(path); + + const auto [it, ok] = + files_to_pin_.try_emplace(id, Progress{.path = path, .total = size}); DCHECK_EQ(id, it->first); - if (ok) { - VLOG(3) << "Added " << id << " " << Quote(path) << " to the tracked files"; - VLOG_IF(1, expected_size <= 0) - << "Tracked " << id << " " << Quote(path) << " has an expected size of " - << HumanReadableSize(expected_size); - } else { - LOG(ERROR) << "Cannot add " << id << " " << Quote(path) - << " to the tracked files: Conflicting entry " << it->second; + if (!ok) { + LOG_IF(ERROR, !ok) << "Cannot add " << id << " " << Quote(path) + << " with size " << HumanReadableSize(size) + << " to the files to pin: Conflicting entry " + << it->second; + return false; } + + VLOG(3) << "Added " << id << " " << Quote(path) << " with size " + << HumanReadableSize(size) << " to the files to pin"; + progress_.total_bytes += size; + progress_.required_space += RoundToBlockSize(size); + return true; } bool DriveFsPinManager::Remove(const StableId id, @@ -558,17 +562,7 @@ << "Not pinned yet but already available offline: " << id << " " << Quote(path) << ": " << Quote(md); - DCHECK_GE(md.size, 0) << " for " << id << " " << Quote(path); - const int64_t size = GetSize(md); - progress_.total_bytes += size; - progress_.required_space += RoundToBlockSize(size); - - const auto [it, ok] = files_to_pin_.try_emplace( - id, Progress{.path = path.value(), .total = size}); - LOG_IF(ERROR, !ok) << "Cannot add " << id << " " << Quote(path) - << " with size " << HumanReadableSize(size) - << " to the files to pin: Conflicting entry " - << it->second; + Add(id, path.value(), GetSize(md)); } NotifyProgress();
diff --git a/chromeos/ash/components/drivefs/drivefs_pin_manager.h b/chromeos/ash/components/drivefs/drivefs_pin_manager.h index 5e241165..089b314 100644 --- a/chromeos/ash/components/drivefs/drivefs_pin_manager.h +++ b/chromeos/ash/components/drivefs/drivefs_pin_manager.h
@@ -12,6 +12,7 @@ #include "base/component_export.h" #include "base/files/file_path.h" #include "base/functional/callback.h" +#include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" @@ -143,10 +144,6 @@ using CompletionCallback = base::OnceCallback<void(SetupStage)>; void Start(CompletionCallback complete_callback, bool should_pin = true); - void GetFeatureAvailability(base::OnceCallback<void(SetupStage)> callback) { - Start(std::move(callback), false); - } - // Stop the syncing setup. void Stop(); @@ -169,11 +166,15 @@ enum class StableId : int64_t { kNone = 0 }; private: - // Adds an item to the tracked files. - void Add(StableId id, const std::string& path, int64_t expected_size); + // Adds an item to the files to pin. Does nothing if an item with the same ID + // already exists in files_to_pin_. Updates the total number of bytes to + // transfer and the required space. Returns whether an item was actually + // added. + bool Add(StableId id, const std::string& path, int64_t size); // Removes an item from the map. Does nothing if the item is not in the map. // Updates the total number of bytes transferred so far. + // If `bytes_transferred` is negative, use the total expected size. // Returns whether an item was actually removed. bool Remove(StableId id, const std::string& path, @@ -284,8 +285,11 @@ Files files_to_track_ GUARDED_BY_CONTEXT(sequence_checker_); base::WeakPtrFactory<DriveFsPinManager> weak_ptr_factory_{this}; + + FRIEND_TEST_ALL_PREFIXES(DriveFsPinManagerTest, Add); }; +COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_DRIVEFS) std::ostream& operator<<(std::ostream& out, DriveFsPinManager::StableId id); } // namespace drivefs::pinning
diff --git a/chromeos/ash/components/drivefs/drivefs_pin_manager_unittest.cc b/chromeos/ash/components/drivefs/drivefs_pin_manager_unittest.cc index 9c7ba14..e4aaa08d 100644 --- a/chromeos/ash/components/drivefs/drivefs_pin_manager_unittest.cc +++ b/chromeos/ash/components/drivefs/drivefs_pin_manager_unittest.cc
@@ -30,7 +30,9 @@ using ::testing::AnyNumber; using ::testing::DoAll; using ::testing::Field; +using ::testing::IsEmpty; using ::testing::Return; +using ::testing::SizeIs; // Shorthand way to represent drive files with the information that is relevant // for the pinning manager. @@ -163,10 +165,11 @@ (const base::FilePath&, DriveFsPinManager::SpaceResult)); }; +} // namespace + class DriveFsPinManagerTest : public testing::Test { public: DriveFsPinManagerTest() = default; - DriveFsPinManagerTest(const DriveFsPinManagerTest&) = delete; DriveFsPinManagerTest& operator=(const DriveFsPinManagerTest&) = delete; @@ -215,6 +218,88 @@ MockDriveFs mock_drivefs_; }; +// Tests DriveFsPinManagerTest::Add(). +TEST_F(DriveFsPinManagerTest, Add) { + DriveFsPinManager manager( + temp_dir_.GetPath(), &mock_drivefs_, + base::BindRepeating(&MockFreeSpace::GetFreeSpace, + base::Unretained(&mock_free_space_))); + + { + const SetupProgress progress = manager.GetProgress(); + EXPECT_EQ(progress.pinned_files, 0); + EXPECT_EQ(progress.transferred_bytes, 0); + EXPECT_EQ(progress.total_bytes, 0); + EXPECT_EQ(progress.required_space, 0); + } + + const DriveFsPinManager::StableId id1 = DriveFsPinManager::StableId(549); + const std::string path1 = "Path 1"; + const int64_t size1 = 698248964; + + const DriveFsPinManager::StableId id2 = DriveFsPinManager::StableId(17); + const std::string path2 = "Path 2"; + const int64_t size2 = 78964533; + + DCHECK_CALLED_ON_VALID_SEQUENCE(manager.sequence_checker_); + EXPECT_THAT(manager.files_to_pin_, IsEmpty()); + EXPECT_THAT(manager.files_to_track_, IsEmpty()); + + // Add an item. + EXPECT_TRUE(manager.Add(id1, path1, size1)); + EXPECT_THAT(manager.files_to_pin_, SizeIs(1)); + EXPECT_THAT(manager.files_to_track_, IsEmpty()); + + // Try to add a conflicting item with the same ID, but different path and + // size. + EXPECT_FALSE(manager.Add(id1, path2, size2)); + EXPECT_THAT(manager.files_to_pin_, SizeIs(1)); + EXPECT_THAT(manager.files_to_track_, IsEmpty()); + + { + const auto it = manager.files_to_pin_.find(id1); + ASSERT_NE(it, manager.files_to_pin_.end()); + const auto& [got_id, progress] = *it; + EXPECT_EQ(got_id, id1); + EXPECT_EQ(progress.path, path1); + EXPECT_EQ(progress.total, size1); + EXPECT_EQ(progress.transferred, 0); + EXPECT_FALSE(progress.in_progress); + } + + { + const SetupProgress progress = manager.GetProgress(); + EXPECT_EQ(progress.pinned_files, 0); + EXPECT_EQ(progress.transferred_bytes, 0); + EXPECT_EQ(progress.total_bytes, size1); + EXPECT_EQ(progress.required_space, 698249216); + } + + // Add a second item. + EXPECT_TRUE(manager.Add(id2, path2, size2)); + EXPECT_THAT(manager.files_to_pin_, SizeIs(2)); + EXPECT_THAT(manager.files_to_track_, IsEmpty()); + + { + const auto it = manager.files_to_pin_.find(id2); + ASSERT_NE(it, manager.files_to_pin_.end()); + const auto& [got_id, progress] = *it; + EXPECT_EQ(got_id, id2); + EXPECT_EQ(progress.path, path2); + EXPECT_EQ(progress.total, size2); + EXPECT_EQ(progress.transferred, 0); + EXPECT_FALSE(progress.in_progress); + } + + { + const SetupProgress progress = manager.GetProgress(); + EXPECT_EQ(progress.pinned_files, 0); + EXPECT_EQ(progress.transferred_bytes, 0); + EXPECT_EQ(progress.total_bytes, size1 + size2); + EXPECT_EQ(progress.required_space, 777216000); + } +} + TEST_F(DriveFsPinManagerTest, CannotGetFreeSpace) { base::MockOnceCallback<void(SetupStage)> mock_callback; @@ -670,6 +755,4 @@ new_run_loop.Run(); } -} // namespace - } // namespace drivefs::pinning
diff --git a/chromeos/ash/components/drivefs/mojom/drivefs.mojom b/chromeos/ash/components/drivefs/mojom/drivefs.mojom index eac76d0..88f3b8e7 100644 --- a/chromeos/ash/components/drivefs/mojom/drivefs.mojom +++ b/chromeos/ash/components/drivefs/mojom/drivefs.mojom
@@ -209,7 +209,17 @@ OnMirrorSyncingStatusUpdate(SyncingStatus status); }; -// Next MinVersion: 7 +[Extensible] +enum CSESupport { + // Do not show CSE files in the mounted file system. + [Default] kNone, + + // Show CSE files in the mounted file system, but don't allow to read/write + // them: any attempt to open such a file will result in an error. + kListing, +}; + +// Next MinVersion: 8 struct DriveFsConfiguration { string user_email; @@ -234,6 +244,13 @@ // the |drive-fs-chrome-networking| flag. [MinVersion=6] bool enable_cros_network = false; + + // The level of CSE files support Chrome expects from DriveFS and can handle. + // CSE stands for Client-Side Encryption and is an enterprise technology to + // encrypt data with a key not accessible by Google. + // See more: https://support.google.com/a/answer/10741897 + [MinVersion=7] + CSESupport cse_support = kNone; }; enum AccessTokenStatus {
diff --git a/chromeos/ash/components/trial_group/trial_group_checker.cc b/chromeos/ash/components/trial_group/trial_group_checker.cc index 77fd603..2a33ab0c7 100644 --- a/chromeos/ash/components/trial_group/trial_group_checker.cc +++ b/chromeos/ash/components/trial_group/trial_group_checker.cc
@@ -13,6 +13,7 @@ #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/url_response_head.mojom.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace { @@ -58,13 +59,14 @@ return; } - base::Value* member_status = membership_info->FindKey("membership_info"); - if (member_status == nullptr || !member_status->is_int()) { + absl::optional<int> member_status = + membership_info->GetDict().FindInt("membership_info"); + if (!member_status) { std::move(callback_).Run(false); return; } - bool is_member = (member_status->GetInt() == kIsMember); + bool is_member = (member_status.value() == kIsMember); std::move(callback_).Run(is_member); }
diff --git a/chromeos/dbus/dlp/dlp_client.cc b/chromeos/dbus/dlp/dlp_client.cc index 0a21dc9..15f4e50 100644 --- a/chromeos/dbus/dlp/dlp_client.cc +++ b/chromeos/dbus/dlp/dlp_client.cc
@@ -252,6 +252,10 @@ void NameOwnerChangedReceived(const std::string& old_owner, const std::string& new_owner) { is_alive_ = false; + // Do not notify if the service was shut down, only if a new one is started. + if (new_owner.empty()) { + return; + } for (auto& observer : observers_) { observer.DlpDaemonRestarted(); }
diff --git a/chromeos/lacros/lacros_service.h b/chromeos/lacros/lacros_service.h index d63dba5a..ddf92606 100644 --- a/chromeos/lacros/lacros_service.h +++ b/chromeos/lacros/lacros_service.h
@@ -262,10 +262,19 @@ // function, and is robust against unavailability. SystemIdleCache* system_idle_cache() { return system_idle_cache_.get(); } - // Returns the version for an ash interface with a given UUID. Returns -1 if - // the interface is not found. This is a synchronous version of - // mojo::Remote::QueryVersion. It relies on Ash M88. Features that need to - // work on M87 or older should not use this. + // Returns the version for an ash interface with a given mojom interface, + // or -1 if not found. + // This is synchronous version of mojo::Remote::QueryVersion for crosapi + // interfaces. + // + // Example code: + // LacrosService::Get()->GetInterfaceVersion<crosapi::mojom::Arc>(); + template <typename T> + int GetInterfaceVersion() const { + return GetInterfaceVersion(T::Uuid_); + } + + // Similar to Above, but taking UUID. int GetInterfaceVersion(base::Token interface_uuid) const; using Crosapi = crosapi::mojom::Crosapi;
diff --git a/chromeos/lacros/lacros_test_helper.cc b/chromeos/lacros/lacros_test_helper.cc index fc25857..1ae5b6d 100644 --- a/chromeos/lacros/lacros_test_helper.cc +++ b/chromeos/lacros/lacros_test_helper.cc
@@ -13,8 +13,9 @@ base::Version GetAshVersion() { constexpr int min_mojo_version = crosapi::mojom::TestController::kGetAshVersionMinVersion; - if (chromeos::LacrosService::Get()->GetInterfaceVersion( - crosapi::mojom::TestController::Uuid_) < min_mojo_version) { + if (chromeos::LacrosService::Get() + ->GetInterfaceVersion<crosapi::mojom::TestController>() < + min_mojo_version) { return base::Version({0, 0, 0, 0}); }
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index 628a11ac..ac862d1 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">اسم نقطة وصول جديد</translation> <translation id="4093865285251893588">صورة الملف الشخصي</translation> <translation id="409427325554347132">حفظ تفاصيل الاختبار</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">اختيار ألبوم <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">لوحة لمس USB</translation> <translation id="4117637339509843559">الوضع الداكن</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">تأكيد كلمة المرور الجديدة</translation> <translation id="7701040980221191251">لا يوجد</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">عدد مرات تفريغ البطارية وشحنها</translation> <translation id="7747039790905080783">المفتاح المشترَك مسبقًا</translation> <translation id="7762130827864645708">تم تغيير كلمة المرور بنجاح. يُرجى استخدام كلمة المرور الجديدة من الآن فصاعدًا.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">يُرجى الانتظار بضع دقائق فقط…</translation> <translation id="8508640263392900755">تفاصيل APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">قد يتطلّب مشغّل شبكة الجوّال تفعيل هذا الخيار للاتصال بالشبكة التابعة له. يُرجى التواصل مع مشغّل شبكة الجوّال للاطّلاع على التفاصيل.</translation> <translation id="8576249514688522074">غير مهيأة</translation> <translation id="8620617069779373398">حالة التجوال</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb index afd0985d..7dbf9187 100644 --- a/chromeos/strings/chromeos_strings_ca.xtb +++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN nou</translation> <translation id="4093865285251893588">Imatge de perfil</translation> <translation id="409427325554347132">Desa els detalls de la prova</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Selecciona l'àlbum <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">Ratolí tàctil USB</translation> <translation id="4117637339509843559">Mode fosc</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Confirma la contrasenya nova</translation> <translation id="7701040980221191251">Cap</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Nombre de cicles</translation> <translation id="7747039790905080783">Clau precompartida</translation> <translation id="7762130827864645708">La contrasenya s'ha canviat correctament. Utilitza la contrasenya nova a partir d'ara.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Només queden uns quants minuts...</translation> <translation id="8508640263392900755">Detalls de l'APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">El teu operador pot requerir aquesta opció per connectar-te a la seva xarxa. Contacta-hi per obtenir-ne més informació.</translation> <translation id="8576249514688522074">No s'ha inicialitzat</translation> <translation id="8620617069779373398">Estat d'itinerància</translation>
diff --git a/chromeos/strings/chromeos_strings_cy.xtb b/chromeos/strings/chromeos_strings_cy.xtb index a0b4e75..8e6542e 100644 --- a/chromeos/strings/chromeos_strings_cy.xtb +++ b/chromeos/strings/chromeos_strings_cy.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN newydd</translation> <translation id="4093865285251893588">Llun proffil</translation> <translation id="409427325554347132">Cadw manylion y prawf</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Dewiswch albwm <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">Sgrîn gyffwrdd USB</translation> <translation id="4117637339509843559">Modd tywyll</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Cadarnhau cyfrinair newydd</translation> <translation id="7701040980221191251">Dim</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Cyfrif cylch gwefru</translation> <translation id="7747039790905080783">Allwedd a rannwyd ymlaen llaw</translation> <translation id="7762130827864645708">Gwnaethoch newid eich cyfrinair yn llwyddiannus. Defnyddiwch y cyfrinair newydd o hyn ymlaen.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Ychydig funudau yn rhagor...</translation> <translation id="8508640263392900755">Manylion APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Mae'n bosib y bydd eich cludwr yn gofyn am gysylltu â'ch rhwydwaith. Cysylltwch â'ch cludwr am fanylion.</translation> <translation id="8576249514688522074">Heb ei gychwyn</translation> <translation id="8620617069779373398">Statws crwydro</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb index 96fe56d0f..4ddfe8e 100644 --- a/chromeos/strings/chromeos_strings_et.xtb +++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Uus APN</translation> <translation id="4093865285251893588">Profiilipilt</translation> <translation id="409427325554347132">Salvesta testi üksikasjad</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Valige album <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">USB-puuteplaat</translation> <translation id="4117637339509843559">Tume režiim</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Kinnitage uus parool</translation> <translation id="7701040980221191251">Pole</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Tsüklite arv</translation> <translation id="7747039790905080783">Eeljagatud võti</translation> <translation id="7762130827864645708">Parooli muutmine õnnestus. Edaspidi kasutage uut parooli.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Veel mõni minut …</translation> <translation id="8508640263392900755">APN-i üksikasjad</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Teie operaator võib võrguga ühendamiseks seda valikut nõuda. Lisateavet küsige operaatorilt.</translation> <translation id="8576249514688522074">Lähtestamata</translation> <translation id="8620617069779373398">Rändluse olek</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb index 282d577..0775a56 100644 --- a/chromeos/strings/chromeos_strings_eu.xtb +++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN berria</translation> <translation id="4093865285251893588">Profileko irudia</translation> <translation id="409427325554347132">Gorde probaren xehetasunak</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Hautatu <ph name="TITLE" /> (<ph name="DESC" />) albuma</translation> <translation id="4111761024568264522">USB bidezko ukipen-panela</translation> <translation id="4117637339509843559">Modu iluna</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Berretsi pasahitz berria</translation> <translation id="7701040980221191251">Bat ere ez</translation> <translation id="7705524343798198388">VPNa</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Ziklo kopurua</translation> <translation id="7747039790905080783">Aurrez partekatutako gakoa</translation> <translation id="7762130827864645708">Aldatu da pasahitza. Aurrerantzean, erabili pasahitz berria.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Minutu gutxi batzuk baino ez…</translation> <translation id="8508640263392900755">APNaren xehetasunak</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Baliteke zure operadoreak aukera hau eskatzea haren sarera konektatzeko. Horri buruzko xehetasunak lortzeko, jarri operadorearekin harremanetan.</translation> <translation id="8576249514688522074">Hasieratu gabe</translation> <translation id="8620617069779373398">Ibiltaritza-egoera</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb index bed4e13..d3baa94 100644 --- a/chromeos/strings/chromeos_strings_id.xtb +++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN baru</translation> <translation id="4093865285251893588">Gambar profil</translation> <translation id="409427325554347132">Simpan detail pengujian</translation> +<translation id="4095829376260267438">WPA2/WPA3</translation> <translation id="4110686435123617899">Pilih album <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">Touchpad USB</translation> <translation id="4117637339509843559">Mode gelap</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Konfirmasi sandi baru</translation> <translation id="7701040980221191251">Tidak ada</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Jumlah siklus</translation> <translation id="7747039790905080783">Kunci yang dibagikan sebelumnya</translation> <translation id="7762130827864645708">Perubahan sandi Anda berhasil. Gunakan sandi baru mulai sekarang.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Tinggal beberapa menit lagi...</translation> <translation id="8508640263392900755">Detail APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Operator Anda mungkin memerlukan opsi ini untuk terhubung ke jaringan. Hubungi operator untuk mengetahui detailnya.</translation> <translation id="8576249514688522074">Tidak diinisialisasi</translation> <translation id="8620617069779373398">Status roaming</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb index 84cd0ce..d25ed36d 100644 --- a/chromeos/strings/chromeos_strings_ko.xtb +++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">새 APN</translation> <translation id="4093865285251893588">프로필 이미지</translation> <translation id="409427325554347132">테스트 세부정보 저장</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">앨범 <ph name="TITLE" /> <ph name="DESC" /> 선택</translation> <translation id="4111761024568264522">USB 터치패드</translation> <translation id="4117637339509843559">어두운 모드</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">새 비밀번호 확인</translation> <translation id="7701040980221191251">없음</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">사이클 수</translation> <translation id="7747039790905080783">사전 공유 키</translation> <translation id="7762130827864645708">비밀번호가 변경되었습니다. 지금부터 새로운 비밀번호를 사용해 주세요.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">몇 분 정도밖에 남지 않았습니다...</translation> <translation id="8508640263392900755">APN 세부정보</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">이동통신사에서 네트워크에 연결하기 위해 이 옵션을 요구할 수 있습니다. 자세한 내용은 이동통신사에 문의하세요.</translation> <translation id="8576249514688522074">초기화되지 않음</translation> <translation id="8620617069779373398">로밍 상태</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb index 22ec506..c8dc63f 100644 --- a/chromeos/strings/chromeos_strings_lt.xtb +++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Naujas APN</translation> <translation id="4093865285251893588">Profilio nuotrauka</translation> <translation id="409427325554347132">Išsaugoti išsamią testo informaciją</translation> +<translation id="4095829376260267438">WPA2 / WPA3</translation> <translation id="4110686435123617899">Pasirinkti albumą „<ph name="TITLE" />“ (<ph name="DESC" />)</translation> <translation id="4111761024568264522">USB jutiklinė dalis</translation> <translation id="4117637339509843559">Tamsus režimas</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Patvirtinkite naują slaptažodį</translation> <translation id="7701040980221191251">Nėra</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Ciklų skaičius</translation> <translation id="7747039790905080783">Paruoštas bendrinti raktas</translation> <translation id="7762130827864645708">Slaptažodis sėkmingai pakeistas. Nuo šiol naudokite naują slaptažodį.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Dar kelios minutės...</translation> <translation id="8508640263392900755">Išsami APN informacija</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Operatoriui gali būti reikalinga ši parinktis, kad būtų galima prisijungti prie tinklo. Jei reikia išsamios informacijos, susisiekite su operatoriumi.</translation> <translation id="8576249514688522074">Neinicijuota</translation> <translation id="8620617069779373398">Tarptinklinio ryšio būsena</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb index c528d28..f090095 100644 --- a/chromeos/strings/chromeos_strings_lv.xtb +++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Jauns APN</translation> <translation id="4093865285251893588">Profila attēls</translation> <translation id="409427325554347132">Saglabāt testa informāciju</translation> +<translation id="4095829376260267438">WPA2/WPA3</translation> <translation id="4110686435123617899">Atlasīt albumu <ph name="TITLE" />: <ph name="DESC" /></translation> <translation id="4111761024568264522">USB skārienpaliktnis</translation> <translation id="4117637339509843559">Tumšais režīms</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Apstipriniet jauno paroli</translation> <translation id="7701040980221191251">Nav</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Ciklu laiks</translation> <translation id="7747039790905080783">Iepriekš kopīgota atslēga</translation> <translation id="7762130827864645708">Parole ir sekmīgi nomainīta. Lūdzu, turpmāk izmantojiet jauno paroli.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Vēl tikai dažas minūtes...</translation> <translation id="8508640263392900755">Informācija par APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Jūsu mobilo sakaru operators var pieprasīt šīs opcijas izmantošanu, lai varētu izveidot savienojumu ar attiecīgā operatora tīklu. Lai iegūtu detalizētu informāciju, sazinieties ar savu mobilo sakaru operatoru.</translation> <translation id="8576249514688522074">Pārbaude nav sākta</translation> <translation id="8620617069779373398">Viesabonēšanas statuss</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb index b20f80f..6bf66ad 100644 --- a/chromeos/strings/chromeos_strings_ml.xtb +++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">പുതിയ APN</translation> <translation id="4093865285251893588">പ്രൊഫൈൽ ചിത്രം</translation> <translation id="409427325554347132">ടെസ്റ്റ് വിശദാംശങ്ങൾ സംരക്ഷിക്കുക</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> ആൽബം തിരഞ്ഞെടുക്കുക</translation> <translation id="4111761024568264522">USB ടച്ച്പാഡ്</translation> <translation id="4117637339509843559">ഡാർക്ക് മോഡ്</translation> @@ -718,6 +719,7 @@ <translation id="7690294790491645610">പുതിയ പാസ്വേഡ് സ്ഥിരീകരിക്കുക</translation> <translation id="7701040980221191251">ഒന്നുമില്ല</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">സൈക്കിളിന്റെ എണ്ണം</translation> <translation id="7747039790905080783">മുമ്പ് പങ്കിട്ട കീ</translation> <translation id="7762130827864645708">നിങ്ങൾ പാസ്വേഡ് മാറ്റി. ഇപ്പോൾ മുതൽ പുതിയ പാസ്വേഡ് ഉപയോഗിക്കുക.</translation> @@ -801,6 +803,7 @@ <translation id="8503836310948963452">കുറച്ച് മിനിറ്റുകൾ കൂടി മാത്രം…</translation> <translation id="8508640263392900755">APN വിശദാംശങ്ങൾ</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">നിങ്ങളുടെ സേവനദാതാവിന് അവരുടെ നെറ്റ്വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യാൻ ഈ ഓപ്ഷൻ ആവശ്യമായി വന്നേക്കാം. വിശദാംശങ്ങൾക്ക് നിങ്ങളുടെ സേവനദാതാവുമായി ബന്ധപ്പെടുക.</translation> <translation id="8576249514688522074">പ്രവർത്തനമാരംഭിച്ചിട്ടില്ല</translation> <translation id="8620617069779373398">റോമിംഗ് നില</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb index d607935..fafe389 100644 --- a/chromeos/strings/chromeos_strings_mn.xtb +++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Шинэ APN</translation> <translation id="4093865285251893588">Профайлын зураг</translation> <translation id="409427325554347132">Туршилтын дэлгэрэнгүйг хадгалах</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899"><ph name="TITLE" /> цомгийг <ph name="DESC" /> сонгох</translation> <translation id="4111761024568264522">USB мэдрэгч самбар</translation> <translation id="4117637339509843559">Бараан горим</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Шинэ нууц үг баталгаажуулна уу</translation> <translation id="7701040980221191251">Тодорхойгүй</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Мөчлөгийн тоо</translation> <translation id="7747039790905080783">Урьдчилан хуваалцсан түлхүүр</translation> <translation id="7762130827864645708">Таны нууц үгийг амжилттай өөрчиллөө. Одооноос шинэ нууц үгийг ашиглана уу.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Цөөн хэдэн минут хүлээнэ үү...</translation> <translation id="8508640263392900755">APN-н дэлгэрэнгүй</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Та оператор компанийнхаа сүлжээнд холбогдохын тулд тэд танаас энэ сонголтыг шаардаж болзошгүй. Дэлгэрэнгүй мэдээлэл авах бол оператор компанитайгаа холбогдоно уу.</translation> <translation id="8576249514688522074">Бэлтгэгдээгүй</translation> <translation id="8620617069779373398">Роумингийн төлөв</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 73c8da8b..0bcb482 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN Baharu</translation> <translation id="4093865285251893588">Imej profil</translation> <translation id="409427325554347132">Simpan butiran ujian</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Pilih album <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">Pad sentuh USB</translation> <translation id="4117637339509843559">Mod gelap</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Sahkan kata laluan baharu</translation> <translation id="7701040980221191251">Tiada</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Kiraan kitaran</translation> <translation id="7747039790905080783">Kunci prakongsi</translation> <translation id="7762130827864645708">Penukaran kata laluan anda berjaya. Sila gunakan kata laluan baharu mulai sekarang.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Hanya beberapa minit lagi…</translation> <translation id="8508640263392900755">Butiran APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Pembawa anda mungkin memerlukan pilihan ini untuk menyambung kepada rangkaian mereka. Hubungi pembawa anda untuk mendapatkan butiran.</translation> <translation id="8576249514688522074">Tidak diasalkan</translation> <translation id="8620617069779373398">Status perayauan</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb index bff5b0e..14d35c8 100644 --- a/chromeos/strings/chromeos_strings_my.xtb +++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN အသစ်</translation> <translation id="4093865285251893588">ပရိုဖိုင်ပုံ</translation> <translation id="409427325554347132">စာသားအသေးစိတ် သိမ်းရန်</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> အယ်လ်ဘမ်ရွေးရန်</translation> <translation id="4111761024568264522">USB တာ့ချ်ပက်</translation> <translation id="4117637339509843559">အမှောင်မုဒ်</translation> @@ -718,6 +719,7 @@ <translation id="7690294790491645610">စကားဝှက်အသစ်ကို အတည်ပြုပါ</translation> <translation id="7701040980221191251">မရှိ</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">သုံးစွဲမှု အကြိမ်ရေ</translation> <translation id="7747039790905080783">ကြိုတင်မျှဝေထားသည့် ကီး</translation> <translation id="7762130827864645708">သင်၏စကားဝှက်ကို ပြောင်းပြီးပြီ။ ယခုမှစ၍ စကားဝှက်အသစ် သုံးပါ။</translation> @@ -801,6 +803,7 @@ <translation id="8503836310948963452">နောက်ထပ် မိနစ်အနည်းငယ်သာ လိုသည်…</translation> <translation id="8508640263392900755">APN အသေးစိတ်</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">သင့်မိုဘိုင်းဖုန်းကုမ္ပဏီသည် ၎င်း၏ကွန်ရက်သို့ ချိတ်ဆက်ရန် ဤရွေးချယ်စရာကို သတ်မှတ်ထားနိုင်သည်။ အသေးစိတ်အတွက် သင့်မိုဘိုင်းဖုန်းကုမ္ပဏီကို ဆက်သွယ်ပါ။</translation> <translation id="8576249514688522074">စတင်မထားပါ</translation> <translation id="8620617069779373398">ကွန်ရက်ပြင်ပဒေတာသုံးခြင်း အခြေအနေ</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb index deccebf..9282263 100644 --- a/chromeos/strings/chromeos_strings_ne.xtb +++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">नयाँ APN</translation> <translation id="4093865285251893588">प्रोफाइल फोटो</translation> <translation id="409427325554347132">जाँचसम्बन्धी विवरण सेभ गर्नुहोस्</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> एल्बम चयन गर्नुहोस्</translation> <translation id="4111761024568264522">USB टचप्याड</translation> <translation id="4117637339509843559">अँध्यारो मोड</translation> @@ -718,6 +719,7 @@ <translation id="7690294790491645610">नयाँ पासवर्ड पुष्टि गर्नुहोस्</translation> <translation id="7701040980221191251">कुनै पनि होइन</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">साइकल काउन्ट</translation> <translation id="7747039790905080783">अग्रिम रूपमा सेयर गरिएको की</translation> <translation id="7762130827864645708">तपाईंको पासवर्ड परिवर्तन गरिएको छ। कृपया अबदेखि नयाँ पासवर्ड प्रयोग गर्नुहोस्।</translation> @@ -801,6 +803,7 @@ <translation id="8503836310948963452">थप केही मिनेट मात्र पर्खनुहोस्…</translation> <translation id="8508640263392900755">APN सम्बन्धी विवरण</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">तपाईंको मोबाइल सेवा प्रदायकले सो सेवा प्रदायकको नेटवर्कमा कनेक्ट गर्न सकोस् भन्नाका लागि तपाईंले यो विकल्प अन गर्नु पर्ने हुन सक्छ। यससम्बन्धी थप जानकारी प्राप्त गर्न आफ्नो मोबाइल सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</translation> <translation id="8576249514688522074">सुरु गरिएको छैन</translation> <translation id="8620617069779373398">रोमिङको स्थिति</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb index 2bf8fa7..c21b425 100644 --- a/chromeos/strings/chromeos_strings_nl.xtb +++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Nieuwe APN</translation> <translation id="4093865285251893588">Profielafbeelding</translation> <translation id="409427325554347132">Testgegevens opslaan</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">Album selecteren: <ph name="TITLE" /> (<ph name="DESC" />)</translation> <translation id="4111761024568264522">USB-touchpad</translation> <translation id="4117637339509843559">Donkere modus</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Nieuw wachtwoord bevestigen</translation> <translation id="7701040980221191251">Geen</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Aantal oplaadbeurten</translation> <translation id="7747039790905080783">Eerder gedeelde sleutel</translation> <translation id="7762130827864645708">Je wachtwoord is gewijzigd. Gebruik vanaf nu je nieuwe wachtwoord.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Nog een paar minuten...</translation> <translation id="8508640263392900755">APN-gegevens</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Je provider kan deze optie vereisen om verbinding te maken met hun netwerk. Neem contact op met je provider voor meer informatie.</translation> <translation id="8576249514688522074">Niet geïnitialiseerd</translation> <translation id="8620617069779373398">Roamingstatus</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb index da7fd5c..a2637d1 100644 --- a/chromeos/strings/chromeos_strings_ro.xtb +++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN nou</translation> <translation id="4093865285251893588">Imagine de profil</translation> <translation id="409427325554347132">Salvează detaliile testului</translation> +<translation id="4095829376260267438">WPA2 / WPA3</translation> <translation id="4110686435123617899">Selectează albumul <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">Touchpad USB</translation> <translation id="4117637339509843559">Modul întunecat</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Confirmă noua parolă</translation> <translation id="7701040980221191251">Niciuna</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Numărul de cicluri</translation> <translation id="7747039790905080783">Cheie predistribuită</translation> <translation id="7762130827864645708">Parola a fost schimbată. Folosește noua parolă de acum înainte.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Mai sunt câteva minute…</translation> <translation id="8508640263392900755">Detalii APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Operatorul poate solicita această opțiune ca să te conectezi la rețeaua respectivă. Contactează operatorul pentru detalii.</translation> <translation id="8576249514688522074">Neinițializată</translation> <translation id="8620617069779373398">Stare roaming</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb index 6c227746..4ade17e 100644 --- a/chromeos/strings/chromeos_strings_th.xtb +++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">APN ใหม่</translation> <translation id="4093865285251893588">รูปโปรไฟล์</translation> <translation id="409427325554347132">บันทึกรายละเอียดการทดสอบ</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899">เลือกอัลบั้ม <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">ทัชแพด USB</translation> <translation id="4117637339509843559">โหมดมืด</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">ยืนยันรหัสผ่านใหม่</translation> <translation id="7701040980221191251">ไม่มี</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">จำนวนรอบ</translation> <translation id="7747039790905080783">คีย์ที่แชร์ล่วงหน้า</translation> <translation id="7762130827864645708">เปลี่ยนรหัสผ่านสำเร็จ โปรดใช้รหัสผ่านใหม่จากนี้ไป</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">อีกเพียงไม่กี่นาทีเท่านั้น...</translation> <translation id="8508640263392900755">รายละเอียด APN</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">ผู้ให้บริการอาจกำหนดให้ใช้ตัวเลือกนี้เพื่อให้เชื่อมต่อเครือข่ายของตนได้ โปรดติดต่อสอบถามรายละเอียดจากผู้ให้บริการ</translation> <translation id="8576249514688522074">ยังไม่ได้เริ่มต้น</translation> <translation id="8620617069779373398">สถานะการโรมมิ่ง</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index 42774a6e..800554b 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">Yeni APN</translation> <translation id="4093865285251893588">Profil resmi</translation> <translation id="409427325554347132">Test ayrıntılarını kaydet</translation> +<translation id="4095829376260267438">WPA2WPA3</translation> <translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> albümünü seçin</translation> <translation id="4111761024568264522">USB dokunmatik alan</translation> <translation id="4117637339509843559">Koyu mod</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">Yeni şifreyi doğrula</translation> <translation id="7701040980221191251">Yok</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">Şarj döngüsü sayısı</translation> <translation id="7747039790905080783">Önceden paylaşılan anahtar</translation> <translation id="7762130827864645708">Şifre değişikliğiniz başarıyla tamamlandı. Lütfen bundan sonra yeni şifreyi kullanın.</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">Sadece birkaç dakika kaldı…</translation> <translation id="8508640263392900755">APN ayrıntıları</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">Operatörünüz, ağlarına bağlanmak için bu seçeneği gerektirebilir. Ayrıntılı bilgiler için operatörünüzle iletişime geçin.</translation> <translation id="8576249514688522074">Başlatılmamış</translation> <translation id="8620617069779373398">Dolaşım durumu</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb index c8764f3..f9ec2ec 100644 --- a/chromeos/strings/chromeos_strings_zh-CN.xtb +++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">新建 APN</translation> <translation id="4093865285251893588">个人资料图片</translation> <translation id="409427325554347132">保存测试详细信息</translation> +<translation id="4095829376260267438">WPA2/WPA3</translation> <translation id="4110686435123617899">选择影集“<ph name="TITLE" />”,<ph name="DESC" /></translation> <translation id="4111761024568264522">USB 触控板</translation> <translation id="4117637339509843559">深色模式</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">再次输入新密码</translation> <translation id="7701040980221191251">无</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">循环计数</translation> <translation id="7747039790905080783">预共享的密钥</translation> <translation id="7762130827864645708">您已成功更改了密码。从现在开始,请改用这个新密码。</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">只需再等几分钟…</translation> <translation id="8508640263392900755">APN 详细信息</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">您的运营商可能会要求您启用此选项以连接到其网络。如需了解详情,请联系您的运营商。</translation> <translation id="8576249514688522074">未初始化</translation> <translation id="8620617069779373398">漫游状态</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb index d5a93875..57a248e 100644 --- a/chromeos/strings/chromeos_strings_zh-HK.xtb +++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">新增 APN</translation> <translation id="4093865285251893588">個人檔案圖片</translation> <translation id="409427325554347132">儲存測試詳細資料</translation> +<translation id="4095829376260267438">WPA2 和 WPA3</translation> <translation id="4110686435123617899">揀相簿 <ph name="TITLE" /> <ph name="DESC" /></translation> <translation id="4111761024568264522">USB 觸控板</translation> <translation id="4117637339509843559">暗光模式</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">確認新密碼</translation> <translation id="7701040980221191251">沒有</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">週期數</translation> <translation id="7747039790905080783">預先共用密鑰</translation> <translation id="7762130827864645708">已成功變更您的密碼。請從現在開始改用新的密碼。</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">只需多幾分鐘…</translation> <translation id="8508640263392900755">APN 詳情</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">流動網絡供應商可能會要求您必須選擇此選項,才能連接他們的網絡。詳情請聯絡流動網絡供應商。</translation> <translation id="8576249514688522074">未初始化</translation> <translation id="8620617069779373398">漫遊狀態</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb index fff2168..988b1990 100644 --- a/chromeos/strings/chromeos_strings_zh-TW.xtb +++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -318,6 +318,7 @@ <translation id="4060260348856573701">新增 APN</translation> <translation id="4093865285251893588">個人資料圖片</translation> <translation id="409427325554347132">儲存測試詳細資料</translation> +<translation id="4095829376260267438">WPA2 和 WPA3</translation> <translation id="4110686435123617899">選取相簿「<ph name="TITLE" />,<ph name="DESC" />」</translation> <translation id="4111761024568264522">USB 觸控板</translation> <translation id="4117637339509843559">深色模式</translation> @@ -719,6 +720,7 @@ <translation id="7690294790491645610">確認新密碼</translation> <translation id="7701040980221191251">無</translation> <translation id="7705524343798198388">VPN</translation> +<translation id="7716280709122323042">WPA3</translation> <translation id="773153675489693198">週期數</translation> <translation id="7747039790905080783">預先共用金鑰</translation> <translation id="7762130827864645708">已成功變更你的密碼。請從現在開始改用新的密碼。</translation> @@ -802,6 +804,7 @@ <translation id="8503836310948963452">請稍待幾分鐘…</translation> <translation id="8508640263392900755">APN 詳細資料</translation> <translation id="8528615187455571738">Crosvm</translation> +<translation id="8557447961879934694">WPA2</translation> <translation id="8575298406870537639">你的電信業者可能會要求你必須選擇此選項才能連線至他們的網路。如要瞭解詳情,請洽詢你的電信業者。</translation> <translation id="8576249514688522074">未初始化</translation> <translation id="8620617069779373398">漫遊狀態</translation>
diff --git a/components/autofill/core/browser/payments/credit_card_save_manager.h b/components/autofill/core/browser/payments/credit_card_save_manager.h index 9c77ad50..65c6892 100644 --- a/components/autofill/core/browser/payments/credit_card_save_manager.h +++ b/components/autofill/core/browser/payments/credit_card_save_manager.h
@@ -303,8 +303,8 @@ const raw_ptr<AutofillClient> client_; - // Handles Payments service requests. - // Owned by BrowserAutofillManager. + // Handles Payments service requests. Weak ref. In Chrome, it's owned by + // ChromeAutofillClient and ChromeAutofillClientIOS. raw_ptr<payments::PaymentsClient> payments_client_; std::string app_locale_;
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc index 857d93d..9da9210d 100644 --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc
@@ -302,6 +302,11 @@ "AutofillExtractAllDatalists", base::FEATURE_DISABLED_BY_DEFAULT); +// Enables support to submit feedback on Autofill. Used only in Desktop. +BASE_FEATURE(kAutofillFeedback, + "AutofillFeedback", + base::FEATURE_DISABLED_BY_DEFAULT); + // When enabled, HTML autocomplete values that do not map to any known type, but // look reasonable (e.g. contain "address") are simply ignored. Without the // feature, Autofill is disabled on such fields.
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h index 48fc1f8..bf9992f 100644 --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h
@@ -104,6 +104,8 @@ COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillEnableSupportForPhoneNumberTrunkTypes); COMPONENT_EXPORT(AUTOFILL) +BASE_DECLARE_FEATURE(kAutofillFeedback); +COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillIgnoreUnmappableAutocompleteValues); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillImprovedLabelForInference);
diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn index ad2c054..70a0824 100644 --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn
@@ -76,7 +76,6 @@ "java/res/layout/button_preference_button.xml", "java/res/layout/button_preference_layout.xml", "java/res/layout/checkable_image_view_widget.xml", - "java/res/layout/chrome_managed_preference.xml", "java/res/layout/clickable_spans_text_message_preference_layout.xml", "java/res/layout/image_button_widget.xml", "java/res/layout/long_summary_text_message_preference.xml", @@ -94,6 +93,20 @@ ] } +# To be included by embedders that need to show a disclaimer that settings are +# managed by an Enterprise admin. +android_resources("managed_prefs_java_resources") { + deps = [ + ":java_resources", + "//components/browser_ui/styles/android:java_resources", + "//components/browser_ui/widget/android:java_resources", + "//third_party/androidx:androidx_preference_preference_java", + ] + sources = [ + "java/managed_prefs_java_resources/layout/chrome_managed_preference.xml", + ] +} + android_library("unit_device_javatests") { testonly = true sources = [ @@ -107,6 +120,7 @@ ":java", ":java_resources", ":java_test_resources", + ":managed_prefs_java_resources", ":test_support_java", "//base:base_java", "//base:base_java_test_support", @@ -156,6 +170,7 @@ ] deps = [ ":java_resources", + ":managed_prefs_java_resources", "//third_party/androidx:androidx_preference_preference_java", "//ui/android:ui_java_resources", ]
diff --git a/components/browser_ui/settings/android/java/res/layout/chrome_managed_preference.xml b/components/browser_ui/settings/android/java/managed_prefs_java_resources/layout/chrome_managed_preference.xml similarity index 100% rename from components/browser_ui/settings/android/java/res/layout/chrome_managed_preference.xml rename to components/browser_ui/settings/android/java/managed_prefs_java_resources/layout/chrome_managed_preference.xml
diff --git a/components/browser_ui/settings/android/java/res/values/ids.xml b/components/browser_ui/settings/android/java/res/values/ids.xml index 742166e..2b1f71b7 100644 --- a/components/browser_ui/settings/android/java/res/values/ids.xml +++ b/components/browser_ui/settings/android/java/res/values/ids.xml
@@ -5,6 +5,12 @@ found in the LICENSE file. --> <resources> + <!-- TODO(crbug.com/1407188): Remove this ID definition once it's no longer needs to be known + by modules in targets that WebLayer depends on. Some alternatives: (1) Move + `ManagedPreferencesUtils` to its own target, so that it's not imported by WebLayer; + (2) Move the logic that depends on this ID to `ManagedPreferenceDelegate`. + --> + <item type="id" name="managed_disclaimer_text" /> <!-- Menu items IDs in Settings --> <item type="id" name="menu_id_general_help" /> <item type="id" name="menu_id_targeted_help" />
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferenceDelegate.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferenceDelegate.java index d9acfdc..249d349 100644 --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferenceDelegate.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferenceDelegate.java
@@ -4,6 +4,7 @@ package org.chromium.components.browser_ui.settings; +import androidx.annotation.LayoutRes; import androidx.preference.Preference; /** @@ -50,6 +51,18 @@ boolean doesProfileHaveMultipleCustodians(); /** + * Returns the layout resource to be used by default for preferences that can be managed, when + * a custom layout is not defined. Return value 0 can be used to indicate that Android's default + * preference layout should be used. + * + * <p>Embedders should define the default behavior that should apply to all preferences that + * can be managed. This way, only embedders that do require custom layouts to pay the price in + * binary size increase due to dependencies. + */ + @LayoutRes + int defaultPreferenceLayoutResource(); + + /** * Returns whether clicking on the given Preference is disabled due to a policy. The default * implementation just returns whether the preference is not modifiable by the user. * However, some preferences that are controlled by policy may still be clicked to show an
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtils.java index ca91c47..cff696f 100644 --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtils.java
@@ -123,12 +123,26 @@ * @param delegate The delegate that controls whether the preference is managed. May be null, * then this method does nothing. * @param preference The Preference that is being initialized. + * @param allowManagedIcon Whether the icon view should show the managed icon when the + * preference is managed. + * @param hasCustomLayout Whether the preference defines its own layout or should use the + * embedder's default layout. */ - public static void initPreference( - @Nullable ManagedPreferenceDelegate delegate, Preference preference) { + public static void initPreference(@Nullable ManagedPreferenceDelegate delegate, + Preference preference, boolean allowManagedIcon, boolean hasCustomLayout) { if (delegate == null) return; - if (!(preference instanceof ChromeImageViewPreference)) { + // Embedders may define its own default layout for preferences, which can only be applied + // if the preference doesn't use a custom layout. + if (!hasCustomLayout) { + @LayoutRes + int layoutResource = delegate.defaultPreferenceLayoutResource(); + if (layoutResource != 0) { + preference.setLayoutResource(layoutResource); + } + } + + if (allowManagedIcon) { preference.setIcon(getManagedIconDrawable(delegate, preference)); } @@ -290,26 +304,21 @@ } /** - * Use {@code chrome_managed_preference} as the preference layout if a custom layout has not - * been set. That situation happens for example in the Sync and Google service preferences in - * the Main Settings menu, that define their own layouts and use this class to leverage icon - * tinting. Also, those preferences don't need to be managed, so there is no need to change - * their layouts to include the managed disclaimer. + * Checks if a custom layout was defined for the preference. For example, Sync and Google + * service preferences in the Main Settings menu define their own layouts and use managed + * preference classes to leverage icon tinting. Also, those preferences don't need to be + * managed, so there is no need to change their layouts to include the managed disclaimer. * @param context The context for a given preference. * @param attrs The attributes of the XML tag that is inflating the view. - * @return The layout resource to be used by a managed preference. + * @return Whether a custom layout was defined. */ - public static @LayoutRes int getLayoutResourceForPreference( - Context context, AttributeSet attrs) { + public static boolean isCustomLayoutApplied(Context context, AttributeSet attrs) { final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference); // Take the custom layout defined via either {@code Preference_layout} or - // {@code Preference_android_layout}. If neither is set, use - // {@code chrome_managed_preference} as fallback. - @LayoutRes - int fallback = a.getResourceId( - R.styleable.Preference_android_layout, R.layout.chrome_managed_preference); - return a.getResourceId(R.styleable.Preference_layout, fallback); + // {@code Preference_android_layout}. + return a.getResourceId(R.styleable.Preference_android_layout, 0) != 0 + || a.getResourceId(R.styleable.Preference_layout, 0) != 0; } /**
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBaseCheckBoxPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBaseCheckBoxPreference.java index 304f62c6..f0c425c 100644 --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBaseCheckBoxPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBaseCheckBoxPreference.java
@@ -29,7 +29,8 @@ */ public void setManagedPreferenceDelegate(ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + ManagedPreferencesUtils.initPreference( + mManagedPrefDelegate, this, /*allowManagedIcon=*/true, /*hasCustomLayout=*/true); } @Override
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java index f0d17e3..8e830d0f 100644 --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeBasePreference.java
@@ -20,18 +20,22 @@ /** * A preference that supports some Chrome-specific customizations: * - * 1. This preference supports being managed. If this preference is managed (as determined by its - * ManagedPreferenceDelegate), it updates its appearance and behavior appropriately: shows an - * enterprise icon, disables clicks, etc. + * <p>This preference supports being managed. If this preference is managed (as determined by its + * ManagedPreferenceDelegate), it updates its appearance and behavior appropriately: shows an + * enterprise icon, disables clicks, etc. * - * 2. This preference can have a multiline title. - * 3. This preference can set an icon color in XML through app:iconTint. Note that if a - * ColorStateList is set, only the default color will be used. + * <p>This preference can have a multiline title. + * + * <p>This preference can set an icon color in XML through app:iconTint. Note that if a + * ColorStateList is set, only the default color will be used. */ public class ChromeBasePreference extends Preference { private ColorStateList mIconTint; private ManagedPreferenceDelegate mManagedPrefDelegate; + /** Indicates if the preference uses a custom layout. */ + private final boolean mHasCustomLayout; + /** * When null, the default Preferences Support Library logic will be used to determine dividers. */ @@ -55,18 +59,14 @@ public ChromeBasePreference(Context context, AttributeSet attrs) { super(context, attrs); - if (SettingsFeatureList.isEnabled( - SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID)) { - setLayoutResource( - ManagedPreferencesUtils.getLayoutResourceForPreference(context, attrs)); - } - setSingleLineTitle(false); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ChromeBasePreference); mIconTint = a.getColorStateList(R.styleable.ChromeBasePreference_iconTint); mUserAction = a.getString(R.styleable.ChromeBasePreference_userAction); a.recycle(); + + mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); } /** @@ -74,7 +74,8 @@ */ public void setManagedPreferenceDelegate(ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this, + /*allowManagedIcon=*/true, /*hasCustomLayout=*/mHasCustomLayout); } @Override
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreference.java index e3aaecc..a7e0b7b 100644 --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreference.java
@@ -81,7 +81,8 @@ */ public void setManagedPreferenceDelegate(@Nullable ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + ManagedPreferencesUtils.initPreference( + mManagedPrefDelegate, this, /*allowManagedIcon=*/false, /*hasCustomLayout=*/true); } @Override
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java index 5f4537a..8c5c7f5c 100644 --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
@@ -26,17 +26,17 @@ @ColorRes private Integer mBackgroundColorRes; + /** Indicates if the preference uses a custom layout. */ + private final boolean mHasCustomLayout; + public ChromeSwitchPreference(Context context) { this(context, null); } public ChromeSwitchPreference(Context context, AttributeSet attrs) { super(context, attrs); - if (SettingsFeatureList.isEnabled( - SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID)) { - setLayoutResource( - ManagedPreferencesUtils.getLayoutResourceForPreference(context, attrs)); - } + + mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); } /** @@ -44,7 +44,8 @@ */ public void setManagedPreferenceDelegate(ManagedPreferenceDelegate delegate) { mManagedPrefDelegate = delegate; - ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this); + ManagedPreferencesUtils.initPreference(mManagedPrefDelegate, this, + /*allowManagedIcon=*/true, /*hasCustomLayout=*/mHasCustomLayout); } @Override
diff --git a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeBasePreferenceTest.java b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeBasePreferenceTest.java index 5ad6bbc..d8acbc3e 100644 --- a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeBasePreferenceTest.java +++ b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeBasePreferenceTest.java
@@ -107,11 +107,9 @@ onView(withId(android.R.id.title)).check(matches(allOf(withText(TITLE), isDisplayed()))); onView(withId(android.R.id.summary)) .check(matches(allOf(withText(SUMMARY), isDisplayed()))); - if (mEnableHighlightManagedPrefDisclaimerAndroid) { - onView(withId(R.id.managed_disclaimer_text)).check(matches(not(isDisplayed()))); - } else { - onView(withId(R.id.managed_disclaimer_text)).check(doesNotExist()); - } + // Unmanaged preferences do not use {@code chrome_managed_preference}, so a disclaimer text + // view does not exist. + onView(withId(R.id.managed_disclaimer_text)).check(doesNotExist()); onView(withId(android.R.id.icon)).check(matches(not(isDisplayed()))); }
diff --git a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreferenceTest.java b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreferenceTest.java index 2714963..376ca01 100644 --- a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreferenceTest.java +++ b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeImageViewPreferenceTest.java
@@ -27,12 +27,14 @@ import org.junit.runner.RunWith; import org.chromium.base.test.BaseJUnit4ClassRunner; +import org.chromium.base.test.util.Batch; import org.chromium.ui.test.util.DisableAnimationsTestRule; /** * Tests of {@link ChromeImageViewPreference}. */ @RunWith(BaseJUnit4ClassRunner.class) +@Batch(Batch.PER_CLASS) public class ChromeImageViewPreferenceTest { private static final String TITLE = "Preference Title"; private static final String SUMMARY = "This is a summary.";
diff --git a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreferenceTest.java b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreferenceTest.java index 2a4f471..20bb090 100644 --- a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreferenceTest.java +++ b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreferenceTest.java
@@ -108,11 +108,9 @@ onView(withId(android.R.id.title)).check(matches(allOf(withText(TITLE), isDisplayed()))); onView(withId(android.R.id.summary)) .check(matches(allOf(withText(SUMMARY), isDisplayed()))); - if (mEnableHighlightManagedPrefDisclaimerAndroid) { - onView(withId(R.id.managed_disclaimer_text)).check(matches(not(isDisplayed()))); - } else { - onView(withId(R.id.managed_disclaimer_text)).check(doesNotExist()); - } + // Unmanaged preferences do not use {@code chrome_managed_preference}, so a disclaimer text + // view does not exist. + onView(withId(R.id.managed_disclaimer_text)).check(doesNotExist()); onView(withId(android.R.id.icon)).check(matches(not(isDisplayed()))); onView(withId(R.id.switchWidget)).check(matches(allOf(isEnabled(), isDisplayed()))); }
diff --git a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtilsTest.java b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtilsTest.java index 07272aa..0d66280 100644 --- a/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtilsTest.java +++ b/components/browser_ui/settings/android/widget/javatests/src/org/chromium/components/browser_ui/settings/ManagedPreferencesUtilsTest.java
@@ -14,6 +14,7 @@ import android.support.test.InstrumentationRegistry; +import androidx.annotation.LayoutRes; import androidx.preference.Preference; import androidx.test.filters.SmallTest; @@ -22,14 +23,15 @@ import org.junit.runner.RunWith; import org.chromium.base.test.BaseJUnit4ClassRunner; +import org.chromium.base.test.util.Batch; +import org.chromium.components.browser_ui.settings.test.R; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.ui.test.util.BlankUiTestActivityTestCase; import org.chromium.ui.widget.Toast; -/** - * Tests of {@link ManagedPreferencesUtils}. - */ +/** Tests of {@link ManagedPreferencesUtils}. */ @RunWith(BaseJUnit4ClassRunner.class) +@Batch(Batch.PER_CLASS) public class ManagedPreferencesUtilsTest extends BlankUiTestActivityTestCase { public static final ManagedPreferenceDelegate UNMANAGED_DELEGATE = new ManagedPreferenceDelegate() { @@ -47,6 +49,11 @@ public boolean doesProfileHaveMultipleCustodians() { return false; } + + @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + return 0; + } }; public static final ManagedPreferenceDelegate POLICY_DELEGATE = @@ -65,6 +72,14 @@ public boolean doesProfileHaveMultipleCustodians() { return false; } + + @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + return SettingsFeatureList.isEnabled( + SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID) + ? R.layout.chrome_managed_preference + : 0; + } }; public static final ManagedPreferenceDelegate SINGLE_CUSTODIAN_DELEGATE = @@ -83,6 +98,14 @@ public boolean doesProfileHaveMultipleCustodians() { return false; } + + @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + return SettingsFeatureList.isEnabled( + SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID) + ? R.layout.chrome_managed_preference + : 0; + } }; public static final ManagedPreferenceDelegate MULTI_CUSTODIAN_DELEGATE = @@ -101,6 +124,14 @@ public boolean doesProfileHaveMultipleCustodians() { return true; } + + @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + return SettingsFeatureList.isEnabled( + SettingsFeatureList.HIGHLIGHT_MANAGED_PREF_DISCLAIMER_ANDROID) + ? R.layout.chrome_managed_preference + : 0; + } }; @Test @@ -164,8 +195,8 @@ @Test @SmallTest public void testShowManagedSettingsCannotBeResetToast() { - TestThreadUtils.runOnUiThreadBlocking(() -> { - ManagedPreferencesUtils.showManagedSettingsCannotBeResetToast(getActivity()); + Toast toast = TestThreadUtils.runOnUiThreadBlockingNoException(() -> { + return ManagedPreferencesUtils.showManagedSettingsCannotBeResetToast(getActivity()); }); onView(withText(R.string.managed_settings_cannot_be_reset))
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ForwardingManagedPreferenceDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ForwardingManagedPreferenceDelegate.java index 1041be8..6b532aa0 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ForwardingManagedPreferenceDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ForwardingManagedPreferenceDelegate.java
@@ -4,6 +4,7 @@ package org.chromium.components.browser_ui.site_settings; +import androidx.annotation.LayoutRes; import androidx.preference.Preference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -38,6 +39,11 @@ return mBase.doesProfileHaveMultipleCustodians(); } + @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + return mBase.defaultPreferenceLayoutResource(); + } + /* Do not override the 'isPreferenceClickDisabledByPolicy' method in this class as this causes * the wrong version to be called for instances of `SingleCategoryManagedPreferenceDelegate`. * Refer to crbug/1380613 for more details. */
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp index ed4579e1..0c01c8e 100644 --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -456,8 +456,8 @@ <message name="IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_TITLE" desc="The title of a dialog box that appears if the user chooses 'Don’t allow sites to save data on your device (not recommended)'. This dialog essentially serves as a 'are you sure?' reminder."> Sites you visit may stop working as designed </message> - <message name="IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION" desc="Most sites you visit probably save data to your device, often to improve your experience by saving your preferences or information you share with the site. We recommend keeping this setting on."> - Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit. + <message name="IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION" desc="A paragraph beneath the 'Sites you visit may stop working as designed' title on a dialog box that appears when a user chooses 'Don’t allow sites to save data on your device (not recommended)'. We want to convey that sites are generally designed to rely on saving some information about the user. Usually this is benign, but sites can abuse this power, and so we qualify the statement with 'often'."> + Most sites you visit probably save data to your device, often to improve your experience by saving your preferences or information you share with the site. We recommend keeping this setting on. </message> <message name="IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_CONFIRM_BUTTON" desc="A button label. The user chose 'Don’t allow sites to save data on your device (not recommended)'. As an 'are you sure' moment, we show the user a dialog box titled 'Sites you visit may stop working as designed.'. This string allows the user to confirm their intention to turn this setting off."> Turn off
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION.png.sha1 index c07e9a6..a31ba2e 100644 --- a/components/browser_ui/strings/android/site_settings_grdp/IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION.png.sha1 +++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_WEBSITE_SETTINGS_SITE_DATA_PAGE_BLOCK_CONFIRM_DIALOG_DESCRIPTION.png.sha1
@@ -1 +1 @@ -d90c015f28126380374f6dd970dfd261e911747c \ No newline at end of file +41b0c9d4b1116d341fa5460c956f634f289dacf9 \ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb index 599637a..a2b3a4e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Voorgestelde soektogte op grond van jou jongste oortjie</translation> <translation id="2241634353105152135">Net een keer</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Verwyder</translation> +<translation id="228293613124499805">Die meeste werwe wat jy besoek, stoor waarskynlik data op jou toestel – dikwels om jou ervaring te verbeter deur jou voorkeure of inligting wat jy met die werf deel, te stoor. Ons beveel aan dat hierdie instelling aan bly.</translation> <translation id="2289270750774289114">Vra wanneer 'n werf Bluetooth-toestelle in die omtrek wil ontdek (aanbeveel)</translation> <translation id="2315043854645842844">Bedryfstelsel steun nie die sertifikaat wat die kliënt gekies het nie.</translation> <translation id="2321958826496381788">Trek die glyer totdat jy dit gemaklik kan lees. Teks behoort minstens só groot te lyk nadat jy op 'n paragraaf gedubbeltik het.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb index 965a8523..f896a88 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">በእርስዎ የመጨረሻ ትር ላይ በመመስረት የተጠቆሙ ፍለጋዎች</translation> <translation id="2241634353105152135">አንድ ጊዜ ብቻ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" />ን አስወግድ</translation> +<translation id="228293613124499805">እርስዎ የሚጎበኟቸው አብዛኞቹ ጣቢያዎች ምርጫዎችዎን ወይም እርስዎ ያጋሩትን መረጃ በጣቢያው ውስጥ በማስቀመጥ ብዙ ጊዜ የእርስዎን ተሞክሮ ለማሻሻል በመሣሪያዎ ላይ ውሂብን ሊያስቀምጡ ይችላሉ። ይህ ቅንብር እንደበራ እንዲቆይ እንመክራለን።</translation> <translation id="2289270750774289114">አንድ ጣቢያ በአቅራቢያ ያሉ ብሉቱዝ መሣሪያዎችን ፈልጎ ለማግኘት ሲፈልግ ጠይቅ (የሚመከር)</translation> <translation id="2315043854645842844">የደንበኛ ወገን ዕውቅና ማረጋገጫ ምርጫ በስርዓተ-ክወናው አይደገፍም።</translation> <translation id="2321958826496381788">ይህን በሚመች ሁኔታ ማንበብ እስኪችሉ ድረስ ተንሸራታቹን ይጎትቱት። በአንድ አንቀጽ ላይ ሁለቴ መታ ካደረጉ በኋላ ጽሁፍ ቢያንስ የዚህ ያህል ትልቀት ሊኖረው ይገባል።</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb index 38c265f9..da312aa 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">نعم</translation> <translation id="1446450296470737166">السماح بالتحكم الكامل لأجهزة MIDI</translation> <translation id="1448064542941920355">تصغير</translation> +<translation id="1547123415014299762">السماح بملفات تعريف الارتباط التابعة لجهات خارجية</translation> <translation id="1620510694547887537">الكاميرا</translation> <translation id="1633720957382884102">مواقع إلكترونية ذات صلة</translation> <translation id="1644574205037202324">السجل</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">عمليات البحث المقترَحة استنادًا إلى علامة التبويب الأخيرة</translation> <translation id="2241634353105152135">مرة واحدة فقط</translation> <translation id="2253414712144136228">إزالة <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">إنّ معظم المواقع الإلكترونية التي تزورها تحفظ البيانات على جهازك على الأرجح، وغالبًا ما يتم ذلك لتحسين تجربة زيارتك لها من خلال حفظ إعداداتك المفضَّلة أو المعلومات التي تشاركها مع الموقع الإلكتروني. ننصحك بإبقاء هذا الإعداد مفعّلاً.</translation> <translation id="2289270750774289114">طلب الإذن عند محاولة موقع إلكتروني العثور على أجهزة البلوتوث المجاورة (إجراء موصَى به)</translation> <translation id="2315043854645842844">لا يدعم نظام التشغيل تحديد الشهادة من جانب العميل.</translation> <translation id="2321958826496381788">اسحب شريط التمرير إلى أن تتمكّن من قراءة هذا النص بسهولة. يجب أن يظهر النص بهذا الحجم على الأقل بعد النقر مرّتين على أي فقرة.</translation> @@ -351,6 +353,7 @@ <translation id="8042586301629853791">ترتيب حسب:</translation> <translation id="8067883171444229417">تشغيل الفيديو</translation> <translation id="8068648041423924542">يتعذر تحديد الشهادة.</translation> +<translation id="8077120325605624147">السماح لأي موقع إلكتروني تزوره بعرض أي إعلان لك</translation> <translation id="8087000398470557479">هذا المحتوى من <ph name="DOMAIN_NAME" />، وتم عرضه من قبل Google.</translation> <translation id="8116925261070264013">المواقع الإلكترونية التي تم كتم الصوت فيها</translation> <translation id="813082847718468539">عرض معلومات الموقع</translation> @@ -389,6 +392,7 @@ <translation id="857943718398505171">مسموح بها (موصى بها)</translation> <translation id="8609465669617005112">الانتقال إلى الأعلى</translation> <translation id="8676374126336081632">محو الإرسال</translation> +<translation id="8681886425883659911">حظر الإعلانات على المواقع الإلكترونية التي تُعرف بعرضها إعلانات مضلِّلة أو متداخلة</translation> <translation id="868929229000858085">البحث في جهات الاتصال</translation> <translation id="8702612070107455751">سيتم محو أي بيانات متوفّرة بلا اتصال بالإنترنت.</translation> <translation id="8712637175834984815">تم</translation> @@ -401,6 +405,7 @@ <translation id="8816026460808729765">يمكنك حظر المواقع الإلكترونية من الوصول إلى أجهزة الاستشعار.</translation> <translation id="8823559166155093873">حظر ملفات تعريف الارتباط</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">الإعلانات المتداخلة</translation> <translation id="8903921497873541725">تكبير</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">تقنية NFC غير مفعّلة على هذا الجهاز. فعّلها في<ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb index 96ff71f..13a7ecd 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">আপোনাৰ অন্তিম টেবটোৰ আধাৰত পৰামৰ্শিত সন্ধানসমূহ</translation> <translation id="2241634353105152135">মাত্ৰ এবাৰ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> আঁতৰাওক</translation> +<translation id="228293613124499805">আপুনি ছাইটটোৰ সৈতে শ্বেয়াৰ কৰা আপোনাৰ অগ্ৰাধিকাৰ অথবা তথ্য ছেভ কৰি প্ৰায়েই আপোনাৰ অভিজ্ঞতা উন্নত কৰিবলৈ আপুনি চোৱা বেছিভাগ ছাইটে সম্ভৱতঃ আপোনাৰ ডিভাইচত ডেটা ছেভ কৰে। আমি এই ছেটিংটো অন কৰি ৰাখিবলৈ চুপাৰিছ কৰোঁ।</translation> <translation id="2289270750774289114">কোনো ছাইটে নিকটৱৰ্তী ডিভাইচ ব্লুটুথ ডিভাইচসমূহ পাব বিচাৰিলে সোধক (আমি চুপাৰিছ কৰোঁ)</translation> <translation id="2315043854645842844">অপাৰেটিং ছিষ্টেমটোৱে ক্লায়েণ্টৰ ফালৰ প্ৰমাণপত্ৰ বাছনি কৰা সুবিধাটো সমৰ্থন নকৰে।</translation> <translation id="2321958826496381788">আপুনি এইখিনি অনায়সে পঢ়িব নোৱাৰালৈকে স্লাইডাৰটো টানক। কোনো পেৰেগ্ৰাফত দুবাৰ টিপিলে পাঠখিনি অতি কমেও ইমানখিনি ডাঙৰ দেখা হ'ব লাগে।</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb index 0926067..07141d0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb
@@ -58,11 +58,11 @@ <translation id="2182457891543959921">Saytların ətrafınızdakı sahələrin 3D xəritəsini yaratmasına və ya kamera mövqeyini izləməsinə icazə verməzdən əvvəl icazə tələb edin (tövsiyə edilir)</translation> <translation id="2212565012507486665">Kukilərə icazə verin</translation> <translation id="2228071138934252756"><ph name="APP_NAME" /> tətbiqinə kameranıza giriş icazəsi vermək üçün <ph name="BEGIN_LINK" />Android Ayarlarında<ph name="END_LINK" /> kameranı da aktiv edin.</translation> -<translation id="2230120995564025978">Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit.</translation> <translation id="2235344399760031203">Üçüncü tərəf kukiləri bloklanıb</translation> <translation id="2238944249568001759">Son tabınıza əsasən təklif olunan axtarışlar</translation> <translation id="2241634353105152135">Sadəcə bir dəfə</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Silin</translation> +<translation id="228293613124499805">Ziyarət etdiyiniz əksər saytlar adətən təcrübənizi təkmilləşdirmək üçün tərcihlərinizi və ya saytla paylaşdığınız məlumatı yadda saxlayır. Bu ayarı aktiv saxlamağı tövsiyə edirik.</translation> <translation id="2289270750774289114">Sayt yaxınlıqdakı Bluetooth cihazlarını kəşf etmək istədikdə soruşun (tövsiyə edilir)</translation> <translation id="2315043854645842844">Müştəri sayt sertifikatı seçimi əməliyyat sistemi tərəfindən dəstəklənmir.</translation> <translation id="2321958826496381788">Rahat oxuya biləcəyinizə qədər slayderi dartın. Abzasa iki dəfə tıklayandan sonra mətn bu böyüklükdə olmalıdır.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb index c95a857..8a1c3c0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Пошукавыя запыты, прапанаваныя на падставе змесціва апошняй укладкі</translation> <translation id="2241634353105152135">Толькі адзін раз</translation> <translation id="2253414712144136228">Выдаліць: <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Большасць сайтаў, якія вы наведваеце, хутчэй за ўсё, захоўваюць на вашай прыладзе такія даныя, як звесткі пра параметры, якія вы выбіраеце, або інфармацыя, якую вы абагулілі з сайтам. Часцей за ўсё гэта робіцца, каб вам было зручней працаваць з сайтам. Мы рэкамендуем пакінуць гэту наладу ўключанай.</translation> <translation id="2289270750774289114">Пытацца, калі сайт спрабуе выявіць прылады Bluetooth паблізу (рэкамендуецца)</translation> <translation id="2315043854645842844">Аперацыйная сістэма не падтрымлівае выбар сертыфіката кліента.</translation> <translation id="2321958826496381788">Перацягвайце паўзунок, пакуль гэты тэкст не будзе зручна чытаць. Пасля падвойнага націскання на абзац тэкст павінен быць як мінімум такім вялікім.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb index 76cc843..e130565 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Предложения за търсене въз основа на последния ви раздел</translation> <translation id="2241634353105152135">Само веднъж</translation> <translation id="2253414712144136228">Премахване на <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Повечето посещавани от вас сайтове вероятно запазват данни на устройството ви, често с цел подобряване на практическата ви работа, като съхраняват предпочитанията ви или информацията, която споделяте със сайта. Препоръчваме ви да оставите тази настройка включена.</translation> <translation id="2289270750774289114">Извеждане на запитване, когато сайт иска да открива устройства с Bluetooth в близост (препоръчително)</translation> <translation id="2315043854645842844">Избраният сертификат от страната на клиента не се поддържа от операционната система.</translation> <translation id="2321958826496381788">Преместете плъзгача, докато можете да четете удобно това. Текстът трябва да изглежда поне толкова голям след двукратно докосване на абзац.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb index 7dde5ba..839a2d4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">আপনার শেষ ট্যাবের উপর ভিত্তি করে সাজেস্ট করা সার্চ</translation> <translation id="2241634353105152135">শুধুমাত্র একবার</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> সরিয়ে দিন</translation> +<translation id="228293613124499805">আপনি বেশিরভাগ যে সাইটগুলিতে যান সেগুলি সম্ভবত আপনার ডিভাইসে ডেটা সেভ করে, প্রায়শই আপনার পছন্দ বা সাইটের সাথে আপনার শেয়ার করা তথ্য সেভ করে আপনার অভিজ্ঞতা উন্নত করতে। আমরা এই সেটিং চালু রাখার পরামর্শ দিই।</translation> <translation id="2289270750774289114">কাছাকাছি ব্লুটুথ ডিভাইস আছে কিনা তা কোনও সাইট খুঁজতে চাইলে আমাকে জিজ্ঞাসা করুন (সাজেস্ট করা হচ্ছে)</translation> <translation id="2315043854645842844">ক্লায়েন্ট সাইড সার্টিফিকেট নির্বাচন অপারেটিং সিসটেম দ্বারা সমর্থিত নয়।</translation> <translation id="2321958826496381788">আপনি এটি স্বচ্ছন্দে পড়তে না পারা পর্যন্ত স্লাইডারটি টেনে আনুন৷ কোনো অনুচ্ছেদে দুবার-আলতো চাপার পরে পাঠ্যটিকে দেখতে অন্ততপক্ষে এইরকম বড় লাগা উচিত৷</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb index 968c5b6..771d621 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Predložena pretraživanja na osnovu vaše posljednje kartice</translation> <translation id="2241634353105152135">Samo ovaj put</translation> <translation id="2253414712144136228">Uklanjanje stavke <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Većina web lokacija koje posjetite vjerovatno pohranjuje podatke na vaš uređaj, često radi poboljšavanja vašeg iskustva pohranjivanjem vaših postavki ili informacija koje dijelite s web lokacijom. Preporučujemo vam da ovu postavku ostavite uključenom.</translation> <translation id="2289270750774289114">Pitaj kada web lokacija želi otkriti Bluetooth uređaje u blizini (preporučeno)</translation> <translation id="2315043854645842844">Operativni sistem ne podržava odabir potvrde na strani klijenta.</translation> <translation id="2321958826496381788">Povlačite klizač dok vam tekst ne bude ugodan za čitanje. Nakon dvostrukog dodira na pasus, tekst bi trebao izgledati najmanje ove veličine.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb index 198b4e8a..ff99340 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Sí</translation> <translation id="1446450296470737166">Permet control total disp. MIDI</translation> <translation id="1448064542941920355">Redueix el zoom</translation> +<translation id="1547123415014299762">Les galetes de tercers estan permeses</translation> <translation id="1620510694547887537">Càmera</translation> <translation id="1633720957382884102">Llocs web relacionats</translation> <translation id="1644574205037202324">Historial</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Cerques suggerides basades en la darrera pestanya</translation> <translation id="2241634353105152135">Només una vegada</translation> <translation id="2253414712144136228">Suprimeix <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">És probable que la majoria de llocs web que visites desin dades al teu dispositiu, sovint per millorar la teva experiència, desant les teves preferències o la informació que comparteixes amb el lloc web. Et recomanem que mantinguis aquesta opció de configuració activada.</translation> <translation id="2289270750774289114">Pregunta'm quan un lloc web vulgui descobrir dispositius Bluetooth propers (opció recomanada)</translation> <translation id="2315043854645842844">El sistema operatiu no permet seleccionar el certificat del client.</translation> <translation id="2321958826496381788">Arrossega el control lliscant fins que puguis llegir aquest text còmodament. El text ha de ser almenys així de gran després de tocar dos cops un paràgraf.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Ordena per:</translation> <translation id="8067883171444229417">Reprodueix el vídeo</translation> <translation id="8068648041423924542">No es pot seleccionar el certificat.</translation> +<translation id="8077120325605624147">Qualsevol lloc web que visitis pot mostrar-te qualsevol anunci</translation> <translation id="8087000398470557479">Aquest contingut és del domini <ph name="DOMAIN_NAME" />, oferit per Google.</translation> <translation id="8116925261070264013">Silenciats</translation> <translation id="813082847718468539">Mostra la informació del lloc web</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Permès (opció recomanada)</translation> <translation id="8609465669617005112">Desplaça cap amunt</translation> <translation id="8676374126336081632">Esborra l'entrada</translation> +<translation id="8681886425883659911">Els anuncis es bloquegen en llocs web que se sap que mostren anuncis intrusius o enganyosos</translation> <translation id="868929229000858085">Cerca als contactes</translation> <translation id="8702612070107455751">S'esborraran totes les dades sense connexió.</translation> <translation id="8712637175834984815">Entesos</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Impedeix que els llocs web accedeixin als sensors</translation> <translation id="8823559166155093873">Bloqueja les galetes</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Anuncis intrusius</translation> <translation id="8903921497873541725">Amplia</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">L'NFC està desactivada en aquest dispositiu. Activa-la a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb index b94af027..4c96fb8c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Navrhovaná vyhledávání na základě poslední karty</translation> <translation id="2241634353105152135">Pouze jednou</translation> <translation id="2253414712144136228">Odstranit položku <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Většina navštěvovaných webů pravděpodobně ukládá data do vašeho zařízení, často za účelem zlepšení uživatelského prostředí (uloží se vaše předvolby a informace sdílené s weby). Doporučujeme toto nastavení ponechat zapnuté.</translation> <translation id="2289270750774289114">Zeptat se, když chce web objevit zařízení Bluetooth v okolí (doporučeno)</translation> <translation id="2315043854645842844">Volbu certifikátu na straně klienta operační systém nepodporuje.</translation> <translation id="2321958826496381788">Přetahujte posuvník tak dlouho, dokud nebudete moci pohodlně přečíst tento text. Po dvojitém klepnutí na odstavec by měl být text alespoň takto velký.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb index 07317d8b..5ee0d95d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Iawn</translation> <translation id="1446450296470737166">Caniatáu rheolaeth lawn dros ddyfeisiau MIDI</translation> <translation id="1448064542941920355">Pellhau</translation> +<translation id="1547123415014299762">Caniateir cwcis trydydd parti</translation> <translation id="1620510694547887537">Camera</translation> <translation id="1633720957382884102">Gwefannau Cysylltiedig</translation> <translation id="1644574205037202324">Hanes</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Chwiliadau a awgrymir yn seiliedig ar eich tab diwethaf</translation> <translation id="2241634353105152135">Unwaith yn unig</translation> <translation id="2253414712144136228">Tynnu <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Mae'n debyg bod y rhan fwyaf o wefannau y byddwch yn ymweld â nhw yn cadw data i'ch dyfais, yn aml i wella'ch profiad trwy gadw eich dewisiadau neu'r wybodaeth rydych yn ei rhannu â'r wefan. Rydym yn argymell cadw'r gosodiad hwn ymlaen.</translation> <translation id="2289270750774289114">Gofyn pan fydd gwefan eisiau darganfod dyfeisiau Bluetooth gerllaw (argymhellir)</translation> <translation id="2315043854645842844">Nid yw'r system weithredu yn cefnogi dewis tystysgrif ochr y cleient.</translation> <translation id="2321958826496381788">Llusgwch y llithrydd nes eich bod yn gallu darllen hwn yn gyffyrddus. Dylai'r testun fod o leiaf y maint hwn ar ôl tapio dwywaith ar baragraff.</translation> @@ -349,6 +351,7 @@ <translation id="8042586301629853791">Trefnu yn ôl:</translation> <translation id="8067883171444229417">Chwarae'r fideo</translation> <translation id="8068648041423924542">Methu â dewis tystysgrif.</translation> +<translation id="8077120325605624147">Gall unrhyw wefan yr ymwelwch â hi ddangos unrhyw hysbyseb i chi</translation> <translation id="8087000398470557479">Mae'r cynnwys hwn yn dod o <ph name="DOMAIN_NAME" />, sy'n cael ei ddarparu gan Google.</translation> <translation id="8116925261070264013">Wedi'i ddistewi</translation> <translation id="813082847718468539">Gweld gwybodaeth am y wefan</translation> @@ -386,6 +389,7 @@ <translation id="857943718398505171">Caniateir (argymhellir)</translation> <translation id="8609465669617005112">Symud i fyny</translation> <translation id="8676374126336081632">Clirio mewnbwn</translation> +<translation id="8681886425883659911">Mae hysbysebion yn cael eu rhwystro ar wefannau y gwyddys eu bod yn dangos hysbysebion ymwthiol neu gamarweiniol</translation> <translation id="868929229000858085">Chwilio eich cysylltiadau</translation> <translation id="8702612070107455751">Bydd unrhyw ddata all-lein yn cael eu clirio.</translation> <translation id="8712637175834984815">Iawn</translation> @@ -398,6 +402,7 @@ <translation id="8816026460808729765">Rhwystro gwefannau rhag cael mynediad at synwyryddion</translation> <translation id="8823559166155093873">Rhwystro cwcis</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Hysbysebion ymwthiol</translation> <translation id="8903921497873541725">Chwyddo</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">Mae NFC wedi'i ddiffodd ar gyfer y ddyfais hon. Trowch ef ymlaen yn <ph name="BEGIN_LINK" />Gosodiadau Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb index 7968d79..3811416 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
@@ -13,7 +13,9 @@ <translation id="1289742167380433257">Billederne på denne side er blevet optimeret af Google, så du sparer data.</translation> <translation id="129382876167171263">Filer, der gemmes af websites, vises her</translation> <translation id="1317194122196776028">Glem dette website</translation> +<translation id="1343356790768851700">Dette website foretager en vurdering af, hvad du kan lide, og foreslår derefter annoncer til andre websites</translation> <translation id="1369915414381695676">Websitet <ph name="SITE_NAME" /> blev tilføjet</translation> +<translation id="1371239764779356792">Tillad, at et website gemmer data på din enhed</translation> <translation id="1383876407941801731">Søg</translation> <translation id="1384959399684842514">Download er sat på pause</translation> <translation id="1409426117486808224">Enkel visning af åbne faner</translation> @@ -21,6 +23,7 @@ <translation id="1426410128494586442">Ja</translation> <translation id="1446450296470737166">Tillad fuld kontrol over MIDI-enheder</translation> <translation id="1448064542941920355">Zoom ud</translation> +<translation id="1510341833810331442">Websites har ikke tilladelse til at gemme data på din enhed</translation> <translation id="1547123415014299762">Tredjepartscookies er tilladt</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Relaterede websites</translation> @@ -59,6 +62,7 @@ <translation id="2238944249568001759">Foreslåede søgninger baseret på din seneste fane</translation> <translation id="2241634353105152135">Kun én gang</translation> <translation id="2253414712144136228">Fjern <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">De fleste af de websites, du besøger, gemmer sandsynligvis data på din enhed, ofte for at forbedre din brugeroplevelse ved at gemme de præferencer eller oplysninger, du deler med websitet. Vi anbefaler, at denne indstilling forbliver aktiveret.</translation> <translation id="2289270750774289114">Spørg, når et website vil søge efter Bluetooth-enheder i nærheden (anbefalet)</translation> <translation id="2315043854645842844">Klientens certifikatvalg understøttes ikke af operativsystemet.</translation> <translation id="2321958826496381788">Træk i skyderen, indtil du kan nemt læse dette. Teksten som minimum have denne størrelse, når du har trykket to gange på et afsnit.</translation> @@ -69,7 +73,9 @@ <translation id="2390272837142897736">Zoom in</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2404630663942400771">{PERMISSIONS_SUMMARY_ALLOWED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> og <ph name="NUM_MORE" /> mere er tilladt}one{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, and <ph name="NUM_MORE" /> more allowed}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> og <ph name="NUM_MORE" /> mere er tilladt}}</translation> +<translation id="2410940059315936967">Et website, du besøger, kan indlejre indhold fra andre websites, f.eks. billeder, annoncer og tekst. Cookies, der gemmes af disse andre websites, kaldes tredjepartscookies.</translation> <translation id="2434158240863470628">Downloaden er fuldført <ph name="SEPARATOR" /> <ph name="BYTES_DOWNLOADED" /></translation> +<translation id="244264527810019436">Funktioner på visse websites fungerer muligvis ikke i inkognitotilstand</translation> <translation id="2442870161001914531">Anmod altid om computerversion</translation> <translation id="2482878487686419369">Notifikationer</translation> <translation id="2485422356828889247">Afinstaller</translation> @@ -83,6 +89,7 @@ <translation id="2586657967955657006">Udklipsholder</translation> <translation id="2597457036804169544">Anvend ikke Mørkt tema på websites</translation> <translation id="2621115761605608342">Tillad JavaScript for et bestemt website.</translation> +<translation id="2639227409413857192">Dette website foretager en vurdering af, hvad du kan lide, og foreslår derefter annoncer til andre websites. Dette website indhenter også dine annonceemner fra Chrome med henblik på at vise dig mere relevante annoncer.</translation> <translation id="2653659639078652383">Send</translation> <translation id="2677748264148917807">Forlad</translation> <translation id="2687403674020088961">Bloker alle cookies (anbefales ikke)</translation> @@ -93,6 +100,7 @@ <translation id="2822354292072154809">Er du sikker på, at du vil nulstille alle websitetilladelser for <ph name="CHOSEN_OBJECT_NAME" />?</translation> <translation id="2870560284913253234">Website</translation> <translation id="2874939134665556319">Forrige nummer</translation> +<translation id="2891975107962658722">Bloker et website på en måde, hvor det ikke kan gemme data på din enhed</translation> <translation id="2903493209154104877">Adresser</translation> <translation id="2910701580606108292">Spørg, før websites begynder at afspille beskyttet indhold</translation> <translation id="2913331724188855103">Tillad, at websites gemmer og læser cookiedata (anbefales)</translation> @@ -135,6 +143,7 @@ <translation id="3628308229821498208">Foreslåede søgninger</translation> <translation id="3744111561329211289">Synkronisering i baggrunden</translation> <translation id="3763247130972274048">Tryk to gange i videoens venstre eller højre side for at springe ti sekunder frem eller tilbage</translation> +<translation id="3794286421982011626">Et website, du besøger, kan gemme oplysninger om, hvad du foretager dig, så det kan fungere optimalt – f.eks. så du kan forblive logget ind på et website eller gemme varer i din indkøbskurv. Websites gemmer ofte disse oplysninger midlertidigt på din enhed.</translation> <translation id="3797520601150691162">Anvend ikke Mørkt tema på et bestemt website</translation> <translation id="3803367742635802571">Websites, du besøger, holder muligvis op med at fungere som forventet</translation> <translation id="3804247818991980532"><ph name="TYPE_1" />, <ph name="TYPE_2" />.</translation> @@ -144,6 +153,7 @@ <translation id="385051799172605136">Tilbage</translation> <translation id="3859306556332390985">Spol fremad</translation> <translation id="3895926599014793903">Tving aktivering af zoom</translation> +<translation id="3908288065506437185">Bloker tredjepartscookies i inkognitotilstand</translation> <translation id="3955193568934677022">Tillad, at websites afspiller beskyttet indhold (anbefales)</translation> <translation id="3967822245660637423">Download fuldført</translation> <translation id="3987993985790029246">Kopiér linket</translation> @@ -192,6 +202,7 @@ <translation id="4976702386844183910">Senest besøgt <ph name="DATE" /></translation> <translation id="4994033804516042629">Der blev ikke fundet nogen kontakter</translation> <translation id="4996978546172906250">Del via</translation> +<translation id="5001526427543320409">Tredjepartscookies</translation> <translation id="5039804452771397117">Tillad</translation> <translation id="5048398596102334565">Tillad, at websites kan få adgang til bevægelsessensorer (anbefales)</translation> <translation id="5050380848339752099">Dette website skal til at dele oplysninger med en app uden for inkognitotilstand.</translation> @@ -212,6 +223,7 @@ <translation id="5317780077021120954">Gem</translation> <translation id="5335288049665977812">Tillad, at websites kører JavaScript (anbefales)</translation> <translation id="534295439873310000">NFC-enheder</translation> +<translation id="5344522958567249764">Administrer beskyttelse af personlige oplysninger i forbindelse med annoncering</translation> <translation id="5354152178998424783">Dette rydder <ph name="DATASIZE" /> data og cookies, som er gemt af websites.</translation> <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(+ 1 anden)}one{(+ # anden)}other{(+ # andre)}}</translation> <translation id="5403592356182871684">Navne</translation> @@ -235,6 +247,7 @@ <translation id="5706552988683188916">Denne handling sletter cookies og andre websitedata for <ph name="WEBSITE" /></translation> <translation id="5719847187258001597">Dette rydder alle data og cookies, som er gemt af <ph name="ORIGIN" /> eller de tilhørende apps på din startskærm.</translation> <translation id="5723967018671998714">Tredjepartscookies er blokeret i inkognitotilstand</translation> +<translation id="5740126560802162366">Websites kan gemme data på din enhed</translation> <translation id="5771720122942595109"><ph name="PERMISSION_1" /> blev blokeret</translation> <translation id="5804241973901381774">Tilladelser</translation> <translation id="5860033963881614850">Fra</translation> @@ -258,6 +271,7 @@ <translation id="6181444274883918285">Tilføj en undtagelse for et website</translation> <translation id="6192792657125177640">Undtagelser</translation> <translation id="6196640612572343990">Bloker cookies fra tredjeparter</translation> +<translation id="6205314730813004066">Annoncer og privatliv</translation> <translation id="6216432067784365534">Valgmuligheder for <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6231752747840485235">Vil du afinstallere "<ph name="APP_NAME" />"?</translation> <translation id="6262191102408817757">Baseret på din seneste fane</translation> @@ -385,6 +399,7 @@ <translation id="8514955299594277296">Tillad ikke, at websites gemmer data på din enhed (anbefales ikke)</translation> <translation id="851751545965956758">Bloker websites fra at oprette forbindelse til enheder</translation> <translation id="8525306231823319788">Fuld skærm</translation> +<translation id="8541410041357371550">Dette website henter dine annonceemner fra Chrome for at vise dig mere relevante annoncer</translation> <translation id="8564613706851221529">{COUNT,plural, =1{Cookies er tilladt for <ph name="FPS_MEMBERS_COUNT" /> website tilhørende <ph name="FPS_OWNER" />}one{Cookies er tilladt for <ph name="FPS_MEMBERS_COUNT" /> website tilhørende <ph name="FPS_OWNER" />}other{Cookies er tilladt for <ph name="FPS_MEMBERS_COUNT" /> websites tilhørende <ph name="FPS_OWNER" />}}</translation> <translation id="857943718398505171">Tilladt (anbefales)</translation> <translation id="8609465669617005112">Flyt op</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb index 87d16a2..464ed13 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Vorgeschlagene Suchanfragen basierend auf deinem letzten Tab</translation> <translation id="2241634353105152135">Nur einmal</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> entfernen</translation> +<translation id="228293613124499805">Die meisten Websites, die du besuchst, speichern wahrscheinlich Daten auf deinem Gerät. Damit du bequemer surfen kannst, werden häufig Einstellungen oder Informationen gespeichert, die du an die jeweiligen Websites weitergibst. Wir empfehlen, diese Einstellung aktiviert zu lassen.</translation> <translation id="2289270750774289114">Nachfragen, wenn eine Website nach Bluetooth-Geräten in der Nähe suchen möchte (empfohlen)</translation> <translation id="2315043854645842844">Die clientseitige Zertifikatauswahl wird vom Betriebssystem nicht unterstützt.</translation> <translation id="2321958826496381788">Ziehe den Schieberegler, bis du diesen Text problemlos lesen kannst. Nach dem Doppeltippen auf einen Abschnitt sollte der Text mindestens so groß sein.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb index ee32213..bbddbd5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Προτεινόμενες αναζητήσεις βάσει της τελευταίας καρτέλας σας</translation> <translation id="2241634353105152135">Μόνο μία φορά</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Κατάργηση</translation> +<translation id="228293613124499805">Οι περισσότεροι ιστότοποι που επισκέπτεστε πιθανώς αποθηκεύουν δεδομένα στη συσκευή σας, συχνά για να βελτιώσουν την εμπειρία σας, αποθηκεύοντας τις προτιμήσεις σας ή τις πληροφορίες που μοιράζεστε με τον ιστότοπο. Συνιστούμε να διατηρήσετε ενεργοποιημένη αυτήν τη ρύθμιση.</translation> <translation id="2289270750774289114">Να γίνεται ερώτηση όταν ένας ιστότοπος επιθυμεί να εντοπίσει κοντινές συσκευες Bluetooth (συνιστάται)</translation> <translation id="2315043854645842844">Η επιλογή πιστοποιητικού από τον πελάτη δεν υποστηρίζεται από το λειτουργικό σύστημα.</translation> <translation id="2321958826496381788">Σύρετε το ρυθμιστικό έως ότου να διαβάσετε αυτό το μήνυμα άνετα. Το κείμενο θα πρέπει να είναι τουλάχιστον τόσο μεγάλο αφού πατήσετε δύο φορές σε μια παράγραφο.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb index 7c2070b..9a526f8a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
@@ -59,11 +59,11 @@ <translation id="2182457891543959921">Ask before allowing sites to create a 3D map of your surroundings or track camera position (recommended)</translation> <translation id="2212565012507486665">Allow cookies</translation> <translation id="2228071138934252756">To let <ph name="APP_NAME" /> access your camera, also turn on camera in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation> -<translation id="2230120995564025978">Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit.</translation> <translation id="2235344399760031203">Third-party cookies are blocked</translation> <translation id="2238944249568001759">Suggested searches based on your last tab</translation> <translation id="2241634353105152135">Just once</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Remove</translation> +<translation id="228293613124499805">Most sites that you visit probably save data to your device, often to improve your experience by saving your preferences or information that you share with the site. We recommend keeping this setting on.</translation> <translation id="2289270750774289114">Ask when a site wants to discover nearby Bluetooth devices (recommended)</translation> <translation id="2315043854645842844">Client side certificate selection is not supported by the operating system.</translation> <translation id="2321958826496381788">Drag the slider until you can read this comfortably. Text should look at least this big after double-tapping on a paragraph.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb index e52f115..a139e19 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Búsquedas sugeridas en base a tu última pestaña</translation> <translation id="2241634353105152135">Solo esta vez</translation> <translation id="2253414712144136228">Quitar <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Es probable que la mayoría de los sitios que visitas guarden datos en tu dispositivo, a menudo para mejorar tu experiencia, ya que guardan tus preferencias o la información que compartes con ellos. Te recomendamos que mantengas esta configuración activada.</translation> <translation id="2289270750774289114">Preguntarme cuando un sitio intente conectarse a dispositivos Bluetooth cercanos (recomendado)</translation> <translation id="2315043854645842844">El sistema operativo no admite la selección de certificados del lado del cliente.</translation> <translation id="2321958826496381788">Arrastra el control deslizante hasta que puedas leer esto cómodamente. El texto debería verse, al menos, de este tamaño al tocar dos veces un párrafo.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb index 629fa4f..90f8b51 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Búsquedas sugeridas basadas en la última pestaña</translation> <translation id="2241634353105152135">Solo una vez</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Eliminar</translation> +<translation id="228293613124499805">Es probable que la mayoría de los sitios que visites guarden datos en tu dispositivo para mejorar la experiencia, ya que guardan tus preferencias o la información que compartes con el sitio. Te recomendamos que actives esta opción.</translation> <translation id="2289270750774289114">Preguntar cuando un sitio web quiera buscar dispositivos Bluetooth cercanos (recomendado)</translation> <translation id="2315043854645842844">El sistema operativo no admite la selección de certificados de cliente.</translation> <translation id="2321958826496381788">Arrastra el control deslizante hasta que puedas leer cómodamente. El texto debe tener al menos este tamaño después de tocar un párrafo dos veces.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb index 0db1e2a..ed8e624 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Jah</translation> <translation id="1446450296470737166">MIDI-seadm. täieliku juht. lub.</translation> <translation id="1448064542941920355">Suumi vähendamine</translation> +<translation id="1547123415014299762">Kolmanda osapoole küpsisefailid on lubatud</translation> <translation id="1620510694547887537">Kaamera</translation> <translation id="1633720957382884102">Seotud saidid</translation> <translation id="1644574205037202324">Ajalugu</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Soovitatud otsingud teie viimase vahelehe põhjal</translation> <translation id="2241634353105152135">Ainult ühe korra</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Eemalda</translation> +<translation id="228293613124499805">Enamik külastatavaid saite salvestavad teie seadmesse tõenäoliselt andmeid, sageli selleks, et täiustada teie kasutuskogemust, salvestades teie eelistused või teabe, mida saidiga jagate. Soovitame selle seade sisselülitatuks jätta.</translation> <translation id="2289270750774289114">Küsi, kui sait soovib läheduses asuvaid Bluetoothi seadmeid tuvastada (soovitatav)</translation> <translation id="2315043854645842844">Operatsioonisüsteem ei toeta kliendipoolset sertifikaadi valimist.</translation> <translation id="2321958826496381788">Lohistage liugurit, kuni saate seda mugavalt lugeda. Lõigu topeltkoputamisel peab tekst olema vähemalt nii suur.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Sortimisalus:</translation> <translation id="8067883171444229417">Esita video</translation> <translation id="8068648041423924542">Sertifikaati ei saa valida.</translation> +<translation id="8077120325605624147">Mis tahes külastatav sait saab teile kuvada mis tahes reklaami</translation> <translation id="8087000398470557479">See sisu pärineb domeenilt <ph name="DOMAIN_NAME" /> ja seda pakub Google.</translation> <translation id="8116925261070264013">Vaigistatud</translation> <translation id="813082847718468539">Kuvab saidi teabe</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Lubatud (soovitatav)</translation> <translation id="8609465669617005112">Liiguta üles</translation> <translation id="8676374126336081632">Tühjenda sisestus</translation> +<translation id="8681886425883659911">Reklaamid on blokeeritud saitidel, mis teadaolevalt kuvavad sekkuvaid või eksitavaid reklaame</translation> <translation id="868929229000858085">Otsige kontaktide hulgast</translation> <translation id="8702612070107455751">Kõik võrguühenduseta andmed kustutatakse.</translation> <translation id="8712637175834984815">Selge</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Blokeeri saitide jaoks juurdepääs anduritele</translation> <translation id="8823559166155093873">Blokeeri küpsisefailid</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Sekkuvad reklaamid</translation> <translation id="8903921497873541725">Suurendab</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC on selle seadme puhul välja lülitatud. Lülitage see <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" /> sisse.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb index e7e7887..d36d1f3d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Bai</translation> <translation id="1446450296470737166">Onartu MIDI gailuen kontrol osoa</translation> <translation id="1448064542941920355">Gutxitu zooma</translation> +<translation id="1547123415014299762">Hirugarrenen cookieak onartzen dira</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Erlazionatutako webguneak</translation> <translation id="1644574205037202324">Historia</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Azken fitxaren arabera iradokitako bilaketak</translation> <translation id="2241634353105152135">Behin soilik</translation> <translation id="2253414712144136228">Kendu <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Ziurrenik, bisitatzen dituzun webgune gehienek datuak gailuan gordetzen dituzte. Maiz, zure hobespenak edo webgunearekin partekatzen duzun informazioa gordetzen dituzte, zerbitzu hobea eskaintzeko. Ezarpen hau aktibatuta edukitzea gomendatzen dugu.</translation> <translation id="2289270750774289114">Eskatu nire baimena webgune batek inguruko Bluetooth bidezko gailuak bilatu nahi dituenean (gomendatua)</translation> <translation id="2315043854645842844">Sistema eragileak ez du onartzen bezeroarentzako ziurtagiria hautatzea.</translation> <translation id="2321958826496381788">Arrastatu graduatzailea testu hau erraz irakurri ahal izan arte. Testuak gutxienez hau bezain handia izan beharko du paragrafoan klik bikoitza egin ondoren.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Ordenatzeko irizpidea:</translation> <translation id="8067883171444229417">Erreproduzitu bideoa</translation> <translation id="8068648041423924542">Ezin da hautatu ziurtagiria.</translation> +<translation id="8077120325605624147">Bisitatzen dituzun webgune guztiek edozein iragarki erakusteko aukera dute</translation> <translation id="8087000398470557479">Eduki hau <ph name="DOMAIN_NAME" /> domeinukoa da eta Google-k eskaintzen du.</translation> <translation id="8116925261070264013">Audioa desaktibatuta</translation> <translation id="813082847718468539">Ikusi webgunearen informazioa</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Baimenduta (gomendatua)</translation> <translation id="8609465669617005112">Eraman gora</translation> <translation id="8676374126336081632">Garbitu idatzitakoa</translation> +<translation id="8681886425883659911">Iragarki oztopatzaileak edo engainagarriak erakusten dituzten webguneak blokeatzen dira</translation> <translation id="868929229000858085">Bilatu kontaktuak</translation> <translation id="8702612070107455751">Garbitu egingo dira konexiorik gabe gordetako datu guztiak.</translation> <translation id="8712637175834984815">Ados</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Ez utzi webguneei sentsoreak erabiltzen</translation> <translation id="8823559166155093873">Blokeatu cookieak</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Iragarki oztopatzaileak</translation> <translation id="8903921497873541725">Handitu</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC aukera desaktibatuta dago gailu honetan. Aktiba ezazu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb index 791b3696..10dfb8a7 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">جستجوهای پیشنهادی براساس آخرین برگه شما</translation> <translation id="2241634353105152135">فقط یک بار</translation> <translation id="2253414712144136228">برداشتن <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">اکثر سایتهایی که بازدید میکنید احتمالاً در دستگاهتان داده ذخیره میکنند و هدف از این کار، اغلب بهبود تجربه شما با ذخیره اولویتها یا اطلاعاتی است که با سایت همرسانی میکنید. توصیه میکنیم این تنظیم را روشن نگه دارید.</translation> <translation id="2289270750774289114">وقتی سایتی میخواهد دستگاههای بلوتوث اطراف را پیدا کند، سؤال شود (توصیه میشود)</translation> <translation id="2315043854645842844">انتخاب گواهی سمت کلاینت توسط سیستمعامل پشتیبانی نمیشود.</translation> <translation id="2321958826496381788">لغزنده را بکشید تا زمانی که بتوانید این متن را به راحتی بخوانید. بعد از دو ضربه متوالی روی یک پاراگراف، اندازه نوشتار حداقل باید به این بزرگی باشد.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb index a0735b5..6c34db4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Viime välilehteen perustuvat hakuehdotukset</translation> <translation id="2241634353105152135">Vain kerran</translation> <translation id="2253414712144136228">Poista <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Useimmat avaamasi sivustot tallentavat todennäköisesti dataa laitteellesi. Tarkoituksena on yleensä parantaa kokemustasi tallentamalla sivustolle jakamiasi asetuksia tai tietoja. Suosittelemme pitämään asetuksen päällä.</translation> <translation id="2289270750774289114">Kysy aina, kun sivusto pyytää lupaa löytää lähellä olevat Bluetooth-laitteet (suositus)</translation> <translation id="2315043854645842844">Käyttöjärjestelmä ei tue palvelimen varmennevalintaa.</translation> <translation id="2321958826496381788">Vedä liukusäädintä, kunnes voit lukea tämän mukavasti. Tekstin tulisi olla vähintään näin suurta kaksoisnapautettuasi kappaletta.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb index 0110643c..a855af8 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
@@ -12,8 +12,11 @@ <translation id="1272079795634619415">Stop</translation> <translation id="1289742167380433257">Para makatipid ka ng data, na-optimize ng Google ang mga larawan ng page na ito.</translation> <translation id="129382876167171263">Lalabas dito ang mga file na na-save ng mga website</translation> +<translation id="131112695174432497">Dine-delete ang data na nakakaapekto sa pag-personalize ng ad</translation> <translation id="1317194122196776028">Kalimutan ang site na ito</translation> +<translation id="1343356790768851700">Tinutukoy ng site na ito ang mga bagay na gusto mo at pagkatapos ay nagmumungkahi ito ng mga ad sa iba pang site</translation> <translation id="1369915414381695676">Nadagdag na ang site ng <ph name="SITE_NAME" /></translation> +<translation id="1371239764779356792">Payagan ang site na mag-save ang data sa iyong device</translation> <translation id="1383876407941801731">Hanapin</translation> <translation id="1384959399684842514">Na-pause ang pag-download</translation> <translation id="1409426117486808224">Pinasimpleng view para sa mga bukas na tab</translation> @@ -21,6 +24,7 @@ <translation id="1426410128494586442">Oo</translation> <translation id="1446450296470737166">Payagan ganap na kontrol sa MIDI device</translation> <translation id="1448064542941920355">Bawasan ang pag-zoom</translation> +<translation id="1510341833810331442">Hindi pinapayagan ang mga site na mag-save ng data sa iyong device</translation> <translation id="1620510694547887537">Camera</translation> <translation id="1633720957382884102">Mga kaugnay na site</translation> <translation id="1644574205037202324">History</translation> @@ -58,6 +62,7 @@ <translation id="2238944249568001759">Mga iminumungkahing paghahanap batay sa iyong huling tab</translation> <translation id="2241634353105152135">Isang beses lang</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Alisin</translation> +<translation id="228293613124499805">Posibleng nagse-save ng data sa iyong device ang karamihan sa mga site na binibisita mo, kadalasan para mapaganda ang iyong experience sa pamamagitan ng pag-save ng mga preference mo o impormasyong shine-share mo sa site. Inirerekomenda naming panatilihing naka-on ang setting na ito.</translation> <translation id="2289270750774289114">Magtanong kapag gusto ng isang site na tumuklas ng mga Bluetooth device na nasa malapit (inirerekomenda)</translation> <translation id="2315043854645842844">Hindi sinusuportahan ng operating system ang pagpipilian ng certificate sa panig ng kliyente.</translation> <translation id="2321958826496381788">I-drag ang slider hanggang sa mabasa mo ito nang kumportable. Dapat ay halos ganito kalaki ang text pagkatapos mag-double tap sa isang talata.</translation> @@ -68,7 +73,9 @@ <translation id="2390272837142897736">Dagdagan ang pag-zoom</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2404630663942400771">{PERMISSIONS_SUMMARY_ALLOWED,plural, =1{Pinapayagan ang <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, at <ph name="NUM_MORE" /> pa}one{Pinapayagan ang <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, at <ph name="NUM_MORE" /> pa}other{Pinapayagan ang <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, at <ph name="NUM_MORE" /> pa}}</translation> +<translation id="2410940059315936967">Puwedeng mag-embed ng content mula sa iba pang site ang site na binibisita mo, halimbawa, mga larawan, ad, at text. Ang cookies na itinatakda ng iba pang site na ito ay tinatawag na mga third-party na cookie.</translation> <translation id="2434158240863470628">Tapos nang mag-download <ph name="SEPARATOR" /> <ph name="BYTES_DOWNLOADED" /></translation> +<translation id="244264527810019436">Posibleng hindi gumana sa Incognito mode ang mga feature sa ilang site</translation> <translation id="2442870161001914531">Palaging hilingin ang pang-desktop na site</translation> <translation id="2482878487686419369">Mga Abiso</translation> <translation id="2485422356828889247">I-uninstall</translation> @@ -82,6 +89,7 @@ <translation id="2586657967955657006">Clipboard</translation> <translation id="2597457036804169544">Huwag ilapat ang madilim na tema sa mga site</translation> <translation id="2621115761605608342">Payagan ang JavaScript para sa isang partikular na site.</translation> +<translation id="2639227409413857192">Tinutukoy ng site na ito ang mga bagay na gusto mo at pagkatapos ay nagmumungkahi ito ng mga ad sa iba pang site. Kinukuha rin ng site na ito ang iyong mga paksa ng ad mula sa Chrome para magpakita pa sa iyo ng mga may kaugnayang ad.</translation> <translation id="2653659639078652383">Isumite</translation> <translation id="2677748264148917807">Umalis</translation> <translation id="2687403674020088961">I-block ang lahat ng cookies (hindi inirerekomenda)</translation> @@ -92,6 +100,7 @@ <translation id="2822354292072154809">Sigurado ka bang gusto mong i-reset ang lahat ng pahintulot sa site para sa <ph name="CHOSEN_OBJECT_NAME" />?</translation> <translation id="2870560284913253234">Site</translation> <translation id="2874939134665556319">Nakaraang track</translation> +<translation id="2891975107962658722">Mag-block ng site sa pag-save ng data sa iyong device</translation> <translation id="2903493209154104877">Mga Address</translation> <translation id="2910701580606108292">Magtanong bago payagan ang mga site na mag-play ng pinoprotektahang content</translation> <translation id="2913331724188855103">Payagan ang mga site na mag-save at magbasa ng data ng cookie (inirerekomenda)</translation> @@ -134,6 +143,7 @@ <translation id="3628308229821498208">Mga iminumungkahing paghahanap</translation> <translation id="3744111561329211289">Pag-sync sa background</translation> <translation id="3763247130972274048">Mag-double tap sa kaliwa o kanan ng video para lumaktaw nang 10s</translation> +<translation id="3794286421982011626">Ang site na binibisita mo ay puwedeng mag-save ng impormasyon tungkol sa kung ano ang ginagawa mo para gumana ito tulad ng inaasahan mo — halimbawa, para panatilihin kang naka-sign in sa isang site o para mag-save ng mga item sa iyong shopping cart. Kadalasang pansamantalang sine-save ng mga site ang impormasyong ito sa iyong device.</translation> <translation id="3797520601150691162">Huwag ilapat ang madilim na tema para sa isang partikular na site</translation> <translation id="3803367742635802571">Posibleng hindi na gumana ayon sa disenyo ang mga site na binibisita mo</translation> <translation id="3804247818991980532"><ph name="TYPE_1" />. <ph name="TYPE_2" />.</translation> @@ -143,6 +153,7 @@ <translation id="385051799172605136">Bumalik</translation> <translation id="3859306556332390985">Maghanap nang pasulong</translation> <translation id="3895926599014793903">Puwersahang i-enable ang zoom</translation> +<translation id="3908288065506437185">I-block ang mga third-party na cookie sa Incognito mode</translation> <translation id="3955193568934677022">Pahintulutan ang mga site na mag-play ng pinoprotektahang content (inirerekomenda)</translation> <translation id="3967822245660637423">Tapos na ang pag-download</translation> <translation id="3987993985790029246">Kopyahin ang link</translation> @@ -191,6 +202,7 @@ <translation id="4976702386844183910">Huling binisita noong <ph name="DATE" /></translation> <translation id="4994033804516042629">Walang nakitang contact</translation> <translation id="4996978546172906250">Ibahagi gamit ang</translation> +<translation id="5001526427543320409">Mga third-party na cookie</translation> <translation id="5039804452771397117">Payagan</translation> <translation id="5048398596102334565">Payagan ang mga site na i-access ang mga sensor ng paggalaw (inirerekomenda)</translation> <translation id="5050380848339752099">Magbabahagi ang site na ito ng impormasyon sa isang app sa labas ng Incognito mode.</translation> @@ -211,6 +223,7 @@ <translation id="5317780077021120954">I-save</translation> <translation id="5335288049665977812">Payagan ang mga site na magpatakbo ng JavaScript (inirerekomenda)</translation> <translation id="534295439873310000">Mga NFC device</translation> +<translation id="5344522958567249764">Pamahalaan ang privacy sa ad</translation> <translation id="5354152178998424783">Iki-clear nito ang <ph name="DATASIZE" /> ng data at cookies na na-store ng mga site.</translation> <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(+ 1 pa)}one{(+ # pa)}other{(+ # pa)}}</translation> <translation id="5403592356182871684">Mga Pangalan</translation> @@ -234,6 +247,7 @@ <translation id="5706552988683188916">Dine-delete nito ang cookies at iba pang data ng site para sa <ph name="WEBSITE" /></translation> <translation id="5719847187258001597">Iki-clear nito ang lahat ng data at cookies na na-store ng <ph name="ORIGIN" /> o ng app nito sa iyong Home screen.</translation> <translation id="5723967018671998714">Bina-block ang third-party na cookies sa Incognito mode</translation> +<translation id="5740126560802162366">Makakapag-save ang mga site ng data sa iyong device</translation> <translation id="5771720122942595109">Naka-block ang <ph name="PERMISSION_1" /></translation> <translation id="5804241973901381774">Mga Pahintulot</translation> <translation id="5860033963881614850">Naka-off</translation> @@ -257,6 +271,7 @@ <translation id="6181444274883918285">Magdagdag ng pagbubukod ng site</translation> <translation id="6192792657125177640">Mga Pagbubukod</translation> <translation id="6196640612572343990">I-block ang mga third-party na cookie</translation> +<translation id="6205314730813004066">Privacy sa ad</translation> <translation id="6216432067784365534">Mga Opsyon sa <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6231752747840485235">I-uninstall ang '<ph name="APP_NAME" />'?</translation> <translation id="6262191102408817757">Batay sa iyong huling tab</translation> @@ -383,6 +398,7 @@ <translation id="8514955299594277296">Huwag payagan ang mga site na mag-save ng data sa iyong device (hindi inirerekomenda)</translation> <translation id="851751545965956758">I-block ang mga site sa pagkonekta sa mga device</translation> <translation id="8525306231823319788">Buong screen</translation> +<translation id="8541410041357371550">Kinukuha ng site na ito ang iyong mga paksa ng ad mula sa Chrome para magpakita pa sa iyo ng mga may kaugnayang ad</translation> <translation id="8564613706851221529">{COUNT,plural, =1{Pinapahintulutan ang cookies para sa <ph name="FPS_MEMBERS_COUNT" /> site ng<ph name="FPS_OWNER" />}one{Pinapahintulutan ang cookies para sa <ph name="FPS_MEMBERS_COUNT" /> site ng <ph name="FPS_OWNER" />}other{Pinapahintulutan ang cookies para sa <ph name="FPS_MEMBERS_COUNT" /> na site ng <ph name="FPS_OWNER" />}}</translation> <translation id="857943718398505171">Pinapayagan (inirerekomenda)</translation> <translation id="8609465669617005112">Ilipat sa itaas</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb index 4dfb21eb..c1b2612 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Recherches suggérées en fonction de votre dernier onglet</translation> <translation id="2241634353105152135">Une fois</translation> <translation id="2253414712144136228">Retirer l'élément suivant : <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">La plupart des sites que vous visitez peuvent enregistrer des données sur votre appareil, souvent pour améliorer votre expérience en enregistrant vos préférences ou en fonction de vos interactions avec le site. Nous vous recommandons de conserver ce paramètre activé.</translation> <translation id="2289270750774289114">Demander quand un site souhaite rechercher les appareils Bluetooth à proximité (recommandé)</translation> <translation id="2315043854645842844">La sélection du certificat client SSL n'est pas prise en charge par le système d'exploitation.</translation> <translation id="2321958826496381788">Faites glisser le curseur pour lire le texte aisément. Sa taille doit être similaire à celle-ci lorsque vous appuyez deux fois sur un paragraphe.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb index 295bc794..73aaff5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Suggestions de recherches basées sur votre dernier onglet</translation> <translation id="2241634353105152135">Une seule fois</translation> <translation id="2253414712144136228">Supprimer <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">La plupart des sites que vous consultez enregistrent probablement des données sur votre appareil, comme vos préférences ou les informations que vous partagez avec le site, généralement pour améliorer votre expérience. Nous vous recommandons de laisser ce paramètre activé.</translation> <translation id="2289270750774289114">Me demander lorsqu'un site souhaite accéder aux appareils Bluetooth se trouvant à proximité (recommandé)</translation> <translation id="2315043854645842844">La sélection de certificat côté client n'est pas compatible avec le système d'exploitation.</translation> <translation id="2321958826496381788">Faites glisser le curseur pour lire le texte aisément. Sa taille doit être similaire à celle-ci lorsque vous appuyez deux fois sur un paragraphe.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb index fe5142c..04b19ca6 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Buscas suxeridas baseadas na última pestana</translation> <translation id="2241634353105152135">Só unha vez</translation> <translation id="2253414712144136228">Eliminar <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">A maioría dos sitios que visitas poden gardar datos no teu dispositivo. A miúdo, gardan as túas preferencias ou a información que compartes co sitio para mellorar a túa experiencia. É recomendable manter activada esta opción de configuración.</translation> <translation id="2289270750774289114">Preguntar cando un sitio web queira detectar dispositivos Bluetooth próximos (recomendado)</translation> <translation id="2315043854645842844">A selección do certificado do cliente non é compatible co sistema operativo.</translation> <translation id="2321958826496381788">Arrastra o control desprazable ata que poidas ler con comodidade. O texto debe ter polo menos este tamaño despois de facer dobre clic nun parágrafo.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb index 2b62c73..ff56d3e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">તમારા છેલ્લા ટૅબ પર આધારિત સૂચવેલી શોધ</translation> <translation id="2241634353105152135">માત્ર એક વખત</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> કાઢી નાખો</translation> +<translation id="228293613124499805">તમે મુલાકાત લો છો તે મોટાભાગની સાઇટ કદાચ તમારા ડિવાઇસ પરનો ડેટા સાચવે છે, ઘણીવાર તમારી પસંદગીઓ કે તમે સાઇટ સાથે શેર કરો છો તે માહિતીને સાચવીને તમારા અનુભવને બહેતર બનાવવા માટે આમ કરવામાં આવે છે. અમે આ સેટિંગ ચાલુ રાખવાનો સુઝાવ આપીએ છીએ.</translation> <translation id="2289270750774289114">જ્યારે કોઈ સાઇટ નજીકના બ્લૂટૂથ ડિવાઇસને શોધવા માગે ત્યારે પૂછો (સુઝાવ આપેલ)</translation> <translation id="2315043854645842844">ઓપરેટિંગ સિસ્ટમ દ્વારા ક્લાઇન્ટ તરફની પ્રમાણપત્ર પસંદગી સપોર્ટ કરતી નથી.</translation> <translation id="2321958826496381788">જ્યાં સુધી તમે આ અનુકૂળ રીતે વાંચી ન શકો ત્યાં સુધી સ્લાઇડર ખેંચો. ફકરા પર ડબલ-ટેપિંગ પછી ટેક્સ્ટ ઓછામાં ઓછી આટલી મોટી દેખાવી જોઈએ.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb index 0e92768e2..b120b6c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">आपके आखिरी टैब के आधार पर सुझाई गई खोजें</translation> <translation id="2241634353105152135">बस एक बार</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> हटाएं</translation> +<translation id="228293613124499805">ऐसा हो सकता है कि विज़िट की गई ज़्यादातर साइटें आपके डिवाइस पर डेटा सेव करें. ऐसा अक्सर आपके अनुभव को बेहतर बनाने के लिए किया जाता है. इसके लिए, आपकी उन प्राथमिकताओं या जानकारी को सेव किया जाता है जिन्हें आपने साइट पर शेयर किया है. हमारा सुझाव है कि इस सेटिंग को चालू रखें.</translation> <translation id="2289270750774289114">जब कोई साइट आस-पास के ब्लूटूथ डिवाइस को खोजना चाहे, तो इसके लिए पूछें (सुझाया गया)</translation> <translation id="2315043854645842844">क्लाइंट-साइड प्रमाणपत्र चुनना ऑपरेटिंग सिस्टम से नहीं किया जा सकता है.</translation> <translation id="2321958826496381788">इस टेक्स्ट को आसानी से पढ़ने लायक बनाने के लिए, स्लाइडर को आगे की ओर खींचें. पैराग्राफ़ पर डबल-टैप करने के बाद, टेक्स्ट को इतना बड़ा दिखाई देना चाहिए.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb index 496d030..d0acd0db 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Predložena pretraživanja na temelju vaše posljednje kartice</translation> <translation id="2241634353105152135">Samo jednom</translation> <translation id="2253414712144136228">Ukloni <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Većina web-lokacija koje posjećujete vjerojatno sprema podatke na vaš uređaj, često radi poboljšanja vašeg doživljaja spremanjem vaših preferencija ili podataka koje dijelite s tim web-lokacijama. Preporučujemo da ta postavka ostane uključena.</translation> <translation id="2289270750774289114">Prikaži upit kad web-lokacija želi tražiti Bluetooth uređaje u blizini (preporučeno)</translation> <translation id="2315043854645842844">Operativni sustav ne podržava odabir klijentskog certifikata.</translation> <translation id="2321958826496381788">Pomičite klizač dok ne budete mogli čitati ovaj tekst bez poteškoća. Tekst bi trebao biti barem ovoliko velik nakon što dvaput dodirnete odlomak.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb index 62435c51..0d700b9 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Javasolt keresések a legutóbbi lap alapján</translation> <translation id="2241634353105152135">Csak egyszer</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> eltávolítása</translation> +<translation id="228293613124499805">A legtöbb felkeresett webhely valószínűleg ment adatokat az eszközére, gyakran azért, hogy a beállításai vagy a webhellyel megosztott adatai mentésével javítsa a felhasználói élményt. Javasoljuk, hogy tartsa bekapcsolva ezt a beállítást.</translation> <translation id="2289270750774289114">Kérdezzen rá, ha valamelyik webhely szeretné felfedezni a közeli Bluetooth-eszközöket (ajánlott)</translation> <translation id="2315043854645842844">Az ügyféloldali tanúsítványválasztást az operációs rendszer nem támogatja.</translation> <translation id="2321958826496381788">Húzza a csúszkát, amíg kényelmesen nem tudja olvasni a szöveget. A szövegnek legalább ekkorának kell lennie, miután duplán koppint egy bekezdésre.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb index 2912d149..88916b4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Առաջարկվող որոնման հարցումներ ձեր վերջին ներդիրի հիման վրա</translation> <translation id="2241634353105152135">Միայն այս անգամ</translation> <translation id="2253414712144136228">Հեռացնել «<ph name="NAME_OF_LIST_ITEM" />» կետը</translation> +<translation id="228293613124499805">Կայքերի մեծամասնությունը, որոնք այցելում եք, հավանաբար տվյալներ են պահում ձեր սարքում, հաճախ որպեսզի, պահելով ձեր կարգավորումները կամ տեղեկությունները, որոնցով կիսվում եք, բարելավեն իրենց աշխատանքը ձեզ համար։ Խորհուրդ ենք տալիս չանջատել այս կարգավորումը։</translation> <translation id="2289270750774289114">Հարցնել, երբ որևէ կայք ուզում է հայտնաբերել մոտակա Bluetooth սարքերը (խորհուրդ է տրվում)</translation> <translation id="2315043854645842844">Տվյալ օպերացիոն համակարգը չի աջակցում սպասառուի կողմից վկայագրի ընտրությունը:</translation> <translation id="2321958826496381788">Քաշեք սահիչն այնպես, որ հարմարավետ լինի կարդալը: Պարբերության վրա երկու անգամ սեղմելուց հետո տեքստը պետք է այսպիսի չափ ունենա:</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb index 5e069306..0260ef1 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Ya</translation> <translation id="1446450296470737166">Izinkan kontrol penuh perangkat MIDI</translation> <translation id="1448064542941920355">Kurangi zoom</translation> +<translation id="1547123415014299762">Cookie pihak ketiga diizinkan</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Situs terkait</translation> <translation id="1644574205037202324">Histori</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Penelusuran yang disarankan berdasarkan tab terakhir Anda</translation> <translation id="2241634353105152135">Sekali ini saja</translation> <translation id="2253414712144136228">Hapus <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Sebagian besar situs yang Anda buka mungkin menyimpan data ke perangkat, sering kali untuk meningkatkan pengalaman Anda dengan menyimpan preferensi atau informasi yang Anda bagikan ke situs. Sebaiknya tetap aktifkan setelan ini.</translation> <translation id="2289270750774289114">Tanyakan saat situs ingin menemukan perangkat Bluetooth di sekitar (direkomendasikan)</translation> <translation id="2315043854645842844">Pilihan sertifikat sisi klien tidak didukung oleh sistem operasi.</translation> <translation id="2321958826496381788">Geser ukuran teks sampai Anda dapat membacanya dengan nyaman. Teks akan terlihat setidaknya sebesar ini setelah Anda mengetuk sebuah paragraf dua kali.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Urutkan menurut:</translation> <translation id="8067883171444229417">Putar video</translation> <translation id="8068648041423924542">Tidak dapat memilih sertifikat.</translation> +<translation id="8077120325605624147">Setiap situs yang Anda buka dapat menampilkan iklan apa pun kepada Anda</translation> <translation id="8087000398470557479">Konten ini dari <ph name="DOMAIN_NAME" />, dikirimkan oleh Google.</translation> <translation id="8116925261070264013">Dinonaktifkan</translation> <translation id="813082847718468539">Lihat informasi situs</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Diizinkan (disarankan)</translation> <translation id="8609465669617005112">Berpindah ke atas</translation> <translation id="8676374126336081632">Hapus masukan</translation> +<translation id="8681886425883659911">Iklan diblokir di situs yang dikenal menampilkan iklan yang mengganggu atau menyesatkan</translation> <translation id="868929229000858085">Telusuri kontak Anda</translation> <translation id="8702612070107455751">Semua data offline akan dihapus.</translation> <translation id="8712637175834984815">Mengerti</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Memblokir situs agar tidak mengakses sensor</translation> <translation id="8823559166155093873">Blokir cookie</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Iklan mengganggu</translation> <translation id="8903921497873541725">Perbesar</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC dinonaktifkan di perangkat ini. Aktifkan di <ph name="BEGIN_LINK" />Setelan Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb index b9da606..e732201 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Leitartillögur byggðar á síðasta flipa</translation> <translation id="2241634353105152135">Bara einu sinni</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Fjarlægja</translation> +<translation id="228293613124499805">Flest vefsvæði sem þú skoðar vista líklega gögn í tækinu, oft í þeim tilgangi að bæta upplifun þína með því að vista valið þitt eða upplýsingar sem þú deilir með vefsvæðinu. Við mælum með að hafa kveikt á þessari stillingu.</translation> <translation id="2289270750774289114">Spyrja þegar vefsvæði vill finna nálæg Bluetooth-tæki (ráðlagt)</translation> <translation id="2315043854645842844">Stýrikerfið styður ekki vottorðsval hjá biðlara.</translation> <translation id="2321958826496381788">Dragðu sleðann þangað til þú getur lesið þetta áreynslulaust. Texti ætti að vera að minnsta kosti svona stór eftir að ýtt hefur verið tvisvar á efnisgrein.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb index ce81fb58..7e92a2d8 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Ricerche suggerite in base all'ultima scheda</translation> <translation id="2241634353105152135">Solo una volta</translation> <translation id="2253414712144136228">Rimuovi <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">La maggior parte dei siti che visiti probabilmente salva dati sul dispositivo, spesso per migliorare la tua esperienza salvando le tue preferenze o le informazioni che condividi con i siti stessi. Ti consigliamo di mantenere questa impostazione attiva.</translation> <translation id="2289270750774289114">Chiedi conferma quando un sito vuole rilevare i dispositivi Bluetooth nelle vicinanze (opzione consigliata)</translation> <translation id="2315043854645842844">La selezione del certificato lato client non è supportata dal sistema operativo.</translation> <translation id="2321958826496381788">Trascina il cursore finché leggi il testo senza problemi. Il testo dovrebbe avere queste dimensioni minime quando tocchi due volte un paragrafo.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb index 45d5972..ed96060 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">הצעות לחיפושים על סמך הכרטיסייה האחרונה שלך</translation> <translation id="2241634353105152135">פעם אחת בלבד</translation> <translation id="2253414712144136228">הסרה של <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">סביר להניח שרוב האתרים שבהם מבקרים שומרים נתונים במכשיר, לרוב כדי לשפר את החוויה בהם. הנתונים שנשמרים הם ההעדפות או המידע שמשתפים עם האתר. מומלץ להשאיר את ההגדרה הזו פועלת.</translation> <translation id="2289270750774289114">המערכת מבקשת אישור כשאתר רוצה לאתר התקני Bluetooth קרובים (מומלץ)</translation> <translation id="2315043854645842844">מערכת ההפעלה אינה תומכת בבחירת אישור בצד הלקוח.</translation> <translation id="2321958826496381788">יש לגרור את המחוון עד שאפשר יהיה לקרוא את הקטע הזה בצורה נוחה. לאחר הקשה פעמיים על פיסקה, הטקסט אמור להיות מוצג בגודל הזה לפחות.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb index 84aec78..a7cd67a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">最後のタブに基づく検索キーワードの候補</translation> <translation id="2241634353105152135">一回限り</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> を削除</translation> +<translation id="228293613124499805">アクセスするサイトの多くは、ユーザーのデバイスにデータを保存します。多くの場合、エクスペリエンスの向上を目的として、設定やサイトと共有した情報が保存されます。この設定はオンにしておくことをおすすめします。</translation> <translation id="2289270750774289114">サイトから近くにある Bluetooth デバイスの検出を求められたときに確認する(推奨)</translation> <translation id="2315043854645842844">オペレーティング システムでサポートされていないため、クライアントサイドで証明書を選択することはできません。</translation> <translation id="2321958826496381788">読みやすくなるまでスライダをドラッグしてください。段落をダブルタップするとテキストがこれより大きくなります。</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb index 15d622a..b9383203 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">თქვენი ბოლო ჩანართის მიხედვით შემოთავაზებული ძიებები</translation> <translation id="2241634353105152135">მხოლოდ ერთხელ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> — ამოშლა</translation> +<translation id="228293613124499805">საიტების უმეტესობა, რომლებსაც სტუმრობთ, სავარაუდოდ, ინახავს მონაცემებს თქვენს მოწყობილობაზე. ეს, ხშირ შემთხვევაში, საჭიროა ფუნქციების თქვენზე მოსარგებად, მაგალითად, თქვენ მიერ არჩეული პარამეტრების ან საიტთან თქვენ მიერ გაზიარებული ინფორმაციის შენახვის გზით. გირჩევთ, ჩართული დატოვოთ ეს პარამეტრი.</translation> <translation id="2289270750774289114">საიტების მიერ ახლომდებარე Bluetooth მოწყობილობების აღმოჩენის მოთხოვნა (რეკომენდებული)</translation> <translation id="2315043854645842844">კლიენტის სერტიფიკატების არჩევა არ არის მხარდაჭერილი ოპერაციული სისტემის მიერ.</translation> <translation id="2321958826496381788">გადაათრიეთ ცოცია, რათა აირჩიოთ კითხვისთვის ყველაზე მოსახერხებელი შრიფტის ზომა. აბზაცზე ორჯერ შეხების შედეგად ტექსტი უნდა გადიდდეს ამ ზომამდე.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb index 09ec554d..196dad5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Соңғы ашылған қойындыға негізделіп ұсынылатын іздеу сұраулары</translation> <translation id="2241634353105152135">Бір-ақ рет</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> элементін жою</translation> +<translation id="228293613124499805">Сіз кіретін сайттардың көпшілігі теңшелімдеріңізді немесе сайтпен бөлісетін ақпаратты сақтау арқылы тәжірибеңізді жақсарту үшін құрылғыңызға деректерді сақтауы мүмкін. Бұл параметрді қосулы ұстауды ұсынамыз.</translation> <translation id="2289270750774289114">Сайт маңайдағы Bluetooth құрылғыларын анықтағысы келген кезде, рұқсат сұралсын (ұсынылады).</translation> <translation id="2315043854645842844">Операциялық жүйе клиенттік сертификатты таңдауға қолдау көрсетпейді.</translation> <translation id="2321958826496381788">Сырғытпаны оқу ыңғайлы болғанға дейін сүйреңіз. Абзацты екі рет басқан кезде, мәтіннің үлкендігі осындай болуы керек.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb index 7ab359a..0122286 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
@@ -58,11 +58,11 @@ <translation id="2182457891543959921">សួរមុនពេលអនុញ្ញាតឱ្យគេហទំព័របង្កើតផែនទី 3D នៃមជ្ឈដ្ឋានជុំវិញរបស់អ្នក ឬតាមដានទីតាំងកាមេរ៉ា (បានណែនាំ)</translation> <translation id="2212565012507486665">អនុញ្ញាតខូគី</translation> <translation id="2228071138934252756">ដើម្បីអនុញ្ញាតឱ្យ <ph name="APP_NAME" /> ចូលប្រើកាមេរ៉ារបស់អ្នក អ្នកក៏ត្រូវបើកកាមេរ៉ានៅក្នុង<ph name="BEGIN_LINK" />ការកំណត់ Android<ph name="END_LINK" /> ផងដែរ។</translation> -<translation id="2230120995564025978">Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit.</translation> <translation id="2235344399760031203">បានទប់ស្កាត់ខូគីភាគីទីបី</translation> <translation id="2238944249568001759">ការស្វែងរកដែលបានណែនាំផ្អែកលើផ្ទាំងចុងក្រោយរបស់អ្នក</translation> <translation id="2241634353105152135">ម្តងប៉ុណ្ណោះ</translation> <translation id="2253414712144136228">ដក <ph name="NAME_OF_LIST_ITEM" /> ចេញ</translation> +<translation id="228293613124499805">គេហទំព័រភាគច្រើនដែលអ្នកចូលមើលប្រហែលជារក្សាទុកទិន្នន័យទៅក្នុងឧបករណ៍របស់អ្នក ជារឿយៗដើម្បីកែលម្អបទពិសោធន៍របស់អ្នក ដោយរក្សាទុកចំណូលចិត្តរបស់អ្នក ឬព័ត៌មានដែលអ្នកចែករំលែកជាមួយគេហទំព័រ។ យើងសូមណែនាំឱ្យបន្តបើកការកំណត់នេះ។</translation> <translation id="2289270750774289114">សួរនៅពេលគេហទំព័រចង់ស្វែងរកឧបករណ៍ប៊្លូធូសដែលនៅជិត (បានណែនាំ)</translation> <translation id="2315043854645842844">ការជ្រើសរើសវិញ្ញាបនបត្រសម្រាប់ម៉ាស៊ីនកូនមិនគាំទ្រដោយប្រព័ន្ធដំណើរការនេះទេ។</translation> <translation id="2321958826496381788">ទាញរបារំកិលរហូតអ្នកអាចអានបានយ៉ាងងាយស្រួល។ អត្ថបទគួរតែមើលទៅធំប៉ុននេះ បន្ទាប់ពីប៉ះពីរដងនៅលើកថាខណ្ឌ។</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb index 49d088d8..cc316f13 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">ನಿಮ್ಮ ಹಿಂದಿನ ಟ್ಯಾಬ್ ಅನ್ನು ಆಧರಿಸಿ ಸೂಚಿಸಲಾದ ಹುಡುಕಾಟಗಳು</translation> <translation id="2241634353105152135">ಕೇವಲ ಒಂದು ಬಾರಿ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation> +<translation id="228293613124499805">ನೀವು ಭೇಟಿ ನೀಡುವ ಬಹುತೇಕ ಸೈಟ್ಗಳು ಬಹುಷಃ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೇಟಾವನ್ನು ಉಳಿಸಬಹುದು, ಅವುಗಳು ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುವ ಸಲುವಾಗಿ ನಿಮ್ಮ ಆದ್ಯತೆಗಳು ಅಥವಾ ಸೈಟ್ನೊಂದಿಗೆ ನೀವು ಹಂಚಿಕೊಳ್ಳುವ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಬಹುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್ ಸ್ಥಿತಿಯಲ್ಲಿಡಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.</translation> <translation id="2289270750774289114">ಸೈಟ್ ಯಾವಾಗ ಸಮೀಪದ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಅನ್ವೇಷಿಸಲು ಬಯಸುತ್ತದೆಯೋ ಆಗ ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> <translation id="2315043854645842844">ಕ್ಲೈಂಟ್ನ ಪ್ರಮಾಣಪತ್ರ ಆಯ್ಕೆಯನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನಿಂದ ಬೆಂಬಲಿಸಲಾಗಿಲ್ಲ.</translation> <translation id="2321958826496381788">ನೀವು ಇದನ್ನು ಆರಾಮವಾಗಿ ಓದಲು ಸಾಧ್ಯವಾಗುವವರೆಗೆ ಸ್ಲೈಡರ್ ಎಳೆಯಿರಿ. ಪ್ಯಾರಾಗ್ರಾಫ್ನಲ್ಲಿ ಡಬಲ್ ಟ್ಯಾಪಿಂಗ್ ಮಾಡಿದ ನಂತರ ಪಠ್ಯವು ಕನಿಷ್ಠ ಇಷ್ಟು ದೊಡ್ಡದಾಗಿ ಕಾಣಿಸಬೇಕು.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb index dd65dbca..e504bdcd 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">예</translation> <translation id="1446450296470737166">MIDI 기기의 전체 제어 허용</translation> <translation id="1448064542941920355">축소</translation> +<translation id="1547123415014299762">서드 파티 쿠키 허용됨</translation> <translation id="1620510694547887537">카메라</translation> <translation id="1633720957382884102">관련 사이트</translation> <translation id="1644574205037202324">방문 기록</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">마지막 탭을 바탕으로 한 추천 검색어</translation> <translation id="2241634353105152135">한 번만</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> 삭제</translation> +<translation id="228293613124499805">내가 방문하는 대부분의 사이트에서는 기기에 데이터를 저장하며, 사이트에 공유한 환경설정이나 정보를 저장하여 사용자 환경을 개선하는 경우가 많습니다. 이 설정을 유지하는 것이 좋습니다.</translation> <translation id="2289270750774289114">사이트가 주변 블루투스 기기를 조회하려고 할 때 확인(권장)</translation> <translation id="2315043854645842844">클라이언트측 인증서 선택이 운영체제에서 지원되지 않습니다.</translation> <translation id="2321958826496381788">편하게 읽을 수 있을 때까지 슬라이더를 드래그하세요. 단락을 두 번 탭하면 텍스트가 이 이상의 크기로 표시됩니다.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">정렬 기준:</translation> <translation id="8067883171444229417">동영상 재생</translation> <translation id="8068648041423924542">인증서를 선택할 수 없습니다.</translation> +<translation id="8077120325605624147">어떤 사이트에서나 광고를 게재할 수 있습니다.</translation> <translation id="8087000398470557479">이 콘텐츠의 출처는 Google에서 제공하는 <ph name="DOMAIN_NAME" />입니다.</translation> <translation id="8116925261070264013">음소거됨</translation> <translation id="813082847718468539">사이트 정보 보기</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">허용(권장)</translation> <translation id="8609465669617005112">위로 이동</translation> <translation id="8676374126336081632">입력내용 지우기</translation> +<translation id="8681886425883659911">방해가 되거나 사용자를 현혹하는 광고를 표시하는 것으로 알려진 사이트에서 광고가 차단됩니다.</translation> <translation id="868929229000858085">연락처 검색</translation> <translation id="8702612070107455751">모든 오프라인 데이터가 삭제됩니다.</translation> <translation id="8712637175834984815">확인</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">사이트에서 센서에 액세스하지 못하도록 차단</translation> <translation id="8823559166155093873">쿠키 차단</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">방해가 되는 광고</translation> <translation id="8903921497873541725">확대</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">기기에서 NFC가 사용 중지되어 있습니다. <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서 NFC를 사용 설정하세요.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb index b1785ae..b1cf04a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Соңку өтмөктүн негизинде табылган нерселер</translation> <translation id="2241634353105152135">Бир гана жлу</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> өчүрүү</translation> +<translation id="228293613124499805">Сиз баш баккан сайттардын көпчүлүгү параметрлериңизди же сайт менен бөлүшкөн маалыматыңызды түзмөгүңүзгө сакташы мүмкүн. Бул көбүнчө кызматты жакшыртуу максатында аткарылат. Бул параметрди күйүк бойдон калтырууну сунуштайбыз.</translation> <translation id="2289270750774289114">Сайт жакын жердеги Bluetooth түзмөктөрүн колдонгону жатканда уруксат суралсын (сунушталат)</translation> <translation id="2315043854645842844">Кардар тандаган тастыктама операциялык тутумда колдоого алынбайт.</translation> <translation id="2321958826496381788">Жылмышкычты текстти окуганга ыңгайлуу болгонго чейин сүйрөңүз. Параграфты эки жолу таптаганыңыздан кийин, текст ушундай өлчөмдө көрүнүп калышы керек.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb index edee21fa..12fdede 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">ການຊອກຫາທີ່ແນະນຳໂດຍອ້າງອີງໃສ່ແຖບຫຼ້າສຸດຂອງທ່ານ</translation> <translation id="2241634353105152135">ຄັ້ງດຽວເທົ່ານັ້ນ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ລຶບອອກ</translation> +<translation id="228293613124499805">ເວັບໄຊສ່ວນຫຼາຍທີ່ທ່ານເຂົ້າຈະບັນທຶກຂໍ້ມູນໄປໃສ່ອຸປະກອນຂອງທ່ານ, ສ່ວນຫຼາຍແມ່ນເພື່ອປັບປຸງປະສົບການຂອງທ່ານໂດຍການບັນທຶກການຕັ້ງຄ່າ ຫຼື ຂໍ້ມູນທີ່ທ່ານແບ່ງປັນກັບເວັບໄຊ. ພວກເຮົາແນະນຳໃຫ້ເປີດການຕັ້ງຄ່ານີ້ໄວ້.</translation> <translation id="2289270750774289114">ຖາມເມື່ອເວັບໄຊຕ້ອງການກວດຫາອຸປະກອນ Bluetooth ທີ່ຢູ່ໃກ້ຄຽງ (ແນະນຳ)</translation> <translation id="2315043854645842844">ການເລືອກໃບຢັ້ງຢືນເບື້ອງລູກຂ່າຍບໍ່ຖືກຮອງຮັບໂດຍລະບົບປະຕິບັດການ.</translation> <translation id="2321958826496381788">ລາກບ່ອນເລື່ອນໄປຈົນກວ່າທ່ານຈະຮູ້ສຶກວ່າອ່ານໄດ້ສະບາຍຕາ. ຂໍ້ຄວາມໃນໜ້າເວັບຈະມີຂະໜາດໃຫຍ່ເທົ່ານີ້ເປັນຢ່າງໜ້ອຍເມື່ອທຳການແຕະໃສ່ຫຍໍ້ໜ້າຂໍ້ຄວາມໃດນຶ່ງສອງເທື່ອ.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb index c5de854..0e21d63 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -22,6 +22,7 @@ <translation id="1426410128494586442">Taip</translation> <translation id="1446450296470737166">Leisti visiškai valdyti MIDI įr.</translation> <translation id="1448064542941920355">Sumažinti mastelį</translation> +<translation id="1547123415014299762">Trečiųjų šalių slapukai leidžiami</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Susijusios svetainės</translation> <translation id="1644574205037202324">Istorija</translation> @@ -59,6 +60,7 @@ <translation id="2238944249568001759">Siūlomos paieškos atsižvelgiant į paskutinį skirtuką</translation> <translation id="2241634353105152135">Tik vieną kartą</translation> <translation id="2253414712144136228">Pašalinti „<ph name="NAME_OF_LIST_ITEM" />“</translation> +<translation id="228293613124499805">Paprastai dauguma svetainių, kuriose lankotės, išsaugo duomenis įrenginyje, pvz., išsaugo jūsų nuostatas ar informaciją, kurią bendrinate su svetaine, kad jums būtų patogiau naudotis svetainių funkcijomis. Rekomenduojame palikti šį nustatymą įjungtą.</translation> <translation id="2289270750774289114">Paklausti, kai svetainė nori atrasti netoliese esančius „Bluetooth“ įrenginius (rekomenduojama)</translation> <translation id="2315043854645842844">Kliento pasirinkto sertifikato nepalaiko operacinė sistema.</translation> <translation id="2321958826496381788">Vilkite šliaužiklį, kol bus patogu skaityti šį tekstą. Du kartus palietus pastraipą, tekstas turėtų būti mažiausiai tokio dydžio.</translation> @@ -351,6 +353,7 @@ <translation id="8042586301629853791">Rūšiuoti pagal:</translation> <translation id="8067883171444229417">Leisti vaizdo įrašą</translation> <translation id="8068648041423924542">Nepavyko pasirinkti sertifikato.</translation> +<translation id="8077120325605624147">Bet kokia svetainė, kurioje lankotės, gali rodyti jums bet kokį skelbimą</translation> <translation id="8087000398470557479">Šis turinys yra iš domeno <ph name="DOMAIN_NAME" />, kurį teikia „Google“.</translation> <translation id="8116925261070264013">Išjungta</translation> <translation id="813082847718468539">Žiūrėti svetainės informaciją</translation> @@ -388,6 +391,7 @@ <translation id="857943718398505171">Leidžiama (rekomenduojama)</translation> <translation id="8609465669617005112">Perkelti į viršų</translation> <translation id="8676374126336081632">Išvalyti įvestą tekstą</translation> +<translation id="8681886425883659911">Skelbimai blokuojami svetainėse, kuriose rodomi nepageidaujami arba klaidinantys skelbimai</translation> <translation id="868929229000858085">Ieškokite savo kontaktuose</translation> <translation id="8702612070107455751">Visi neprisijungus pasiekiami duomenys bus išvalyti.</translation> <translation id="8712637175834984815">Supratau</translation> @@ -400,6 +404,7 @@ <translation id="8816026460808729765">Svetainės blokuojamos, kad nepasiektų jutiklių</translation> <translation id="8823559166155093873">Blokuoti slapukus</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Nepageidaujami skelbimai</translation> <translation id="8903921497873541725">Artinti</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">ALR išjungtas šiame įrenginyje. Įjunkite ALR <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb index b7faa13..c4a0613b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Jā</translation> <translation id="1446450296470737166">Pilnīga MIDI ierīču pārvaldība</translation> <translation id="1448064542941920355">Tuvināt</translation> +<translation id="1547123415014299762">Trešo pušu sīkfaili ir atļauti</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Saistītās vietnes</translation> <translation id="1644574205037202324">Vēsture</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Pamatojoties uz jūsu pēdējo cilni, ieteiktie meklēšanas vaicājumi</translation> <translation id="2241634353105152135">Tikai vienreiz</translation> <translation id="2253414712144136228">Noņemt vienumu “<ph name="NAME_OF_LIST_ITEM" />”</translation> +<translation id="228293613124499805">Lielākā daļa apmeklēto vietņu, iespējams, saglabā datus jūsu ierīcē. Bieži vien jūsu preferences vai ar vietni kopīgotā informācija tiek saglabāta, lai uzlabotu jums pieejamās lietošanas iespējas. Šo iestatījumu ieteicams atstāt ieslēgtu.</translation> <translation id="2289270750774289114">Vaicāt, ja vietne vēlas redzēt tuvumā esošās Bluetooth ierīces (ieteicams)</translation> <translation id="2315043854645842844">Operētājsistēma neatbalsta klienta puses sertifikāta atlasi.</translation> <translation id="2321958826496381788">Velciet slīdni, kamēr varat ērti lasīt. Pēc dubultskāriena rindkopai tekstam ir jābūt vismaz šādā lielumā.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Kārtot pēc:</translation> <translation id="8067883171444229417">Atskaņot videoklipu</translation> <translation id="8068648041423924542">Nevar atlasīt sertifikātu.</translation> +<translation id="8077120325605624147">Jebkurā jūsu apmeklētā vietnē var tikt rādītas jebkādas reklāmas</translation> <translation id="8087000398470557479">Šis saturs ir no vietnes <ph name="DOMAIN_NAME" />, ko nodrošina Google.</translation> <translation id="8116925261070264013">Izslēgta skaņa</translation> <translation id="813082847718468539">Skatīt informāciju par vietni</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Atļauta (ieteicams)</translation> <translation id="8609465669617005112">Virziet uz augšu</translation> <translation id="8676374126336081632">Notīrīt ievadi</translation> +<translation id="8681886425883659911">Reklāmas tiek bloķētas vietnēs, kurās ir konstatēta traucējošu vai maldinošu reklāmu rādīšana</translation> <translation id="868929229000858085">Meklējiet kontaktpersonas</translation> <translation id="8702612070107455751">Visi bezsaistē saglabātie dati tiks notīrīti.</translation> <translation id="8712637175834984815">Sapratu!</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Bloķēt vietņu piekļuvi sensoriem</translation> <translation id="8823559166155093873">Bloķēt sīkfailus</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Traucējošas reklāmas</translation> <translation id="8903921497873541725">Tuvināt</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">Šajā ierīcē tehnoloģija NFC ir izslēgta. Ieslēdziet to <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb index 46443a2d..348f5bb 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
@@ -58,11 +58,11 @@ <translation id="2182457891543959921">Прашувај пред да им дозволиш на сајтовите да создадат 3D-карта на опкружувањето или да ја следат позицијата на камерата (препорачано)</translation> <translation id="2212565012507486665">Дозволи колачиња</translation> <translation id="2228071138934252756">За да овозможите <ph name="APP_NAME" /> да пристапува до вашата камера, вклучете ја дозволата за камерата и во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation> -<translation id="2230120995564025978">Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit.</translation> <translation id="2235344399760031203">Блокирани се колачиња од трети страни</translation> <translation id="2238944249568001759">Предложени пребарувања според вашата последна картичка</translation> <translation id="2241634353105152135">Само еднаш</translation> <translation id="2253414712144136228">Отстранете <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Повеќето сајтови што ги посетувате веројатно зачувуваат податоци на вашиот уред, честопати за да го подобрат вашето доживување преку зачувување на вашите поставки или податоци што ги споделувате со сајтот. Препорачуваме да ја задржите поставкава вклучена.</translation> <translation id="2289270750774289114">Прашај кога некој сајт сака да открива уреди со Bluetooth во близина (се препорачува)</translation> <translation id="2315043854645842844">Оперативниот систем не поддржува избор на сертификат од страна на клиентот.</translation> <translation id="2321958826496381788">Влечете го лизгачот сѐ додека не го читате ова удобно. Текстот треба да изгледа барем олку голем по двојно допирање на пасусот.</translation> @@ -116,6 +116,7 @@ <translation id="3123473560110926937">Блокирано на некои сајтови</translation> <translation id="3143754809889689516">Пушти од почеток</translation> <translation id="3162899666601560689">Сајтовите може да користат колачиња за да го подобрат вашето доживување со прелистувањето, на пример, да ве одржат најавени или да запомнат ставки во кошничката за купување</translation> +<translation id="3165022941318558018">Дозволете му на сајт да користи колачиња од трети страни</translation> <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> складирани податоци</translation> <translation id="3203366800380907218">Од интернет</translation> <translation id="321187648315454507">За да овозможите <ph name="APP_NAME" /> да ви испраќа известувања, вклучете ја дозволата за известувања и во <ph name="BEGIN_LINK" />Поставки за Android<ph name="END_LINK" />.</translation> @@ -154,6 +155,7 @@ <translation id="3859306556332390985">Барај понапред</translation> <translation id="3895926599014793903">Присилно овозможи зумирање</translation> <translation id="3908288065506437185">Блокирајте колачиња од трети страни во режимот „Инкогнито“</translation> +<translation id="3918378745482005425">Некои функции можеби нема да функционираат. Сличните сајтови сепак може да користат колачиња од трети страни.</translation> <translation id="3955193568934677022">Дозволете сајтовите да пуштаат заштитени содржини (се препорачува)</translation> <translation id="3967822245660637423">Преземањето е завршено</translation> <translation id="3987993985790029246">Копирај линк</translation> @@ -342,6 +344,7 @@ <translation id="7649070708921625228">Помош</translation> <translation id="7658239707568436148">Откажи</translation> <translation id="7667547420449112975">Чудесниот волшебник од Оз</translation> +<translation id="7684642910516280563">Не дозволувајте му на сајт да користи колачиња од трети страни</translation> <translation id="7690549345586282764">Прикажи зумирање</translation> <translation id="7695658402549134106">Поставка за сајт за <ph name="SITE_NAME" /></translation> <translation id="7719367874908701697">Зумирање страница</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb index ec18f97..f6ff8fc 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">അതെ</translation> <translation id="1446450296470737166">MIDI ഉപകരണങ്ങളുടെ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കുക</translation> <translation id="1448064542941920355">സൂം കുറയ്ക്കുക</translation> +<translation id="1547123415014299762">മൂന്നാം-കക്ഷി കുക്കികൾ അനുവദനീയമാണ്</translation> <translation id="1620510694547887537">ക്യാമറ</translation> <translation id="1633720957382884102">അനുബന്ധ സെെറ്റുകൾ</translation> <translation id="1644574205037202324">ചരിത്രം</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">നിങ്ങളുടെ അവസാന ടാബ് അടിസ്ഥാനമാക്കി നിർദ്ദേശിക്കുന്ന തിരയലുകൾ</translation> <translation id="2241634353105152135">ഒരിക്കൽ മാത്രം</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> നീക്കം ചെയ്യുക</translation> +<translation id="228293613124499805">നിങ്ങൾ സന്ദർശിക്കുന്ന മിക്ക സൈറ്റുകളും നിങ്ങളുടെ മുൻഗണനകളോ സൈറ്റുമായി പങ്കിടുന്ന വിവരങ്ങളോ സംരക്ഷിച്ച് നിങ്ങളുടെ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിന് ഉപകരണത്തിൽ ഡാറ്റ സംരക്ഷിച്ചേക്കാം. ഈ ക്രമീകരണം ഓണാക്കി വെക്കാൻ ഞങ്ങൾ നിർദ്ദേശിക്കുന്നു.</translation> <translation id="2289270750774289114">സമീപത്തുള്ള Bluetooth ഉപകരണങ്ങൾ കണ്ടെത്താൻ ഒരു സൈറ്റ് താൽപ്പര്യപ്പെടുമ്പോൾ ചോദിക്കുക (ശുപാർശചെയ്തത്)</translation> <translation id="2315043854645842844">ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ക്ലയന്റിന്റെ സർട്ടിഫിക്കറ്റ് തിരഞ്ഞെടുക്കലിനെ പിന്തുണയ്ക്കുന്നില്ല.</translation> <translation id="2321958826496381788">നിങ്ങൾക്ക് ഇത് സൗകര്യപ്രദമായി വായിക്കാൻ കഴിയുന്നതുവരെ സ്ലൈഡർ വലിക്കുക. ഒരു ഖണ്ഡികയിൽ ഇരട്ട-ടാപ്പ് ചെയ്തതിനുശേഷം ടെക്സ്റ്റിന് ഈ വലുപ്പമെങ്കിലും ഉണ്ടായിരിക്കണം.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">ഇപ്രകാരം അടുക്കുക:</translation> <translation id="8067883171444229417">വീഡിയോ പ്ലേ ചെയ്യുക</translation> <translation id="8068648041423924542">സർട്ടിഫിക്കറ്റ് തിരഞ്ഞെടുക്കാനാവുന്നില്ല.</translation> +<translation id="8077120325605624147">നിങ്ങൾ സന്ദർശിക്കുന്ന ഏത് സൈറ്റിനും ഏത് പരസ്യവും നിങ്ങളെ കാണിക്കാനാകും</translation> <translation id="8087000398470557479">ഈ ഉള്ളടക്കം Google-ൽ നിന്നുള്ള <ph name="DOMAIN_NAME" /> ഡൊമെയ്നിൽ നിന്നുള്ളതാണ്.</translation> <translation id="8116925261070264013">മ്യൂട്ടുചെയ്തു</translation> <translation id="813082847718468539">സൈറ്റ് വിവരങ്ങള് കാണുക</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">അനുവദിച്ചിരിക്കുന്നു (ശുപാർശചെയ്തത്)</translation> <translation id="8609465669617005112">മുകളിലേക്ക് നീക്കുക</translation> <translation id="8676374126336081632">ഇൻപുട്ട് മായ്ക്കുക</translation> +<translation id="8681886425883659911">തടസ്സമുണ്ടാക്കുന്നതോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങൾ കാണിക്കുന്ന സൈറ്റുകളിൽ പരസ്യങ്ങൾ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation> <translation id="868929229000858085">നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുക</translation> <translation id="8702612070107455751">എല്ലാ ഓഫ്ലൈൻ ഡാറ്റയും മായ്ക്കും.</translation> <translation id="8712637175834984815">മനസ്സിലായി</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">സെൻസറുകൾ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="8823559166155093873">കുക്കികൾ ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">തടസ്സമുണ്ടാക്കുന്ന പരസ്യങ്ങൾ</translation> <translation id="8903921497873541725">സൂം ഇന് ചെയ്യുക</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">ഈ ഉപകരണത്തിനുള്ള NFC ഓഫാണ്. ഇത് <ph name="BEGIN_LINK" />Android ക്രമീകരണത്തിൽ<ph name="END_LINK" /> ഓണാക്കുക.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb index d5039602..836d7685 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Тийм</translation> <translation id="1446450296470737166">MIDI төхөөрөмжийг бүрэн хянахыг зөвшөөрөх</translation> <translation id="1448064542941920355">Томруулалтыг багасгах</translation> +<translation id="1547123415014299762">Гуравдагч талын күүкиг зөвшөөрдөг</translation> <translation id="1620510694547887537">Камер</translation> <translation id="1633720957382884102">Холбоотой сайтууд</translation> <translation id="1644574205037202324">Түүх</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Таны сүүлийн табд тулгуурласан санал болгосон хайлтууд</translation> <translation id="2241634353105152135">Ганц удаа</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" />-г хасах</translation> +<translation id="228293613124499805">Таны зочилсон ихэнх сайт ихэвчлэн түүнтэй хуваалцсан сонголт эсвэл мэдээллийг хадгалснаар хэрэглээг тань сайжруулахын тулд өгөгдлийг төхөөрөмжид тань хадгалдаг байж магадгүй. Бид энэ тохиргоог асаалтай байлгахыг зөвлөдөг.</translation> <translation id="2289270750774289114">Сайт ойролцоох Bluetooth төхөөрөмжийг илрүүлэх хүсэлтэй үед асуух (санал болгосон)</translation> <translation id="2315043854645842844">Үйлчлүүлэгч талын сертификатын сонголтыг үйлдлийн системээс дэмжээгүй.</translation> <translation id="2321958826496381788">Уншихад тохиромжтой болох хүртэл хүрээг томруулж татна уу. Бичвэр дээр хоёр удаа товшсоны дараагаар текстийн хэмжээ томорч харагдана.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Дараахаар эрэмбэлэх:</translation> <translation id="8067883171444229417">Видео тоглуулах</translation> <translation id="8068648041423924542">Сертификат сонгох боломжгүй.</translation> +<translation id="8077120325605624147">Таны зочилсон ямар ч сайт танд ямар ч зар харуулах боломжтой</translation> <translation id="8087000398470557479"><ph name="DOMAIN_NAME" />-н энэ агуулгыг Google танд хүргэж байна.</translation> <translation id="8116925261070264013">Дууг хаасан</translation> <translation id="813082847718468539">Сайтын мэдээллийг үзэх</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Зөвшөөрөгдсөн (санал болгосон)</translation> <translation id="8609465669617005112">Дээш зөөх</translation> <translation id="8676374126336081632">Оролтыг цэвэрлэх</translation> +<translation id="8681886425883659911">Төвөгтэй эсвэл төөрөгдүүлсэн зар үзүүлдэг сайтууд дээр зарыг блоклосон</translation> <translation id="868929229000858085">Харилцагчдаа хайх</translation> <translation id="8702612070107455751">Аливаа офлайн өгөгдлийг устгах болно.</translation> <translation id="8712637175834984815">Ойлголоо</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Сайтуудыг мэдрэгчид хандахыг хориглох</translation> <translation id="8823559166155093873">Күүкиг блоклох</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Төвөгтэй зар</translation> <translation id="8903921497873541725">Томруулж харах</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">Энэ төхөөрөмж дээр NFC унтраалттай байна. Үүнийг <ph name="BEGIN_LINK" />Android-н тохиргоо<ph name="END_LINK" /> хэсэгт асаана уу.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb index f4306ad..aabab28 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">तुमच्या मागील टॅबनुसार सुचवलेले शोध</translation> <translation id="2241634353105152135">फक्त एकदाच</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> काढून टाका</translation> +<translation id="228293613124499805">तुम्ही भेट देता त्या बहुतांश साइट या तुमच्या डिव्हाइसवर डेटा सेव्ह करत असण्याची शक्यता आहे. बरेचदा तुमची प्राधान्ये किंवा तुम्ही साइटसोबत शेअर करता ती माहिती सेव्ह करून, तुमच्या अनुभवामध्ये सुधारणा करण्यासाठी हे केले जाते. हे सेटिंग सुरू ठेवण्याची आम्ही शिफारस करतो.</translation> <translation id="2289270750774289114">साइटला केव्हा जवळपासचे ब्लूटूथ डिव्हाइस शोधायचे आहे हे विचारा (शिफारस केलेले)</translation> <translation id="2315043854645842844">क्लायंट साइड प्रमाणपत्र निवडीला ऑपरेटिंग सिस्टमचा सपोर्ट नाही.</translation> <translation id="2321958826496381788">तुम्ही हे व्यवस्थित वाचू शकण्यापार्यंत स्लायडर ड्रॅग करा. परिच्छेदावर डबल-टॅपिंग केल्यानंतर मजकूर कमीत कमी यापेक्षा मोठा दिसावा.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb index 00dcd57..b13e386 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Ya</translation> <translation id="1446450296470737166">Benarkan kawalan penuh peranti MIDI</translation> <translation id="1448064542941920355">Zum keluar</translation> +<translation id="1547123415014299762">Kuki pihak ketiga dibenarkan</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">Laman yang berkaitan</translation> <translation id="1644574205037202324">Sejarah</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Carian cadangan berdasarkan tab terakhir anda</translation> <translation id="2241634353105152135">Hanya sekali</translation> <translation id="2253414712144136228">Alih keluar <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Kebanyakan laman yang anda lawati mungkin menyimpan data pada peranti anda, selalunya untuk meningkatkan pengalaman anda dengan menyimpan pilihan anda atau maklumat yang anda kongsi dengan laman tersebut. Kami mengesyorkan agar anda membiarkan tetapan ini dihidupkan.</translation> <translation id="2289270750774289114">Tanya apabila tapak mahu mencari peranti Bluetooth berdekatan (disyorkan)</translation> <translation id="2315043854645842844">Pemilihan sijil pihak pelanggan tidak disokong oleh sistem pengendalian ini.</translation> <translation id="2321958826496381788">Seret gelangsar sehingga anda selesa membaca teks ini. Teks harus kelihatan sekurang-kurangnya sebesar ini selepas mengetik dua kali pada perenggan.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Isih mengikut:</translation> <translation id="8067883171444229417">Mainkan video</translation> <translation id="8068648041423924542">Tidak dapat memilih sijil.</translation> +<translation id="8077120325605624147">Mana-mana laman yang anda lawati boleh memaparkan sebarang iklan kepada anda</translation> <translation id="8087000398470557479">Kandungan ini adalah daripada <ph name="DOMAIN_NAME" />, disampaikan oleh Google.</translation> <translation id="8116925261070264013">Diredam</translation> <translation id="813082847718468539">Lihat maklumat tapak</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Dibenarkan (disyorkan)</translation> <translation id="8609465669617005112">Alihkan ke atas</translation> <translation id="8676374126336081632">Kosongkan input</translation> +<translation id="8681886425883659911">Iklan disekat di laman yang diketahui memaparkan iklan yang mengganggu atau mengelirukan</translation> <translation id="868929229000858085">Cari dalam kenalan anda</translation> <translation id="8702612070107455751">Sebarang data luar talian akan dipadamkan.</translation> <translation id="8712637175834984815">Faham</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Sekat tapak daripada mengakses penderia</translation> <translation id="8823559166155093873">Sekat kuki</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Iklan mengganggu</translation> <translation id="8903921497873541725">Zum masuk</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC dimatikan untuk peranti ini. Hidupkan dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb index 4078d53..39913a4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Yes</translation> <translation id="1446450296470737166">MIDI ကိရိယာများအား အပြည့်အဝ ထိန်းချုပ်ခွင့် ပြုရန်</translation> <translation id="1448064542941920355">ဇူးမ်ချုံ့ရန်</translation> +<translation id="1547123415014299762">ပြင်ပကုမ္ပဏီ၏ကွတ်ကီးများကို ခွင့်ပြုထားသည်</translation> <translation id="1620510694547887537">ကင်မရာ</translation> <translation id="1633720957382884102">ဆက်စပ်သည့် ဝဘ်ဆိုက်များ</translation> <translation id="1644574205037202324">မှတ်တမ်း</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">သင့်နောက်ဆုံးတဘ်ကို အခြေခံ၍ အကြံပြုထားသောရှာဖွေမှုများ</translation> <translation id="2241634353105152135">တစ်ကြိမ်သာ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ဖယ်ရှားရန်</translation> +<translation id="228293613124499805">သင်ဝင်ကြည့်သည့် ဝဘ်ဆိုက်အများစုသည် အများအားဖြင့် အသုံးပြုမှု ပိုမိုကောင်းမွန်စေရန်အတွက် သင်၏သတ်မှတ်ချက်များ (သို့) ဝဘ်ဆိုက်နှင့် မျှဝေထားသည့် အချက်အလက်များကို ဒေတာအဖြစ် သင့်စက်တွင် သိမ်းထားနိုင်သည်။ ဤဆက်တင်ကို ဖွင့်ထားရန် အကြံပြုပါသည်။</translation> <translation id="2289270750774289114">ဝဘ်ဆိုက်က အနီးအနားရှိ ဘလူးတုသ်ကိရိယာများ ရှာဖွေလိုသည့်အခါ ခွင့်တောင်းရန် (အကြံပြုထားသည်)</translation> <translation id="2315043854645842844">ကလိုင်းယင့် ဘက်မှ လက်မှတ်ရွေးမှုကို လည်ပတ်သည့်စနစ်မှ မပံ့ပိုးပါ။</translation> <translation id="2321958826496381788">သင်က ယင်းကို ဖတ်ရအဆင်ပြေသည့် အထိ ဆွဲတန်းကို ဆွဲယူပါ။ စာသားတွင် စာပိုဒ် တစ်ခုကို နှစ်ကြိမ် ပုတ်လိုက်သည့် နောက်မှာ ဤမျှလောက် ကြီးလျက် မြင်ရသင့်သည်။</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">စီရန်-</translation> <translation id="8067883171444229417">ဗီဒီယို ဖွင့်ရန်</translation> <translation id="8068648041423924542">လက်မှတ်ကို မရွေးနိုင်ပါ။</translation> +<translation id="8077120325605624147">သင်ဝင်ကြည့်သည့် ဝဘ်ဆိုက်တိုင်းက မည်သည့်ကြော်ငြာကိုမဆို ပြနိုင်သည်</translation> <translation id="8087000398470557479">ဤအကြောင်းအရာသည် Google မှနေ၍ပံ့ပိုးပေးထားသည့် <ph name="DOMAIN_NAME" /> မှဖြစ်သည်။</translation> <translation id="8116925261070264013">ဖျောက်ထားသည်</translation> <translation id="813082847718468539">ဆိုက် အချက်အလက်များကို ကြည့်ရန်</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">ခွင့်ပြု၏ (အကြံပြုထား)</translation> <translation id="8609465669617005112">အပေါ်ရွှေ့ပါ</translation> <translation id="8676374126336081632">ထည့်သွင်းမှု ရှင်းရန်</translation> +<translation id="8681886425883659911">ကြားဖြတ်သော (သို့) အထင်မှားစေသော ကြော်ငြာများပြသည့် ဝဘ်ဆိုက်များတွင် ကြော်ငြာများကို ပိတ်ထားသည်</translation> <translation id="868929229000858085">သင်၏အဆက်အသွယ်များကို ရှာရန်</translation> <translation id="8702612070107455751">အော့ဖ်လိုင်းဒေတာ မှန်သမျှကို ရှင်းထုတ်လိုက်ပါမည်။</translation> <translation id="8712637175834984815">ရပါပြီ!</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">ဝဘ်ဆိုက်များအား အာရုံခံစနစ်များ အသုံးပြုခြင်းကို တားမြစ်သည်</translation> <translation id="8823559166155093873">ကွတ်ကီးများ ပိတ်ထားရန်</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">ကြားဖြတ်ကြော်ငြာများ</translation> <translation id="8903921497873541725">ချဲ့ကြည့်ပါ</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">ဤစက်အတွက် NFC ကို ပိတ်ထားသည်။ <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> ထဲတွင် ၎င်းကို ဖွင့်ပါ။</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb index 1cbec48..8fad7040 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">हो</translation> <translation id="1446450296470737166">MIDI डिभाइसहरूको पूर्ण नियन्त्रणलाई अनुमति दिनुहोस्</translation> <translation id="1448064542941920355">जुमको स्तर घटाउनुहोस्</translation> +<translation id="1547123415014299762">तेस्रो पक्षीय कुकीहरू प्रयोग गर्न दिइन्छ</translation> <translation id="1620510694547887537">क्यामेरा</translation> <translation id="1633720957382884102">सम्बन्धित साइटहरू</translation> <translation id="1644574205037202324">इतिहास</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">तपाईंले पछिल्लो पटक हेर्नुभएको ट्याबका आधारमा सिफारिस गरिएका खोजहरू</translation> <translation id="2241634353105152135">एकपटक मात्र</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> हटाउनुहोस्</translation> +<translation id="228293613124499805">तपाईंले खोल्ने अधिकांश साइटहरूले प्रायः जसो तपाईंले उक्त साइटसँग सेयर गरेका प्राथमिकता वा जानकारी सेभ गरेर तपाईंलाई अझ राम्रो सुविधा प्रदान गर्न तपाईंको डिभाइसमा जानकारी सम्भवतः सेभ गर्छन्। हामी यो सेटिङ अन राख्न सिफारिस गर्छौँ।</translation> <translation id="2289270750774289114">कुनै साइटले छेउछाउका ब्लुटुथ यन्त्रहरू पत्ता लगाउन खोज्दा सोध्नुहोस् (सिफारिस गरिएको)</translation> <translation id="2315043854645842844">अपरेटिङ सिस्टमले क्लाइन्ट साइड प्रमाणपत्रको चयनलाई समर्थन गर्दैन।</translation> <translation id="2321958826496381788">तपाईंले आरामसँग पढ्न सक्दासम्म स्लाइडरलाई तान्नुहोस्। अनुच्छेदमा दोहोरो ट्याप गरेपछि पाठ कम्तीमा पनि यतिको ठुलो देखिनुपर्छ।</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">यसअनुसार क्रमबद्ध गर्नुहोस्:</translation> <translation id="8067883171444229417">भिडियो प्ले गर्नुहोस्</translation> <translation id="8068648041423924542">प्रमाणपत्र चयन गर्न असमर्थ।</translation> +<translation id="8077120325605624147">तपाईंले खोल्ने कुनै पनि साइटले तपाईंलाई जुनसुकै विज्ञापन देखाउन सक्छ</translation> <translation id="8087000398470557479">यो Google द्वारा डेलिभर गरिएको <ph name="DOMAIN_NAME" /> को सामग्री हो।</translation> <translation id="8116925261070264013">म्युट गरियो</translation> <translation id="813082847718468539">साइट जानकारी हेर्नुहोस्</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">(सिफारिस गरिएको) अनुमति दिएको</translation> <translation id="8609465669617005112">माथि सार्नुहोस्</translation> <translation id="8676374126336081632">आगत मेटाउनुहोस्</translation> +<translation id="8681886425883659911">हस्तक्षेपकारी वा भ्रामक विज्ञापनहरू देखाउने साइटहरूमा विज्ञापन ब्लक गरिन्छ</translation> <translation id="868929229000858085">आफ्ना सम्पर्कहरू खोज्नुहोस्</translation> <translation id="8702612070107455751">सबै अफलाइन डेटा हटाइने छ।</translation> <translation id="8712637175834984815">भयो</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">साइटहरूलाई सेन्सरहरूमाथि पहुँच राख्न नदिनुहोस्</translation> <translation id="8823559166155093873">कुकीहरूलाई रोक लगाउनुहोस्</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">हस्तक्षेपकारी विज्ञापनहरू</translation> <translation id="8903921497873541725">जुम इन</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">यो डिभाइसमा NFC निष्क्रिय पारिएको छ। <ph name="BEGIN_LINK" />Android का सेटिङ<ph name="END_LINK" /> मा गई यसलाई अन गर्नुहोस्।</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb index 2318eeda..ed51e36f9 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Ja</translation> <translation id="1446450296470737166">Volledig beheer van MIDI-apparaten toestaan</translation> <translation id="1448064542941920355">Zoomniveau verkleinen</translation> +<translation id="1547123415014299762">Cookies van derden zijn toegestaan</translation> <translation id="1620510694547887537">Camera</translation> <translation id="1633720957382884102">Gerelateerde sites</translation> <translation id="1644574205037202324">Geschiedenis</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Voorgestelde zoekopdrachten op basis van je laatste tabblad</translation> <translation id="2241634353105152135">Slechts één keer</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> verwijderen</translation> +<translation id="228293613124499805">De meeste sites die je bezoekt, slaan waarschijnlijk gegevens op je apparaat op. Dit gebeurt vaak om de functionaliteit te verbeteren door je voorkeuren of met de site gedeelde informatie op te slaan. We raden je aan deze instelling aan te laten.</translation> <translation id="2289270750774289114">Vragen wanneer een site Bluetooth-apparaten in de buurt wilt detecteren (aanbevolen)</translation> <translation id="2315043854645842844">Certificaatselectie aan clientzijde wordt niet ondersteund door het besturingssysteem.</translation> <translation id="2321958826496381788">Sleep de schuifknop tot je deze tekst prettig kunt lezen. De tekst moet minimaal deze grootte hebben nadat je op een alinea hebt gedubbeltikt.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Sorteren op:</translation> <translation id="8067883171444229417">Video afspelen</translation> <translation id="8068648041423924542">Kan certificaat niet selecteren.</translation> +<translation id="8077120325605624147">Elke site die je bezoekt, kan elke advertentie aan je tonen</translation> <translation id="8087000398470557479">Deze content is afkomstig van <ph name="DOMAIN_NAME" />, geleverd door Google.</translation> <translation id="8116925261070264013">Geluid uit</translation> <translation id="813082847718468539">Sitegegevens bekijken</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">Toegestaan (aanbevolen)</translation> <translation id="8609465669617005112">Omhoog</translation> <translation id="8676374126336081632">Invoer wissen</translation> +<translation id="8681886425883659911">Advertenties worden geblokkeerd op sites waarvan bekend is dat ze opdringerige of misleidende advertenties tonen</translation> <translation id="868929229000858085">Zoek in je contacten</translation> <translation id="8702612070107455751">Alle offline gegevens worden gewist.</translation> <translation id="8712637175834984815">Begrepen</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Sites geen toegang tot sensoren geven</translation> <translation id="8823559166155093873">Cookies blokkeren</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Opdringerige advertenties</translation> <translation id="8903921497873541725">Inzoomen</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC staat uit voor dit apparaat. Zet deze functie aan via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb index 53f190b..c5debe6 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Foreslåtte søk basert på den siste fanen din</translation> <translation id="2241634353105152135">Bare én gang</translation> <translation id="2253414712144136228">Fjern <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">De fleste nettsteder du besøker, lagrer sannsynligvis data på enheten din. Ofte gjøres dette for å gi deg en bedre opplevelse, ved at preferansene dine eller informasjonen du deler med nettstedet, blir lagret. Vi anbefaler at du lar denne innstillingen være på.</translation> <translation id="2289270750774289114">Spør når nettsteder vil oppdage Bluetooth-enheter i nærheten (anbefales)</translation> <translation id="2315043854645842844">Operativsystemet har ikke støtte for sertifikatvalg på klientsiden.</translation> <translation id="2321958826496381788">Dra glidebryteren til du kan lese dette uten problemer. Når du har dobbelttrykket på et avsnitt, bør teksten være minst like stor som dette.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb index 17ff6348..d98f827 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">ଆପଣଙ୍କ ଶେଷ ଟାବ ଆଧାରରେ ପ୍ରସ୍ତାବିତ ସନ୍ଧାନଗୁଡ଼ିକ</translation> <translation id="2241634353105152135">ଥରେ ମାତ୍ର</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" />କୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> +<translation id="228293613124499805">ପ୍ରାୟତଃ ଆପଣଙ୍କ ପସନ୍ଦ କିମ୍ବା ଆପଣ ସାଇଟ ସହ ସେୟାର କରୁଥିବା ସୂଚନାକୁ ସେଭ କରି ଆପଣଙ୍କର ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ପାଇଁ, ଆପଣ ଭିଜିଟ କରୁଥିବା ଅଧିକାଂଶ ସାଇଟ ସମ୍ଭବତଃ ଆପଣଙ୍କ ଡିଭାଇସରେ ଡାଟା ସେଭ କରିଥାନ୍ତି। ଏହି ସେଟିଂ ଚାଲୁ ରଖିବାକୁ ଆମେ ସୁପାରିଶ କରୁ।</translation> <translation id="2289270750774289114">ଯେତେବେଳେ ଏକ ସାଇଟ୍ ଆଖପାଖର ବ୍ଲୁଟୂଥ୍ ଡିଭାଇସ୍ଗୁଡ଼ିକୁ ଖୋଜିବାକୁ ଚାହୁଁଛି, ସେତେବେଳେ ପଚାରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation> <translation id="2315043854645842844">କ୍ଲାଏଣ୍ଟ ସାଇଡ୍ ସାର୍ଟିଫିକେଟ୍ ଚୟନ ଅପରେଟିଂ ସିଷ୍ଟମ୍ ଦ୍ବାରା ସପୋର୍ଟ କରୁନାହିଁ।</translation> <translation id="2321958826496381788">ସ୍ଲାଇଡର୍କୁ ସେପର୍ଯ୍ୟନ୍ତ ଟାଣନ୍ତୁ, ଯେପର୍ଯ୍ୟନ୍ତ ଆପଣ ଏହାକୁ ଭଲ ଭାବରେ ପଢ଼ିନାହାନ୍ତି। ପାରାଗ୍ରାଫ୍ରେ ଦୁଇଥର ଟାପ୍ କରିବା ପରେ ଟେକ୍ସଟ୍ ଅତି କମ୍ରେ ଏତେ ବଡ଼ ଦେଖାଯିବା ଆବଶ୍ୟକ।</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb index 0df18f3a..4b3970b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">ਤੁਹਾਡੀ ਪਿਛਲੀ ਟੈਬ ਦੇ ਆਧਾਰ 'ਤੇ ਸੁਝਾਈਆਂ ਗਈਆਂ ਖੋਜਾਂ</translation> <translation id="2241634353105152135">ਸਿਰਫ ਇੱਕ ਵਾਰ</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ਹਟਾਓ</translation> +<translation id="228293613124499805">ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਗਈਆਂ ਜ਼ਿਆਦਾਤਰ ਸਾਈਟਾਂ, ਤੁਹਾਡੀਆਂ ਤਰਜੀਹਾਂ ਜਾਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਾਈਟ 'ਤੇ ਸਾਂਝੀ ਕੀਤੀ ਜਾਣਕਾਰੀ ਨੂੰ ਰੱਖਿਅਤ ਕਰ ਕੇ ਤੁਹਾਡੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਡਾਟਾ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਅਸੀਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਚਾਲੂ ਰੱਖਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦੇ ਹਾਂ।</translation> <translation id="2289270750774289114">ਕਿਸੇ ਸਾਈਟ ਵੱਲੋਂ ਨਜ਼ਦੀਕੀ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵੇਲੇ ਪੁੱਛੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation> <translation id="2315043854645842844">ਕਲਾਈਂਟ ਵੱਲੋਂ ਕੀਤੀ ਗਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਚੋਣ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਵੱਲੋਂ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।</translation> <translation id="2321958826496381788">ਸਲਾਈਡਰ ਨੂੰ ਡ੍ਰੈਗ ਕਰੋ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਇਸਨੂੰ ਆਸਾਨੀ ਨਾਲ ਪੜ੍ਹ ਨਾ ਲਓ। ਲਿਖਤ ਇੱਕ ਪੈਰਾਗ੍ਰਾਫ 'ਤੇ ਡਬਲ-ਟੈਪ ਕਰਨ ਤੋਂ ਬਾਅਦ ਘੱਟੋ-ਘੱਟ ਇੰਨਾ ਵੱਡਾ ਦਿਖਾਈ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ।</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb index b430bd2..c62423e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Sugerowane wyszukiwania na podstawie ostatnio otwartej karty</translation> <translation id="2241634353105152135">Tylko raz</translation> <translation id="2253414712144136228">Usuń <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Aby strony, na które wchodzisz, mogły lepiej działać, przeważnie zapisują one na Twoim urządzeniu dane. Najczęściej są to informacje, które im udostępniasz, lub Twoje ustawienia. Zalecamy pozostawienie tego ustawienia włączonego.</translation> <translation id="2289270750774289114">Pytaj, gdy strona chce wykryć urządzenia Bluetooth w pobliżu (zalecane)</translation> <translation id="2315043854645842844">Wybieranie certyfikatu klienta nie jest obsługiwane przez ten system operacyjny.</translation> <translation id="2321958826496381788">Przeciągaj suwak, by umożliwić wygodne czytanie. Gdy dwukrotnie klikniesz akapit, tekst powiększy się co najmniej do tej wielkości.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb index aaed8fc..03cae2b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Pesquisas sugeridas com base na sua última guia</translation> <translation id="2241634353105152135">Apenas uma vez</translation> <translation id="2253414712144136228">Remover <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">A maioria dos sites que você visita provavelmente salva dados no seu dispositivo, muitas vezes para melhorar a experiência ao salvar suas preferências ou as informações que você compartilha com o site. Recomendamos manter essa configuração ativada.</translation> <translation id="2289270750774289114">Perguntar quando um site quer descobrir dispositivos Bluetooth nas proximidades (recomendado)</translation> <translation id="2315043854645842844">A seleção de certificado do cliente não é compatível com o sistema operacional.</translation> <translation id="2321958826496381788">Arraste o controle deslizante até a leitura ficar confortável. Com o toque duplo em um parágrafo, o texto ficará pelo menos deste tamanho.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb index e138e66..67e1899 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
@@ -59,11 +59,11 @@ <translation id="2182457891543959921">Perguntar antes de permitir que os sites criem um mapa 3D do ambiente à sua volta ou monitorizem a posição da câmara (recomendado)</translation> <translation id="2212565012507486665">Permitir cookies</translation> <translation id="2228071138934252756">Para permitir que a app <ph name="APP_NAME" /> aceda à câmara, ative também a câmara nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation> -<translation id="2230120995564025978">Suspendisse vitae malesuada purus, ut molestie eros. Fusce malesuada ullamcorper sem a blandit.</translation> <translation id="2235344399760031203">Os cookies de terceiros estão bloqueados.</translation> <translation id="2238944249568001759">Pesquisas sugeridas com base no último separador</translation> <translation id="2241634353105152135">Apenas uma vez</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Remover</translation> +<translation id="228293613124499805">É provável que a maioria dos sites que visita guarde dados no seu dispositivo, muitas vezes para melhorar a sua experiência ao guardar as suas preferências ou informações que partilha com o site. Recomendamos que mantenha esta definição ativada.</translation> <translation id="2289270750774289114">Perguntar quando um site pretende detetar dispositivos Bluetooth próximos (recomendado)</translation> <translation id="2315043854645842844">O sistema operativo não suporta a seleção do certificado do lado do cliente.</translation> <translation id="2321958826496381788">Arraste o controlo de deslize até conseguir ler confortavelmente. O texto deve ter, pelo menos, este tamanho depois de tocar duas vezes num parágrafo.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb index 78c758d..4d55b9f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
@@ -13,7 +13,9 @@ <translation id="1289742167380433257">Pentru a-ți salva datele, Google a optimizat imaginile din această pagină.</translation> <translation id="129382876167171263">Fișierele salvate de site-uri apar aici</translation> <translation id="1317194122196776028">Uită site-ul</translation> +<translation id="1343356790768851700">Acest site stabilește lucrurile care te interesează, apoi sugerează anunțuri altor site-uri</translation> <translation id="1369915414381695676">Site-ul <ph name="SITE_NAME" /> a fost adăugat</translation> +<translation id="1371239764779356792">Permite unui site să salveze date pe dispozitiv</translation> <translation id="1383876407941801731">Caută</translation> <translation id="1384959399684842514">Descărcare întreruptă</translation> <translation id="1409426117486808224">Afișare simplificată pentru filele deschise</translation> @@ -21,6 +23,8 @@ <translation id="1426410128494586442">Da</translation> <translation id="1446450296470737166">Control complet dispozitive MIDI</translation> <translation id="1448064542941920355">Micșorează nivelul de zoom</translation> +<translation id="1510341833810331442">Site-urile nu au permisiunea de a salva date pe dispozitiv</translation> +<translation id="1547123415014299762">Sunt permise cookie-urile terță parte</translation> <translation id="1620510694547887537">Cameră</translation> <translation id="1633720957382884102">Site-uri conexe</translation> <translation id="1644574205037202324">Istoric</translation> @@ -58,6 +62,7 @@ <translation id="2238944249568001759">Căutări sugerate pe baza ultimei file</translation> <translation id="2241634353105152135">Numai o singură dată</translation> <translation id="2253414712144136228">Elimină <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Probabil că majoritatea site-urilor pe care le accesezi salvează date pe dispozitiv, adesea pentru a-ți îmbunătăți experiența, salvând preferințele sau informațiile la care permiți accesul site-ului. Îți recomandăm să păstrezi activată această setare.</translation> <translation id="2289270750774289114">Întreabă-mă când un site dorește să descopere dispozitive Bluetooth din apropiere (recomandat)</translation> <translation id="2315043854645842844">Selectarea certificatelor pe partea de client nu este acceptată de sistemul de operare.</translation> <translation id="2321958826496381788">Trage cursorul până poți citi textul cu ușurință. Textul trebuie să fie cel puțin la fel de mare ca acesta după o atingere dublă pe un paragraf.</translation> @@ -68,7 +73,9 @@ <translation id="2390272837142897736">Mărește nivelul de zoom</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2404630663942400771">{PERMISSIONS_SUMMARY_ALLOWED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> și încă <ph name="NUM_MORE" /> sunt permise}few{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> și încă <ph name="NUM_MORE" /> sunt permise}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> și încă <ph name="NUM_MORE" /> sunt permise}}</translation> +<translation id="2410940059315936967">Un site pe care îl accesezi poate încorpora conținut de pe alte site-uri, de exemplu, imagini, anunțuri și text. Cookie-urile setate de aceste alte site-uri se numesc cookie-uri terță parte.</translation> <translation id="2434158240863470628">Descărcare finalizată <ph name="SEPARATOR" /> <ph name="BYTES_DOWNLOADED" /></translation> +<translation id="244264527810019436">Este posibil ca funcțiile de pe anumite site-uri să nu ruleze în modul incognito</translation> <translation id="2442870161001914531">Solicită întotdeauna site-ul pentru computer</translation> <translation id="2482878487686419369">Notificări</translation> <translation id="2485422356828889247">Dezinstalează</translation> @@ -82,6 +89,7 @@ <translation id="2586657967955657006">Clipboard</translation> <translation id="2597457036804169544">Nu aplica tema întunecată pe site-uri</translation> <translation id="2621115761605608342">Permite JavaScript pentru un anumit site.</translation> +<translation id="2639227409413857192">Acest site stabilește lucrurile care te interesează, apoi sugerează anunțuri altor site-uri. În plus, site-ul preia subiectele anunțurilor din Chrome pentru a-ți afișa anunțuri mai relevante.</translation> <translation id="2653659639078652383">Trimite</translation> <translation id="2677748264148917807">Ieși</translation> <translation id="2687403674020088961">Blochează toate cookie-urile (nu este recomandat)</translation> @@ -92,6 +100,7 @@ <translation id="2822354292072154809">Sigur dorești să resetezi toate permisiunile la nivel de site pentru <ph name="CHOSEN_OBJECT_NAME" />?</translation> <translation id="2870560284913253234">Site</translation> <translation id="2874939134665556319">Melodia anterioară</translation> +<translation id="2891975107962658722">Nu permite unui site să salveze date pe dispozitiv</translation> <translation id="2903493209154104877">Adrese</translation> <translation id="2910701580606108292">Întreabă înainte de a permite site-urilor să redea conținut protejat</translation> <translation id="2913331724188855103">Permite site-urilor să salveze și să citească datele asociate cookie-urilor (recomandat)</translation> @@ -134,6 +143,7 @@ <translation id="3628308229821498208">Căutări sugerate</translation> <translation id="3744111561329211289">Sincronizare în fundal</translation> <translation id="3763247130972274048">Atinge de două ori videoclipul spre stânga sau spre dreapta pentru a derula cu 10 secunde</translation> +<translation id="3794286421982011626">Un site pe care îl accesezi poate salva informații despre ce faci, astfel încât să funcționeze conform așteptărilor, de exemplu, pentru a te menține conectat(ă) la un site sau pentru a salva articole în coșul de cumpărături. Adesea, site-urile salvează temporar aceste informații pe dispozitiv.</translation> <translation id="3797520601150691162">Nu aplica tema întunecată pentru un anumit site</translation> <translation id="3803367742635802571">Este posibil ca site-urile pe care le accesezi să nu mai funcționeze așa cum au fost proiectate</translation> <translation id="3804247818991980532"><ph name="TYPE_1" />. <ph name="TYPE_2" />.</translation> @@ -143,6 +153,7 @@ <translation id="385051799172605136">Înapoi</translation> <translation id="3859306556332390985">Derulează înainte</translation> <translation id="3895926599014793903">Forțează activarea zoomului</translation> +<translation id="3908288065506437185">Blochează cookie-urile terță parte în modul incognito</translation> <translation id="3955193568934677022">Permite site-urilor să redea conținutul protejat (recomandat)</translation> <translation id="3967822245660637423">Descărcare finalizată</translation> <translation id="3987993985790029246">Copiază linkul</translation> @@ -191,6 +202,7 @@ <translation id="4976702386844183910">Accesat ultima dată pe <ph name="DATE" /></translation> <translation id="4994033804516042629">Nu s-a găsit nicio persoană de contact</translation> <translation id="4996978546172906250">Trimite prin</translation> +<translation id="5001526427543320409">Cookie-uri terță parte</translation> <translation id="5039804452771397117">Permite</translation> <translation id="5048398596102334565">Permite accesul site-urilor la senzorii de mișcare (recomandat)</translation> <translation id="5050380848339752099">Site-ul este pe cale să permită accesul la informații unei aplicații în afara modului incognito.</translation> @@ -211,6 +223,7 @@ <translation id="5317780077021120954">Salvează</translation> <translation id="5335288049665977812">Permite site-urilor să ruleze JavaScript (recomandat)</translation> <translation id="534295439873310000">Dispozitive NFC</translation> +<translation id="5344522958567249764">Gestionează confidențialitatea anunțurilor</translation> <translation id="5354152178998424783">Astfel, se vor șterge <ph name="DATASIZE" /> din datele și cookie-urile stocate de site-uri.</translation> <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(+ încă 1)}few{(+ încă #)}other{(+ încă #)}}</translation> <translation id="5403592356182871684">Nume</translation> @@ -234,6 +247,7 @@ <translation id="5706552988683188916">Astfel, se șterg cookie-urile și alte date privind site-urile pentru <ph name="WEBSITE" /></translation> <translation id="5719847187258001597">Astfel, se vor șterge toate datele și cookie-urile stocate de <ph name="ORIGIN" /> sau de aplicația asociată de pe ecranul de pornire.</translation> <translation id="5723967018671998714">Cookie-urile terță parte sunt blocate în modul Incognito</translation> +<translation id="5740126560802162366">Site-urile pot salva date pe dispozitiv</translation> <translation id="5771720122942595109">S-a blocat <ph name="PERMISSION_1" /></translation> <translation id="5804241973901381774">Permisiuni</translation> <translation id="5860033963881614850">Dezactivat</translation> @@ -257,6 +271,7 @@ <translation id="6181444274883918285">Adaugă o excepție privind site-urile</translation> <translation id="6192792657125177640">Excepții</translation> <translation id="6196640612572343990">Blochează cookie-urile terță parte</translation> +<translation id="6205314730813004066">Confidențialitatea anunțurilor</translation> <translation id="6216432067784365534">Opțiuni pentru <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6231752747840485235">Dezinstalezi <ph name="APP_NAME" />?</translation> <translation id="6262191102408817757">Pe baza ultimei file</translation> @@ -350,6 +365,7 @@ <translation id="8042586301629853791">Sortează după:</translation> <translation id="8067883171444229417">Redă videoclipul</translation> <translation id="8068648041423924542">Certificatul nu poate fi selectat.</translation> +<translation id="8077120325605624147">Orice site pe care îl accesezi îți poate afișa orice anunț</translation> <translation id="8087000398470557479">Acest conținut provine de pe <ph name="DOMAIN_NAME" />, oferit de Google.</translation> <translation id="8116925261070264013">Cu sunetul dezactivat</translation> <translation id="813082847718468539">Afișează informațiile privind site-ul</translation> @@ -383,10 +399,12 @@ <translation id="8514955299594277296">Nu permite site-urilor să salveze date pe dispozitiv (nu se recomandă)</translation> <translation id="851751545965956758">Blochează conectarea site-urilor la dispozitive</translation> <translation id="8525306231823319788">Ecran complet</translation> +<translation id="8541410041357371550">Site-ul preia subiectele anunțurilor din Chrome pentru a-ți afișa anunțuri mai relevante</translation> <translation id="8564613706851221529">{COUNT,plural, =1{Cookie-uri permise pentru <ph name="FPS_MEMBERS_COUNT" /> site <ph name="FPS_OWNER" />}few{Cookie-uri permise pentru <ph name="FPS_MEMBERS_COUNT" /> site-uri <ph name="FPS_OWNER" />}other{Cookie-uri permise pentru <ph name="FPS_MEMBERS_COUNT" /> de site-uri <ph name="FPS_OWNER" />}}</translation> <translation id="857943718398505171">Acordată (recomandat)</translation> <translation id="8609465669617005112">Mutați mai sus</translation> <translation id="8676374126336081632">Șterge textul introdus</translation> +<translation id="8681886425883659911">Anunțurile sunt blocate pe site-urile despre care se știe că afișează anunțuri deranjante sau înșelătoare</translation> <translation id="868929229000858085">Caută în agendă</translation> <translation id="8702612070107455751">Toate datele offline vor fi șterse.</translation> <translation id="8712637175834984815">Am înțeles</translation> @@ -399,6 +417,7 @@ <translation id="8816026460808729765">Blochează întotdeauna accesul site-urilor la senzori</translation> <translation id="8823559166155093873">Blochează cookie-urile</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Anunțuri deranjante</translation> <translation id="8903921497873541725">Mărește</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC este dezactivat pentru acest dispozitiv. Activează-l în <ph name="BEGIN_LINK" />Setări Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb index 70ad6df..769ddaa 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Варианты поисковых запросов, основанные на данных последней вкладки</translation> <translation id="2241634353105152135">Однократно</translation> <translation id="2253414712144136228">Удалить пункт "<ph name="NAME_OF_LIST_ITEM" />"</translation> +<translation id="228293613124499805">Большинство сайтов, которые вы посещаете, скорее всего, сохраняют на устройстве такую информацию, как ваши предпочтения или данные, которыми вы делитесь с ними. Чаще всего это делается для вашего удобства. Мы рекомендуем не отключать этот параметр.</translation> <translation id="2289270750774289114">Запрашивать для сайтов разрешение на поиск Bluetooth-устройств поблизости (рекомендуется)</translation> <translation id="2315043854645842844">Сертификат, выбранный клиентом, не поддерживается операционной системой.</translation> <translation id="2321958826496381788">Перемещайте ползунок, пока текст не станет удобным для чтения. После двойного нажатия на абзац текст должен быть такого размера.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb index 5e1bbc0..a19887d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">ඔබගේ අවසන් ටැබය මත පදනම්ව යෝජිත සෙවීම්</translation> <translation id="2241634353105152135">හුදෙක් එක් වරක්</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ඉවත් කරන්න</translation> +<translation id="228293613124499805">ඔබ පිවිසෙන බොහෝ අඩවි බොහෝ විට ඔබේ මනාපයන් හෝ ඔබ අඩවිය සමග බෙදා ගන්නා තොරතුරු සුරැකීමෙන් ඔබේ අත්දැකීම වැඩි දියුණු කිරීමට, ඔබේ උපාංගයට දත්ත සුරැකීමට ඉඩ ඇත. මෙම සැකසීම ක්රියාත්මකව තබා ගැනීමට අපි නිර්දේශ කරමු.</translation> <translation id="2289270750774289114">වෙබ් අඩවියකට අවට බ්ලූටූත් උපාංග සොයා ගැනීමට අවශ්ය වූ විට අසන්න (නිර්දේශිතයි)</translation> <translation id="2315043854645842844">මෙහෙයුම් පද්ධතිය සේවාලාභී පැත්තේ සහතික තේරීමට සහාය නොදක්වයි.</translation> <translation id="2321958826496381788">මෙය පහසුවෙන් කියවිය හැකි වන තෙක් ස්ලයිඩරය අදින්න. ඡේදය මත දෙවරක් තට්ටු කිරීමෙන් පසුව අකුරු අඩු වශයෙන් මෙතරම් වත් විශාල විය යුතුය.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb index 78bf169..37a2cce 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
@@ -12,6 +12,7 @@ <translation id="1272079795634619415">Zastaviť</translation> <translation id="1289742167380433257">Google optimalizoval obrázky tejto stránky, aby vám ušetril dáta.</translation> <translation id="129382876167171263">Tu sa zobrazia súbory uložené webmi</translation> +<translation id="131112695174432497">Dáta, ktoré ovplyvňujú prispôsobenie reklám, sa odstránia</translation> <translation id="1317194122196776028">Zabudnúť tento web</translation> <translation id="1369915414381695676">Boli pridané stránky <ph name="SITE_NAME" /></translation> <translation id="1383876407941801731">Vyhľadávanie</translation> @@ -59,6 +60,7 @@ <translation id="2238944249568001759">Navrhované vyhľadávania na základe vašej poslednej karty</translation> <translation id="2241634353105152135">Iba raz</translation> <translation id="2253414712144136228">Odobrať osobu alebo odstrániť položku <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Väčšina webov, ktoré navštevujete, pravdepodobne ukladá dáta vo vašom zariadení. Často ukladajú vaše predvoľby alebo informácie, ktoré s nimi zdieľate, čím zlepšujú vaše prostredie. Toto nastavenie odporúčame nechať zapnuté.</translation> <translation id="2289270750774289114">Opýtať sa, keď chce web objavovať zariadenia Bluetooth v okolí (odporúčané)</translation> <translation id="2315043854645842844">Operačný systém nepodporuje výber certifikátu na strane klienta.</translation> <translation id="2321958826496381788">Presúvajte posúvač, dokým nebude čítanie tohto textu pohodlné. Po dvojitom klepnutí na odsek by mal byť text aspoň takto veľký.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb index e1b2607e..762deb23 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Predlagana iskanja na podlagi zadnjega zavihka</translation> <translation id="2241634353105152135">Samo enkrat</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Odstrani</translation> +<translation id="228293613124499805">Večina spletnih mest, ki jih obiščete, v napravo verjetno shrani podatke, pogosto zaradi izboljšanja izkušnje, in sicer tako, da shrani nastavitve ali podatke, ki jih razkrijete spletnemu mestu. Priporočamo, da pustite to nastavitev vklopljeno.</translation> <translation id="2289270750774289114">Vprašaj, ko želi spletno mesto odkrivati naprave Bluetooth v bližini (priporočljivo)</translation> <translation id="2315043854645842844">Operacijski sistem ne podpira izbire potrdila pri odjemalcu.</translation> <translation id="2321958826496381788">Drsnik povlecite tako daleč, da boste lahko to besedilo brez težave prebrali. Besedilo bo po dvakratnem dotiku odstavka vsaj tako veliko.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb index 3d147737..f94868e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Kërkimet e sugjeruara bazuar në skedën tënde të fundit</translation> <translation id="2241634353105152135">Vetëm një herë</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> - Hiq</translation> +<translation id="228293613124499805">Shumica e sajteve që viziton ka mundësi që të ruajnë të dhëna në pajisjen tënde, shpesh për të përmirësuar përvojën tënde duke ruajtur preferencat e tua ose informacionet që ti ndan me sajtin. Ne rekomandojmë që ta mbash të aktivizuar këtë cilësim.</translation> <translation id="2289270750774289114">Pyet kur një sajt dëshiron të zbulojë pajisjet Bluetooth në afërsi (rekomandohet)</translation> <translation id="2315043854645842844">Përzgjedhja e certifikatës nga ana e klientit nuk mbështetet nga sistemi operativ.</translation> <translation id="2321958826496381788">Zvarrit rrëshqitësin derisa të arrish ta lexosh këtë pa u munduar. Teksti duhet të duket të paktën kaq i madh pas trokitjes dy herë mbi një paragraf.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb index 088cb8692..4d40e4e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Predložene pretrage na osnovu vaše poslednje kartice</translation> <translation id="2241634353105152135">Samo jednom</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Uklonite</translation> +<translation id="228293613124499805">Većina sajtova koje posećujete verovatno čuva podatke na uređaju, često radi poboljšanja doživljaja tako što čuva podešavanja ili informacije koje delite sa sajtom. Preporučujemo da ovo podešavanje ostane uključeno.</translation> <translation id="2289270750774289114">Pitaj kada sajt želi da otkrije Bluetooth uređaje u blizini (preporučeno)</translation> <translation id="2315043854645842844">Operativni sistem ne podržava izbor sertifikata za klijenta.</translation> <translation id="2321958826496381788">Prevlačite klizač dok ovo ne budete mogli lako da pročitate. Kada dvaput dodirnete pasus, tekst treba da bude bar ovoliki.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb index 9fdd8c6..db542e0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Предложене претраге на основу ваше последње картице</translation> <translation id="2241634353105152135">Само једном</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Уклоните</translation> +<translation id="228293613124499805">Већина сајтова које посећујете вероватно чува податке на уређају, често ради побољшања доживљаја тако што чува подешавања или информације које делите са сајтом. Препоручујемо да ово подешавање остане укључено.</translation> <translation id="2289270750774289114">Питај када сајт жели да открије Bluetooth уређаје у близини (препоручено)</translation> <translation id="2315043854645842844">Оперативни систем не подржава избор сертификата за клијента.</translation> <translation id="2321958826496381788">Превлачите клизач док ово не будете могли лако да прочитате. Када двапут додирнете пасус, текст треба да буде бар оволики.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb index 6ef223f..bd7833a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Föreslagna sökningar utifrån din senaste flik</translation> <translation id="2241634353105152135">Bara en gång</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Ta bort</translation> +<translation id="228293613124499805">De flesta webbplatser du besöker sparar troligen data på enheten, oftast för att förbättra upplevelsen genom att spara dina inställningar eller information som du delar med webbplatsen. Vi rekommenderar att du låter den här inställningen vara aktiverad.</translation> <translation id="2289270750774289114">Fråga när en webbplats försöker söka efter Bluetooth-enheter i närheten (rekommenderas)</translation> <translation id="2315043854645842844">Val av certifikat på klienten stöds inte av operativsystemet.</translation> <translation id="2321958826496381788">Flytta reglaget tills du kan läsa texten ordentligt. Texten bör bli åtminstone så här stor när du trycker två gånger på ett stycke.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb index 847a57f..287e31e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Utafutaji unaopendekezwa kulingana na kichupo chako ulichofungua mara ya mwisho</translation> <translation id="2241634353105152135">Mara moja tu</translation> <translation id="2253414712144136228">Ondoa <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Mara nyingi henda tovuti nyingi unazotembelea zikahifadhi data kwenye kifaa chako kwa ajili ya kuboresha hali yako ya utumiaji kwa kuhifadhi mapendeleo au taarifa unazoshiriki na tovuti. Tunapendekeza mipangilio hii isalie ikiwa imewashwa.</translation> <translation id="2289270750774289114">Niulize wakati tovuti inataka kugundua vifaa vya Bluetooth vilivyo karibu (inapendekezwa)</translation> <translation id="2315043854645842844">Uchaguzi wa cheti cha sehemu ya seva teja hautumiwi na mfumo wa uendeshaji.</translation> <translation id="2321958826496381788">Buruta kitelezi hadi uweze kusoma haya kwa starehe. Maandishi yanapaswa kuonekana angalau kwa ukubwa huu baada ya kugonga mara mbili kwenye aya.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb index 669f409..7a5491a7 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">நீங்கள் கடைசியாகப் பார்வையிட்ட பக்கத்தின்படி பரிந்துரைக்கப்படும் தேடல்கள்</translation> <translation id="2241634353105152135">ஒருமுறை மட்டுமே</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ஐ அகற்றும்</translation> +<translation id="228293613124499805">நீங்கள் தளத்தில் பகிரும் தகவல்கள் அல்லது விருப்பத்தேர்வுகளைச் சேமிப்பதன் மூலம் உங்கள் அனுபவத்தை மேம்படுத்த நீங்கள் பார்வையிடும் பெரும்பாலான தளங்கள் உங்கள் சாதனத்தில் தரவைச் சேமிக்கக்கூடும். இந்த அமைப்பை இயக்கத்தில் வைத்திருக்குமாறு பரிந்துரைக்கிறோம்.</translation> <translation id="2289270750774289114">அருகிலுள்ள புளூடூத் சாதனங்களை வலைதளம் கண்டறிய முயலும்போது கேள் (பரிந்துரைக்கப்படுகிறது)</translation> <translation id="2315043854645842844">கிளையன்ட் சார்பாக சான்றிதழ் தேர்ந்தெடுப்பை ஆப்ரேட்டிங் சிஸ்டம் ஆதரிக்கவில்லை.</translation> <translation id="2321958826496381788">இதை வசதியாக படிப்பதற்கு, ஸ்லைடரை இழுக்கவும். பத்தியில் இரு முறை தட்டிய பிறகு, உரையானது குறைந்தது இந்த அளவு பெரியதாக தோன்ற வேண்டும்.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb index b4468a96..070468f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -13,7 +13,9 @@ <translation id="1289742167380433257">మీ కోసం డేటాను సేవ్ చేయడానికి, ఈ పేజీ ఇమేజ్లు Google ద్వారా ఆప్టిమైజ్ చేయబడ్డాయి.</translation> <translation id="129382876167171263">వెబ్సైట్లు సేవ్ చేసిన ఫైళ్లు ఇక్కడ కనిపిస్తాయి</translation> <translation id="1317194122196776028">ఈ సైట్ను విస్మరించు</translation> +<translation id="1343356790768851700">మీకు నచ్చిన విషయాలను ఈ సైట్ నిర్ణయించి, ఆపై యాడ్లను ఇతర సైట్లకు సూచిస్తుంది</translation> <translation id="1369915414381695676"><ph name="SITE_NAME" /> సైట్ జోడించబడింది</translation> +<translation id="1371239764779356792">మీ పరికరంలో డేటాను సేవ్ చేయడానికి సైట్ను అనుమతించండి</translation> <translation id="1383876407941801731">సెర్చ్</translation> <translation id="1384959399684842514">డౌన్లోడ్ పాజ్ చేయబడింది</translation> <translation id="1409426117486808224">తెరిచిన ట్యాబ్ల కోసం సరళమైన వీక్షణ</translation> @@ -21,6 +23,7 @@ <translation id="1426410128494586442">అవును</translation> <translation id="1446450296470737166">MIDI పరికరాల పూర్తి నియం. అనుమ.</translation> <translation id="1448064542941920355">జూమ్ స్థాయిని తగ్గించండి</translation> +<translation id="1510341833810331442">మీ పరికరంలో డేటాను సేవ్ చేయడానికి సైట్లకు అనుమతి లేదు</translation> <translation id="1620510694547887537">కెమెరా</translation> <translation id="1633720957382884102">సంబంధిత సైట్లు</translation> <translation id="1644574205037202324">హిస్టరీ</translation> @@ -58,6 +61,7 @@ <translation id="2238944249568001759">మీ చివరి ట్యాబ్ ఆధారంగా సూచించబడిన సెర్చ్లు</translation> <translation id="2241634353105152135">ఒకసారి మాత్రమే</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" />ను తీసివేయండి</translation> +<translation id="228293613124499805">మీరు సందర్శించిన చాలా సైట్లు మీ పరికరంలో డేటాను సేవ్ చేవవచ్చు, మీ అనుభవాన్ని మెరుగుపరచడం కోసం తరచుగా మీ ప్రాధాన్యతలు లేదా సైట్తో మీరు షేర్ చేసిన సమాచారం సేవ్ చేయబడతాయి. ఈ సెట్టింగ్ను ఆన్లో ఉంచాల్సిందిగా సిఫార్సు చేస్తున్నాము.</translation> <translation id="2289270750774289114">ఏదైనా ఒక సైట్ సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొనాలనుకున్నప్పుడు అనుమతి అడుగుతుంది (సిఫార్సు చేయడమైనది)</translation> <translation id="2315043854645842844">క్లయింట్ తరపు సర్టిఫికెట్ ఎంపికకు ఆపరేటింగ్ సిస్టమ్ మద్దతు లేదు.</translation> <translation id="2321958826496381788">మీరు దీనిని సౌకర్యవంతంగా చదవగలిగే వరకు స్లైడర్ను లాగండి. పేరాపై రెండుసార్లు నొక్కిన తర్వాత వచనం కనీసం ఇంత పెద్దదిగా కనిపించాలి.</translation> @@ -68,7 +72,9 @@ <translation id="2390272837142897736">జూమ్ స్థాయిని పెంచండి</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2404630663942400771">{PERMISSIONS_SUMMARY_ALLOWED,plural, =1{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, ఇంకా మరో <ph name="NUM_MORE" /> అనుమతించబడ్డాయి}other{<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, ఇంకా మరో <ph name="NUM_MORE" /> అనుమతించబడ్డాయి}}</translation> +<translation id="2410940059315936967">మీరు చూసే సైట్ ఇతర సైట్ల నుండి కంటెంట్ను పొందుపరచవచ్చు, ఉదాహరణకు, ఇమేజ్లు, యాడ్లు, ఇంకా టెక్స్ట్. ఈ ఇతర సైట్లు సెట్ చేసిన కుక్కీలను థర్డ్-పార్టీ కుక్కీలు అంటారు.</translation> <translation id="2434158240863470628">డౌన్లోడ్ పూర్తయింది <ph name="SEPARATOR" /> <ph name="BYTES_DOWNLOADED" /></translation> +<translation id="244264527810019436">అజ్ఞాత మోడ్లో కొన్ని సైట్లలోని ఫీచర్లు పని చేయవు</translation> <translation id="2442870161001914531">ఎల్లప్పుడూ డెస్క్టాప్ సైట్ కోసం రిక్వెస్ట్ చేయండి</translation> <translation id="2482878487686419369">నోటిఫికేషన్లు</translation> <translation id="2485422356828889247">అన్ఇన్స్టాల్ చేయి</translation> @@ -82,6 +88,7 @@ <translation id="2586657967955657006">క్లిప్బోర్డ్</translation> <translation id="2597457036804169544">సైట్లకు ముదురు రంగు రూపాన్ని వర్తింపజేయకండి</translation> <translation id="2621115761605608342">నిర్దిష్ట సైట్ కోసం జావా స్క్రిప్ట్ను అనుమతిస్తుంది.</translation> +<translation id="2639227409413857192">మీకు నచ్చిన విషయాలను ఈ సైట్ నిర్ణయించి, ఆపై యాడ్లను ఇతర సైట్లకు సూచిస్తుంది. మీకు మరింత సందర్భోచితమైన యాడ్లను చూపడానికి ఈ సైట్ మీ యాడ్ల టాపిక్లను Chrome నుండి కూడా పొందుతుంది.</translation> <translation id="2653659639078652383">సమర్పించు</translation> <translation id="2677748264148917807">నిష్క్రమించండి</translation> <translation id="2687403674020088961">అన్ని కుక్కీలను బ్లాక్ చేయండి (సిఫార్సు చేయడం లేదు)</translation> @@ -92,6 +99,7 @@ <translation id="2822354292072154809">మీరు <ph name="CHOSEN_OBJECT_NAME" /> కోసం అన్ని సైట్ అనుమతులను ఖచ్చితంగా రీసెట్ చేయాలనుకుంటున్నారా ?</translation> <translation id="2870560284913253234">సైట్</translation> <translation id="2874939134665556319">మునుపటి ట్రాక్</translation> +<translation id="2891975107962658722">మీ పరికరంలో డేటాను సేవ్ చేయకుండా సైట్ను బ్లాక్ చేయండి</translation> <translation id="2903493209154104877">అడ్రస్లు</translation> <translation id="2910701580606108292">సైట్లు రక్షిత కంటెంట్ను ప్లే చేయడానికి ముందు అనుమతి కోసం అడుగుతాయి</translation> <translation id="2913331724188855103">కుక్కీ డేటాను సేవ్ చేయడానికి, చదవడానికి సైట్లను అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation> @@ -107,6 +115,7 @@ <translation id="3123473560110926937">కొన్ని సైట్లలో బ్లాక్ చేయబడింది</translation> <translation id="3143754809889689516">ప్రారంభం నుండి ప్లే చేయి</translation> <translation id="3162899666601560689">సైట్లు మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి కుక్కీలను ఉపయోగిస్తాయి, ఉదాహరణకు, మిమ్మల్ని సైన్ ఇన్ చేసి ఉంచడం లేదా మీ షాపింగ్ కార్ట్లోని ఐటెమ్లను గుర్తు చేయడం లాంటివి</translation> +<translation id="3165022941318558018">థర్డ్-పార్టీ కుక్కీలను ఉపయోగించడానికి సైట్ను అనుమతించండి</translation> <translation id="3198916472715691905">నిల్వ చేసిన డేటా <ph name="STORAGE_AMOUNT" /></translation> <translation id="3203366800380907218">వెబ్ నుండి</translation> <translation id="321187648315454507">మీకు నోటిఫికేషన్లను పంపడానికి <ph name="APP_NAME" />ని అనుమతించేందుకు, <ph name="BEGIN_LINK" />Android సెట్టింగ్ల<ph name="END_LINK" />లో కూడా నోటిఫికేషన్లను ఆన్ చేయండి.</translation> @@ -134,6 +143,7 @@ <translation id="3628308229821498208">సెర్చ్ సూచనలు</translation> <translation id="3744111561329211289">బ్యాక్గ్రౌండ్ సింక్</translation> <translation id="3763247130972274048">10సె దాటవేయడానికి వీడియోపై రెండుసార్లు ఎడమ లేదా కుడివైపు ట్యాప్ చేయండి</translation> +<translation id="3794286421982011626">మీరు ఏం చేస్తున్నారు అనే దానికి సంబంధించిన సమాచారాన్ని మీరు చూసిన సైట్ సేవ్ చేయగలదు, తద్వారా అది మీరు ఊహించిన విధంగా పని చేయగలదు — ఉదాహరణకు, సైట్లో మిమ్మల్ని సైన్ ఇన్ చేసి ఉంచడానికి లేదా మీ షాపింగ్ కార్ట్లో ఐటెమ్లను సేవ్ చేయడానికి. తరచుగా సైట్లు ఈ సమాచారాన్ని మీ పరికరంలో తాత్కాలికంగా సేవ్ చేస్తాయి.</translation> <translation id="3797520601150691162">నిర్దిష్ట సైట్కు ముదురు రంగు రూపాన్ని వర్తింపజేయకండి</translation> <translation id="3803367742635802571">మీరు సందర్శించిన సైట్లు, రూపొందించిన విధంగా పని చేయడం ఆగిపోవచ్చు</translation> <translation id="3804247818991980532"><ph name="TYPE_1" />. <ph name="TYPE_2" />.</translation> @@ -143,6 +153,8 @@ <translation id="385051799172605136">వెనుకకు</translation> <translation id="3859306556332390985">ముందుకు జరుపు</translation> <translation id="3895926599014793903">జూమ్ చేయడాన్ని నిర్బంధంగా ప్రారంభించండి</translation> +<translation id="3908288065506437185">అజ్ఞాత మోడ్లో థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> +<translation id="3918378745482005425">కొన్ని లక్షణాలు పని చేయకపోవచ్చు. సంబంధిత సైట్లు ఇప్పటికీ థర్డ్-పార్టీ కుక్కీలను ఉపయోగించవచ్చు.</translation> <translation id="3955193568934677022">రక్షిత కంటెంట్ను ప్లే చేయడానికి సైట్లను అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation> <translation id="3967822245660637423">డౌన్లోడ్ పూర్తయింది</translation> <translation id="3987993985790029246">లింక్ను కాపీ చేయి</translation> @@ -191,6 +203,7 @@ <translation id="4976702386844183910"><ph name="DATE" />న చివరగా సందర్శించారు</translation> <translation id="4994033804516042629">కాంటాక్ట్లు కనుగొనబడలేదు</translation> <translation id="4996978546172906250">దీని ద్వారా భాగస్వామ్యం చే.</translation> +<translation id="5001526427543320409">థర్డ్-పార్టీ కుక్కీలు</translation> <translation id="5039804452771397117">అనుమతించండి</translation> <translation id="5048398596102334565">మోషన్ సెన్సార్లను యాక్సెస్ చేయడానికి సైట్లను అనుమతించండి (సిఫార్సు చేస్తున్నాము)</translation> <translation id="5050380848339752099">ఈ సైట్ అజ్ఞాత మోడ్ వెలుపల ఉన్న ఒక యాప్తో సమాచారాన్ని షేర్ చేయబోతోంది.</translation> @@ -211,6 +224,7 @@ <translation id="5317780077021120954">సేవ్ చేయండి</translation> <translation id="5335288049665977812">సైట్లను జావాస్క్రిప్ట్ అమలు చేయడానికి అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation> <translation id="534295439873310000">NFC పరికరాలు</translation> +<translation id="5344522958567249764">యాడ్ల గోప్యతను మేనేజ్ చేయండి</translation> <translation id="5354152178998424783">ఇది సైట్ల ద్వారా స్టోర్ చేయబడిన <ph name="DATASIZE" /> డేటాను, కుక్కీలను క్లియర్ చేస్తుంది.</translation> <translation id="5394307150471348411">{DETAIL_COUNT,plural, =1{(+ మరో 1)}other{(+ మరో #)}}</translation> <translation id="5403592356182871684">పేర్లు</translation> @@ -234,6 +248,7 @@ <translation id="5706552988683188916"><ph name="WEBSITE" />కు సంబంధించిన కుక్కీలు, ఇతర సైట్ డేటాను ఇది తొలగిస్తుంది</translation> <translation id="5719847187258001597">ఇది మీ హోమ్ స్క్రీన్లో <ph name="ORIGIN" /> లేదా దాని యాప్ ద్వారా స్టోర్ చేయబడిన మొత్తం డేటా, కుక్కీలను క్లియర్ చేస్తుంది.</translation> <translation id="5723967018671998714">అజ్ఞాత మోడ్లో థర్డ్-పార్టీ కుక్కీలు బ్లాక్ చేయబడతాయి</translation> +<translation id="5740126560802162366">సైట్లు మీ పరికరంలో డేటాను సేవ్ చేయగలవు</translation> <translation id="5771720122942595109">'<ph name="PERMISSION_1" />'ను బ్లాక్ చేశారు</translation> <translation id="5804241973901381774">అనుమతులు</translation> <translation id="5860033963881614850">ఆఫ్ అయ్యింది</translation> @@ -257,6 +272,7 @@ <translation id="6181444274883918285">సైట్ మినహాయింపును జోడించండి</translation> <translation id="6192792657125177640">మినహాయింపులు</translation> <translation id="6196640612572343990">థర్డ్ పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> +<translation id="6205314730813004066">యాడ్ల గోప్యత</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> ఎంపికలు</translation> <translation id="6231752747840485235">'<ph name="APP_NAME" />'ను అన్ఇన్స్టాల్ చేయాలా?</translation> <translation id="6262191102408817757">మీ చివరి ట్యాబ్ ఆధారంగా</translation> @@ -327,6 +343,7 @@ <translation id="7649070708921625228">సహాయం</translation> <translation id="7658239707568436148">రద్దు చేయండి</translation> <translation id="7667547420449112975">ది వండర్ఫుల్ విజర్డ్ ఆఫ్ ఆజ్</translation> +<translation id="7684642910516280563">థర్డ్-పార్టీ కుక్కీలను ఉపయోగించడానికి సైట్ను అనుమతించవద్దు</translation> <translation id="7690549345586282764">జూమ్లో చూపండి</translation> <translation id="7695658402549134106"><ph name="SITE_NAME" />కు సైట్ ప్రాధాన్యత</translation> <translation id="7719367874908701697">పేజీ జూమ్</translation> @@ -383,6 +400,7 @@ <translation id="8514955299594277296">మీ పరికరంలో డేటాను సేవ్ చేయడానికి సైట్లను అనుమతించవద్దు (సిఫార్సు చేయబడలేదు)</translation> <translation id="851751545965956758">పరికరాలకు కనెక్ట్ కాకుండా సైట్లను బ్లాక్ చేస్తుంది</translation> <translation id="8525306231823319788">ఫుల్-స్క్రీన్</translation> +<translation id="8541410041357371550">మీకు మరింత సందర్భోచితమైన యాడ్లను చూపడానికి ఈ సైట్ మీ యాడ్ టాపిక్లను Chrome నుండి పొందుతుంది</translation> <translation id="8564613706851221529">{COUNT,plural, =1{<ph name="FPS_MEMBERS_COUNT" /> <ph name="FPS_OWNER" /> సైట్కు కుక్కీలు అనుమతించబడ్డాయి}other{<ph name="FPS_MEMBERS_COUNT" /> <ph name="FPS_OWNER" /> సైట్లకు కుక్కీలు అనుమతించబడ్డాయి}}</translation> <translation id="857943718398505171">అనుమతించబడింది (సిఫార్సు చేయబడింది)</translation> <translation id="8609465669617005112">పైకి తరలించు</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb index 1d2ee0bf..5c95719 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">ยอมรับ</translation> <translation id="1446450296470737166">ควบคุมอุปกรณ์ MIDI ได้สมบูรณ์</translation> <translation id="1448064542941920355">ลดการซูม</translation> +<translation id="1547123415014299762">อนุญาตคุกกี้ของบุคคลที่สาม</translation> <translation id="1620510694547887537">กล้องถ่ายรูป</translation> <translation id="1633720957382884102">เว็บไซต์ที่เกี่ยวข้อง</translation> <translation id="1644574205037202324">ประวัติการเข้าชม</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">การค้นหาที่แนะนําโดยอิงจากแท็บล่าสุด</translation> <translation id="2241634353105152135">เพียงครั้งเดียว</translation> <translation id="2253414712144136228">นำ<ph name="NAME_OF_LIST_ITEM" />ออก</translation> +<translation id="228293613124499805">เว็บไซต์ส่วนใหญ่ที่คุณเข้าชมอาจบันทึกข้อมูลลงในอุปกรณ์บ่อยๆ เพื่อปรับปรุงประสบการณ์การใช้งานโดยการบันทึกค่ากำหนดหรือข้อมูลที่คุณแชร์กับเว็บไซต์ เราขอแนะนำให้เปิดการตั้งค่านี้ไว้</translation> <translation id="2289270750774289114">ถามเมื่อเว็บไซต์ต้องการค้นหาอุปกรณ์บลูทูธใกล้เคียง (แนะนำ)</translation> <translation id="2315043854645842844">ระบบปฏิบัติการไม่สนับสนุนการเลือกใบรับรองฝั่งลูกค้า</translation> <translation id="2321958826496381788">ลากแถบเลื่อนจนกว่าคุณจะสามารถอ่านได้อย่างสะดวก ข้อความควรมีขนาดเท่านี้เป็นอย่างน้อยหลังจากแตะ 2 ครั้งบนย่อหน้า</translation> @@ -107,6 +109,7 @@ <translation id="3123473560110926937">บล็อกในบางเว็บไซต์</translation> <translation id="3143754809889689516">เริ่มเล่นตั้งแต่ต้น</translation> <translation id="3162899666601560689">เว็บไซต์จะใช้คุกกี้เพื่อปรับปรุงประสบการณ์การท่องเว็บได้ เช่น ให้คุณลงชื่อเข้าใช้ต่อไปเรื่อยๆ หรือจำรายการในรถเข็นช็อปปิ้ง</translation> +<translation id="3165022941318558018">อนุญาตให้เว็บไซต์ใช้คุกกี้ของบุคคลที่สาม</translation> <translation id="3198916472715691905">ข้อมูลที่จัดเก็บมี <ph name="STORAGE_AMOUNT" /></translation> <translation id="3203366800380907218">จากเว็บ</translation> <translation id="321187648315454507">หากต้องการอนุญาตให้ <ph name="APP_NAME" /> ส่งการแจ้งเตือนให้คุณ ให้เปิดใช้การแจ้งเตือนใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /> ด้วย</translation> @@ -143,6 +146,7 @@ <translation id="385051799172605136">กลับ</translation> <translation id="3859306556332390985">ไปข้างหน้า</translation> <translation id="3895926599014793903">บังคับให้เปิดใช้การซูม</translation> +<translation id="3918378745482005425">ฟีเจอร์บางอย่างอาจใช้งานไม่ได้ เว็บไซต์ที่เกี่ยวข้องจะยังคงใช้คุกกี้ของบุคคลที่สามได้</translation> <translation id="3955193568934677022">อนุญาตให้เว็บไซต์เล่นเนื้อหาที่ได้รับความคุ้มครอง (แนะนำ)</translation> <translation id="3967822245660637423">ดาวน์โหลดเสร็จสมบูรณ์</translation> <translation id="3987993985790029246">คัดลอกลิงก์</translation> @@ -327,6 +331,7 @@ <translation id="7649070708921625228">ความช่วยเหลือ</translation> <translation id="7658239707568436148">ยกเลิก</translation> <translation id="7667547420449112975">พ่อมดมหัศจรรย์แห่งออซ</translation> +<translation id="7684642910516280563">ไม่อนุญาตให้เว็บไซต์ใช้คุกกี้ของบุคคลที่สาม</translation> <translation id="7690549345586282764">แสดงการซูม</translation> <translation id="7695658402549134106">ค่ากําหนดสำหรับเว็บไซต์ <ph name="SITE_NAME" /></translation> <translation id="7719367874908701697">การซูมหน้า</translation> @@ -350,6 +355,7 @@ <translation id="8042586301629853791">จัดเรียงตาม</translation> <translation id="8067883171444229417">เล่นวิดีโอ</translation> <translation id="8068648041423924542">เลือกใบรับรองไม่ได้</translation> +<translation id="8077120325605624147">เว็บไซต์ที่คุณเข้าชมจะแสดงโฆษณาต่อคุณได้</translation> <translation id="8087000398470557479">เนื้อหานี้มาจาก <ph name="DOMAIN_NAME" /> และนำส่งโดย Google</translation> <translation id="8116925261070264013">ปิดเสียง</translation> <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</translation> @@ -387,6 +393,7 @@ <translation id="857943718398505171">อนุญาตแล้ว (แนะนำ)</translation> <translation id="8609465669617005112">เลื่อนขึ้น</translation> <translation id="8676374126336081632">ล้างข้อมูลที่ป้อน</translation> +<translation id="8681886425883659911">โฆษณาถูกบล็อกในเว็บไซต์ที่ทราบว่าแสดงโฆษณาที่รบกวนหรือทำให้เข้าใจผิด</translation> <translation id="868929229000858085">ค้นหารายชื่อติดต่อ</translation> <translation id="8702612070107455751">ระบบจะล้างข้อมูลออฟไลน์ทั้งหมด</translation> <translation id="8712637175834984815">สำเร็จ</translation> @@ -399,6 +406,7 @@ <translation id="8816026460808729765">บล็อกไม่ให้เว็บไซต์เข้าถึงเซ็นเซอร์</translation> <translation id="8823559166155093873">บล็อกคุกกี้</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">โฆษณาที่รบกวน</translation> <translation id="8903921497873541725">ขยาย</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC ในอุปกรณ์นี้ปิดอยู่ เปิดได้ใน<ph name="BEGIN_LINK" />การตั้งค่า Android<ph name="END_LINK" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb index 93b5f508..e43828e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">Evet</translation> <translation id="1446450296470737166">MIDI cihazlarının tam denetimine izin verme</translation> <translation id="1448064542941920355">Yakınlaştırmayı azalt</translation> +<translation id="1547123415014299762">Üçüncü taraf çerezlerine izin verilir</translation> <translation id="1620510694547887537">Kamera</translation> <translation id="1633720957382884102">İlgili siteler</translation> <translation id="1644574205037202324">Geçmiş</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">Son sekmenize göre önerilen aramalar</translation> <translation id="2241634353105152135">Sadece bir defa</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> öğesini kaldır</translation> +<translation id="228293613124499805">Ziyaret ettiğiniz çoğu site, genellikle tercihlerinizi veya siteyle paylaştığınız bilgileri kaydederek deneyiminizi iyileştirmek için cihazınıza veri kaydeder. Bu ayarı açık tutmanızı öneririz.</translation> <translation id="2289270750774289114">Bir site yakındaki Bluetooth cihazları bulmak istediğinde sor (önerilir)</translation> <translation id="2315043854645842844">İstemci tarafı sertifika seçimi, işletim sistemi tarafından desteklenmiyor.</translation> <translation id="2321958826496381788">Bu yazıyı rahatça okuyana kadar kaydırma çubuğunu sürükleyin. Bir paragrafa iki kez hafifçe dokunduğunuzda metin en az bunun kadar büyük görünmelidir.</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">Sıralama ölçütü:</translation> <translation id="8067883171444229417">Videoyu oynat</translation> <translation id="8068648041423924542">Sertifika seçilemiyor.</translation> +<translation id="8077120325605624147">Ziyaret ettiğiniz herhangi bir site size reklam gösterebilir</translation> <translation id="8087000398470557479">Bu içerik Google tarafından <ph name="DOMAIN_NAME" /> adresinden sağlanmaktadır.</translation> <translation id="8116925261070264013">Ses kapatıldı</translation> <translation id="813082847718468539">Site bilgilerini görüntüle</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">İzin verildi (önerilir)</translation> <translation id="8609465669617005112">Yukarı taşı</translation> <translation id="8676374126336081632">Girişi temizle</translation> +<translation id="8681886425883659911">Araya giren veya yanıltıcı reklamlar gösterdiği bilinen sitelerdeki reklamlar engellenir</translation> <translation id="868929229000858085">Kişilerinizde arama yapın</translation> <translation id="8702612070107455751">Tüm çevrimdışı veriler temizlenecek.</translation> <translation id="8712637175834984815">Anlaşıldı</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">Sitelerin sensörlere erişimini engelle</translation> <translation id="8823559166155093873">Çerezleri engelle</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">Araya giren reklamlar</translation> <translation id="8903921497873541725">Yakınlaştır</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">NFC bu cihazda kapalı. Bu özelliği <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda açın.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb index c12e1f6..95dba42e 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Рекомендовані пошукові запити на основі вмісту останньої вкладки</translation> <translation id="2241634353105152135">Лише цього разу</translation> <translation id="2253414712144136228">Видалити <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Більшість сайтів, які ви відвідуєте, імовірно, зберігають дані (зокрема ваші налаштування й інформацію, до якої ви надали їм доступ) на вашому пристрої, щоб покращити взаємодію з вами. Радимо не вимикати цей параметр.</translation> <translation id="2289270750774289114">Запитувати, коли сайт хоче шукати пристрої Bluetooth поблизу (рекомендовано)</translation> <translation id="2315043854645842844">Операційна система не підтримує сертифікат, вибраний на стороні клієнта.</translation> <translation id="2321958826496381788">Перетягуйте повзунок, доки розмір тексту не стане зручним для читання. Якщо двічі торкнутись абзацу, розмір тексту має стати принаймні таким, як цей.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb index b65660c..e270915d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">آپ کے آخری ٹیب کی بنیاد پر تجویز کردہ تلاشیں</translation> <translation id="2241634353105152135">بس ایک بار</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> ہٹائیں</translation> +<translation id="228293613124499805">زیادہ تر سائٹس جو آپ دیکھتے ہیں شاید آپ کے آلہ پر ڈیٹا محفوظ کرتی ہیں، اکثر اپنی ترجیحات یا معلومات کو محفوظ کر کے اپنے تجربے کو بہتر بنانے کے لیے جو آپ سائٹ کے ساتھ اشتراک کرتے ہیں۔ ہم اس ترتیب کو آن رکھنے کی تجویز کرتے ہیں۔</translation> <translation id="2289270750774289114">اس وقت پوچھیں جب کسی سائٹ میں قریبی بلوٹوتھ آلات کو دریافت کرنا مقصود ہو (تجویز کردہ)</translation> <translation id="2315043854645842844">کلائنٹ سائڈ سرٹیفکیٹ کا انتخاب آپریٹنگ سسٹم کے ذریعہ تعاون یافتہ نہیں ہے۔</translation> <translation id="2321958826496381788">سلائیڈر کو اس وقت تک گھسیٹیں جب اسے آرام سے پڑھ سکتے ہوں۔ کسی پیراگراف پر دوبار تھپتھپانے کے بعد متن کم از کم اتنا بڑا دکھائی دینا چاہیے۔</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb index ad96e7f..d2bdca66 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
@@ -58,6 +58,7 @@ <translation id="2238944249568001759">Oxirgi varaq asosida tavsiya etiladigan qidiruvlar</translation> <translation id="2241634353105152135">Bir marta</translation> <translation id="2253414712144136228">Olib tashlash: <ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Siz ochgan saytlarning aksariyati sozlamalaringiz yoki ularga ulashgan axborotlar kabilarni qurilmangizda saqlashi mumkin. Koʻpincha bu qulayligingiz uchun amalga oshiriladi. Bu sozlamani oʻchirmaslikni tavsiya qilamiz.</translation> <translation id="2289270750774289114">Sayt atrofdagi Bluetooth qurilmalarni tekshirmoqchi boʻlsa, xabar berilsin (tavsiya etiladi)</translation> <translation id="2315043854645842844">Tanlangan mijoz sertifikati eskirgan va operatsion tizim tomonidan qo‘llab-quvvatlanmaydi.</translation> <translation id="2321958826496381788">Sudragichni matn o‘qish uchun qulay bo‘lguncha suring. Satr boshiga ikki marta bosilganda matn hajmi shunday bo‘lishi kerak.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb index 6dd18b0d..02497ff 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Cụm từ tìm kiếm đề xuất dựa trên thẻ gần đây nhất của bạn</translation> <translation id="2241634353105152135">Chỉ một lần</translation> <translation id="2253414712144136228"><ph name="NAME_OF_LIST_ITEM" /> Xoá</translation> +<translation id="228293613124499805">Hầu hết trang web bạn truy cập có thể sẽ lưu dữ liệu vào thiết bị, thường là để cải thiện trải nghiệm của bạn bằng cách lưu các lựa chọn ưu tiên hoặc thông tin mà bạn chia sẻ với trang web. Chúng tôi khuyên bạn luôn bật chế độ cài đặt này.</translation> <translation id="2289270750774289114">Hỏi khi một trang web muốn tìm các thiết bị Bluetooth ở gần (khuyên dùng)</translation> <translation id="2315043854645842844">Lựa chọn chứng chỉ phía ứng dụng khách không được hệ điều hành hỗ trợ.</translation> <translation id="2321958826496381788">Kéo thanh trượt cho đến khi bạn có thể đọc nội dung này thoải mái. Chữ tối thiểu phải to như này sau khi bấm đúp vào một đoạn.</translation> @@ -108,6 +109,7 @@ <translation id="3123473560110926937">Đã chặn trên một số trang web</translation> <translation id="3143754809889689516">Phát từ đầu</translation> <translation id="3162899666601560689">Các trang web có thể dùng cookie để cải thiện trải nghiệm duyệt web của bạn, chẳng hạn như để duy trì trạng thái đăng nhập hoặc ghi nhớ các mục có trong giỏ hàng</translation> +<translation id="3165022941318558018">Cho phép một trang web dùng cookie của bên thứ ba</translation> <translation id="3198916472715691905">Dữ liệu đã lưu trữ: <ph name="STORAGE_AMOUNT" /></translation> <translation id="3203366800380907218">Trên web</translation> <translation id="321187648315454507">Để cho phép <ph name="APP_NAME" /> gửi thông báo cho bạn, hãy bật cả thông báo trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation> @@ -144,6 +146,7 @@ <translation id="385051799172605136">Quay lại</translation> <translation id="3859306556332390985">Tìm kiếm tiến</translation> <translation id="3895926599014793903">Buộc bật thu phóng</translation> +<translation id="3918378745482005425">Một số tính năng có thể không hoạt động. Các trang web có liên quan vẫn có thể sử dụng cookie của bên thứ ba.</translation> <translation id="3955193568934677022">Cho phép trang web phát nội dung được bảo vệ (được đề xuất)</translation> <translation id="3967822245660637423">Đã tải xuống xong</translation> <translation id="3987993985790029246">Sao chép đường liên kết</translation> @@ -328,6 +331,7 @@ <translation id="7649070708921625228">Trợ giúp</translation> <translation id="7658239707568436148">Hủy</translation> <translation id="7667547420449112975">Phù thủy xứ Oz</translation> +<translation id="7684642910516280563">Không cho phép một trang web dùng cookie của bên thứ ba</translation> <translation id="7690549345586282764">Hiện mục thu phóng</translation> <translation id="7695658402549134106">Lựa chọn ưu tiên về trang web cho <ph name="SITE_NAME" /></translation> <translation id="7719367874908701697">Thu phóng trang</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb index 4131de6c..8b1c29f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">是</translation> <translation id="1446450296470737166">允许全面控制 MIDI 设备</translation> <translation id="1448064542941920355">缩小</translation> +<translation id="1547123415014299762">允许使用第三方 Cookie</translation> <translation id="1620510694547887537">摄像头</translation> <translation id="1633720957382884102">相关网站</translation> <translation id="1644574205037202324">历史记录</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">根据您上次浏览的标签页建议的搜索</translation> <translation id="2241634353105152135">仅一次</translation> <translation id="2253414712144136228">移除“<ph name="NAME_OF_LIST_ITEM" />”</translation> +<translation id="228293613124499805">您访问的大多数网站很可能会将数据保存到设备上,例如保存您的偏好设置或您与网站分享的信息,这通常是为了提升您的浏览体验。我们建议您保持此设置的开启状态。</translation> <translation id="2289270750774289114">在网站想发现附近的蓝牙设备时询问您(推荐)</translation> <translation id="2315043854645842844">操作系统不支持选择客户端证书。</translation> <translation id="2321958826496381788">拖动该滑块,将文字调整到适合您阅读的大小。点按两次某段落后,显示的文字至少应是这么大。</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">排序方式:</translation> <translation id="8067883171444229417">播放视频</translation> <translation id="8068648041423924542">无法选择证书。</translation> +<translation id="8077120325605624147">您访问的任何网站都可向您展示任何广告</translation> <translation id="8087000398470557479">此内容来自 <ph name="DOMAIN_NAME" />(由 Google 提供)。</translation> <translation id="8116925261070264013">已静音</translation> <translation id="813082847718468539">查看网站信息</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">允许(推荐)</translation> <translation id="8609465669617005112">上移</translation> <translation id="8676374126336081632">清除输入的内容</translation> +<translation id="8681886425883659911">在已知会展示侵扰性或误导性广告的网站上屏蔽广告</translation> <translation id="868929229000858085">搜索联系人</translation> <translation id="8702612070107455751">所有离线数据都会被清除。</translation> <translation id="8712637175834984815">知道了</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">禁止网站使用传感器</translation> <translation id="8823559166155093873">屏蔽 Cookie</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">侵扰性广告</translation> <translation id="8903921497873541725">放大</translation> <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation> <translation id="8926666909099850184">此设备的 NFC 功能处于关闭状态。请在 <ph name="BEGIN_LINK" />Android 设置<ph name="END_LINK" />中开启此功能。</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb index 6775558..0dd013a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">是</translation> <translation id="1446450296470737166">允許全權控制 MIDI 裝置。</translation> <translation id="1448064542941920355">縮小</translation> +<translation id="1547123415014299762">已允許第三方 Cookie</translation> <translation id="1620510694547887537">相機</translation> <translation id="1633720957382884102">相關網站</translation> <translation id="1644574205037202324">記錄</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">根據最近開啟的分頁提供搜尋建議</translation> <translation id="2241634353105152135">只此一次</translation> <translation id="2253414712144136228">移除<ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">您瀏覽的大多數網站可能會在裝置上儲存資料,通常是透過儲存您的偏好設定或您與網站分享的資料,從而改善使用體驗。建議您將此設定保持開啟。</translation> <translation id="2289270750774289114">在網站要探索附近的藍牙裝置時詢問您 (建議)</translation> <translation id="2315043854645842844">作業系統不支援由客戶端選取憑證。</translation> <translation id="2321958826496381788">拖曳滑桿,將文字調整到您閱讀時感到舒適的大小。當您輕按兩下文字段落,文字至少應有這樣大。</translation> @@ -353,6 +355,7 @@ <translation id="8042586301629853791">排序方式:</translation> <translation id="8067883171444229417">播放影片</translation> <translation id="8068648041423924542">無法選擇憑證。</translation> +<translation id="8077120325605624147">您瀏覽的網站都可向您顯示所有廣告</translation> <translation id="8087000398470557479">此內容來自 <ph name="DOMAIN_NAME" />,由 Google 提供。</translation> <translation id="8116925261070264013">已設為靜音的網站</translation> <translation id="813082847718468539">檢視網站資料</translation> @@ -390,6 +393,7 @@ <translation id="857943718398505171">允許 (建議)</translation> <translation id="8609465669617005112">向上移</translation> <translation id="8676374126336081632">清除輸入</translation> +<translation id="8681886425883659911">已在網站上封鎖已知的滋擾性或誤導廣告。</translation> <translation id="868929229000858085">搜尋您的聯絡人</translation> <translation id="8702612070107455751">所有離線資料將會被清除</translation> <translation id="8712637175834984815">我知道了</translation> @@ -402,6 +406,7 @@ <translation id="8816026460808729765">禁止網站存取感應器</translation> <translation id="8823559166155093873">封鎖 Cookie</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">滋擾性廣告</translation> <translation id="8903921497873541725">放大</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">此裝置的 NFC 已關閉,請在「<ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />」中開啟。</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb index 558b19b0c..416d904 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
@@ -21,6 +21,7 @@ <translation id="1426410128494586442">是</translation> <translation id="1446450296470737166">允許完整控制 MIDI 裝置</translation> <translation id="1448064542941920355">縮小</translation> +<translation id="1547123415014299762">已允許第三方 Cookie</translation> <translation id="1620510694547887537">攝影機</translation> <translation id="1633720957382884102">相關網站</translation> <translation id="1644574205037202324">歷史記錄</translation> @@ -58,6 +59,7 @@ <translation id="2238944249568001759">根據最近開啟的分頁提供搜尋建議</translation> <translation id="2241634353105152135">只有這一次</translation> <translation id="2253414712144136228">移除<ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">你造訪的大多數網站可能會在裝置上儲存資料 (偏好設定或你與網站分享的資訊),通常是為了改善使用體驗。建議你將這項設定保持開啟。</translation> <translation id="2289270750774289114">當網站要搜尋附近的藍牙裝置時,必須先詢問你 (建議)</translation> <translation id="2315043854645842844">作業系統不允許您在用戶端選取憑證。</translation> <translation id="2321958826496381788">拖曳滑桿,將文字調整到適當的字體大小。當你輕觸兩下文字段落時,瀏覽器至少應呈現這樣的字體大小。</translation> @@ -350,6 +352,7 @@ <translation id="8042586301629853791">排序依據:</translation> <translation id="8067883171444229417">播放影片</translation> <translation id="8068648041423924542">無法選取憑證。</translation> +<translation id="8077120325605624147">你造訪的網站都能對你顯示所有廣告</translation> <translation id="8087000398470557479">這個內容來自 <ph name="DOMAIN_NAME" />,由 Google 所提供。</translation> <translation id="8116925261070264013">已設為靜音</translation> <translation id="813082847718468539">查看網站資訊</translation> @@ -387,6 +390,7 @@ <translation id="857943718398505171">已允許 (建議)</translation> <translation id="8609465669617005112">上移</translation> <translation id="8676374126336081632">清除輸入</translation> +<translation id="8681886425883659911">已在網站上封鎖已知的侵入式廣告或誤導性廣告</translation> <translation id="868929229000858085">搜尋聯絡人</translation> <translation id="8702612070107455751">所有離線資料都將遭到清除。</translation> <translation id="8712637175834984815">我瞭解了</translation> @@ -399,6 +403,7 @@ <translation id="8816026460808729765">禁止網站存取感應器</translation> <translation id="8823559166155093873">封鎖 Cookie</translation> <translation id="8847988622838149491">USB</translation> +<translation id="8899807382908246773">侵入式廣告</translation> <translation id="8903921497873541725">放大</translation> <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation> <translation id="8926666909099850184">這部裝置的 NFC 功能已關閉。請前往 <ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />開啟這項功能。</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb index 536aded..41a0a9c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
@@ -59,6 +59,7 @@ <translation id="2238944249568001759">Usesho oluphakanyisiwe ngokususelwe kuthebhu yakho yokugcina</translation> <translation id="2241634353105152135">Kanye nje</translation> <translation id="2253414712144136228">Susa i-<ph name="NAME_OF_LIST_ITEM" /></translation> +<translation id="228293613124499805">Amasayithi amaningi owavakashelayo agcina idatha kudivayisi yakho, ngokuvamile ukuze uthuthukise ulwazi lwakho ngokulondoloza okuncamelayo noma ulwazi owabelana ngalo nesayithi. Sincoma ukuthi ugcine leli sethingi livuliwe.</translation> <translation id="2289270750774289114">Buza uma isayithi lifuna ukuthola amadivayisi aseduze e-Bluetooth (kunconyiwe)</translation> <translation id="2315043854645842844">Ukukhethwa kwesitifiketi sohlangothi lweklayenti akusekelwe yisistimu yokusebenza.</translation> <translation id="2321958826496381788">Hudula isilayida uze ufunde lokhu unelisekile. Umbhalo kumele ubukeke okungenani umkhulu ngale ndlela ngemuva kokuthepha kabili kupharagrafu.</translation>
diff --git a/components/browsing_data/core/counters/passwords_counter.cc b/components/browsing_data/core/counters/passwords_counter.cc index a4b8ff8..5929a39 100644 --- a/components/browsing_data/core/counters/passwords_counter.cc +++ b/components/browsing_data/core/counters/passwords_counter.cc
@@ -138,7 +138,7 @@ std::sort(results.begin(), results.end(), [](const std::unique_ptr<password_manager::PasswordForm>& a, const std::unique_ptr<password_manager::PasswordForm>& b) { - return a->times_used > b->times_used; + return a->times_used_in_html_form > b->times_used_in_html_form; }); std::vector<std::string> sorted_domains;
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index 9f154018..2700cee4 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "17.45", - "log_list_timestamp": "2023-01-15T12:54:57Z", + "version": "17.46", + "log_list_timestamp": "2023-01-16T12:55:10Z", "operators": [ { "name": "Google",
diff --git a/components/content_settings/core/browser/content_settings_policy_provider.cc b/components/content_settings/core/browser/content_settings_policy_provider.cc index f4939608..c43ce29 100644 --- a/components/content_settings/core/browser/content_settings_policy_provider.cc +++ b/components/content_settings/core/browser/content_settings_policy_provider.cc
@@ -387,15 +387,16 @@ continue; } - const base::Value* pattern = pattern_filter->FindKey("pattern"); - const base::Value* filter = pattern_filter->FindKey("filter"); + const base::Value::Dict& pattern_filter_dict = pattern_filter->GetDict(); + const std::string* pattern = pattern_filter_dict.FindString("pattern"); + const base::Value* filter = pattern_filter_dict.Find("filter"); if (!pattern || !filter) { VLOG(1) << "Ignoring invalid certificate auto select setting. Reason:" << " Missing pattern or filter."; continue; } - const std::string& pattern_str = pattern->GetString(); + const std::string& pattern_str = *pattern; if (filters_map.find(pattern_str) == filters_map.end()) filters_map[pattern_str].Set("filters", base::Value::List());
diff --git a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc index 7643c176..57258177 100644 --- a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc +++ b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc
@@ -4,18 +4,25 @@ #include "components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h" -#include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/functional/bind.h" +#include "base/json/json_reader.h" +#include "base/json/json_writer.h" #include "base/location.h" +#include "base/logging.h" #include "base/rand_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" +#include "base/threading/thread_restrictions.h" #include "components/gcm_driver/gcm_client.h" namespace instance_id { +const base::FilePath::CharType kStoredTokensFileName[] = + FILE_PATH_LITERAL("StoredTokensTest"); + FakeGCMDriverForInstanceID::FakeGCMDriverForInstanceID() : gcm::FakeGCMDriver(base::FilePath(), base::SingleThreadTaskRunner::GetCurrentDefault()) {} @@ -23,7 +30,28 @@ FakeGCMDriverForInstanceID::FakeGCMDriverForInstanceID( const base::FilePath& store_path, const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner) - : FakeGCMDriver(store_path, blocking_task_runner) {} + : FakeGCMDriver(store_path, blocking_task_runner), store_path_(store_path) { + if (store_path_.empty()) { + return; + } + + std::string encoded_data; + base::ScopedAllowBlockingForTesting scoped_allow_blocking; + if (!base::ReadFileToString(store_path_.Append(kStoredTokensFileName), + &encoded_data)) { + return; + } + + absl::optional<base::Value> data = base::JSONReader::Read(encoded_data); + DCHECK(data.has_value() && data->is_dict()) + << "Failed to read data from stored FCM tokens file"; + + for (const auto [key, value] : data.value().GetDict()) { + tokens_[key] = value.GetString(); + } + + DVLOG(1) << "Loaded tokens from file: " << tokens_.size(); +} FakeGCMDriverForInstanceID::~FakeGCMDriverForInstanceID() = default; @@ -72,6 +100,8 @@ } else { token = GenerateTokenImpl(app_id, authorized_entity, scope); tokens_[key] = token; + + StoreTokensIfNeeded(); } last_gettoken_app_id_ = app_id; @@ -127,4 +157,24 @@ return base::NumberToString(base::RandUint64()); } +void FakeGCMDriverForInstanceID::StoreTokensIfNeeded() { + if (store_path_.empty()) { + return; + } + + base::Value::Dict value; + for (const auto& key_and_token : tokens_) { + value.Set(key_and_token.first, key_and_token.second); + } + + std::string encoded_data; + bool success = base::JSONWriter::Write(value, &encoded_data); + DCHECK(success) << "Failed to encode FCM tokens"; + + base::ScopedAllowBlockingForTesting scoped_allow_blocking; + success = + base::WriteFile(store_path_.Append(kStoredTokensFileName), encoded_data); + DCHECK(success) << "Failed to store FCM tokens"; +} + } // namespace instance_id
diff --git a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h index 4259e29b..8e2f7bf 100644 --- a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h +++ b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h
@@ -9,11 +9,10 @@ #include <string> #include <utility> -#include "base/compiler_specific.h" +#include "base/files/file_path.h" #include "components/gcm_driver/fake_gcm_driver.h" namespace base { -class FilePath; class SequencedTaskRunner; } @@ -69,11 +68,16 @@ void GetInstanceIDData(const std::string& app_id, GetInstanceIDDataCallback callback) override; - virtual std::string GenerateTokenImpl(const std::string& app_id, - const std::string& authorized_entity, - const std::string& scope); - private: + void StoreTokensIfNeeded(); + + std::string GenerateTokenImpl(const std::string& app_id, + const std::string& authorized_entity, + const std::string& scope); + + // Used to store FCM registration tokens across browser restarts in tests. + const base::FilePath store_path_; + std::map<std::string, std::pair<std::string, std::string>> instance_id_data_; std::map<std::string, std::string> tokens_; std::string last_gettoken_app_id_;
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h index 8a712b44b..5cb230d 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h
@@ -173,7 +173,7 @@ // Removed: CONDITIONAL_TAB_STRIP_INFOBAR_ANDROID = 99, // Removed: LITE_MODE_HTTPS_IMAGE_COMPRESSION_INFOBAR_ANDROID = 100, // Removed: SYSTEM_INFOBAR_DELEGATE_MAC = 101, - EXPERIMENTAL_INFOBAR_DELEGATE_LACROS = 102, + // Removed: EXPERIMENTAL_INFOBAR_DELEGATE_LACROS = 102, // Removed: ROSETTA_REQUIRED_INFOBAR_DELEGATE = 103, // Removed: WEBID_PERMISSION_INFOBAR_DELEGATE = 104, AUTOFILL_OFFER_NOTIFICATION_INFOBAR_DELEGATE = 105,
diff --git a/components/password_manager/core/browser/browser_save_password_progress_logger.cc b/components/password_manager/core/browser/browser_save_password_progress_logger.cc index 51670f0..5d6b8236ae 100644 --- a/components/password_manager/core/browser/browser_save_password_progress_logger.cc +++ b/components/password_manager/core/browser/browser_save_password_progress_logger.cc
@@ -327,7 +327,7 @@ } log.Set(GetStringFromID(STRING_PASSWORD_GENERATED), form.type == PasswordForm::Type::kGenerated); - log.Set(GetStringFromID(STRING_TIMES_USED), form.times_used); + log.Set(GetStringFromID(STRING_TIMES_USED), form.times_used_in_html_form); log.Set(GetStringFromID(STRING_PSL_MATCH), form.is_public_suffix_match); LogValue(label, base::Value(std::move(log))); }
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc index 53d63bfc..6fc77e9f 100644 --- a/components/password_manager/core/browser/login_database.cc +++ b/components/password_manager/core/browser/login_database.cc
@@ -210,7 +210,7 @@ s->BindInt(COLUMN_BLOCKLISTED_BY_USER, form.blocked_by_user); s->BindInt(COLUMN_SCHEME, static_cast<int>(form.scheme)); s->BindInt(COLUMN_PASSWORD_TYPE, static_cast<int>(form.type)); - s->BindInt(COLUMN_TIMES_USED, form.times_used); + s->BindInt(COLUMN_TIMES_USED, form.times_used_in_html_form); base::Pickle form_data_pickle; autofill::SerializeFormData(form.form_data, &form_data_pickle); s->BindBlob(COLUMN_FORM_DATA, PickleToSpan(form_data_pickle)); @@ -1122,7 +1122,7 @@ s.BindInt(next_param++, form.blocked_by_user); s.BindInt(next_param++, static_cast<int>(form.scheme)); s.BindInt(next_param++, static_cast<int>(form.type)); - s.BindInt(next_param++, form.times_used); + s.BindInt(next_param++, form.times_used_in_html_form); base::Pickle form_data_pickle; autofill::SerializeFormData(form.form_data, &form_data_pickle); s.BindBlob(next_param++, PickleToSpan(form_data_pickle)); @@ -1380,7 +1380,7 @@ base::Pickle pickle = PickleFromSpan(possible_username_pairs_blob); form->all_possible_usernames = DeserializeValueElementPairs(pickle); } - form->times_used = s.ColumnInt(COLUMN_TIMES_USED); + form->times_used_in_html_form = s.ColumnInt(COLUMN_TIMES_USED); base::span<const uint8_t> form_data_blob = s.ColumnBlob(COLUMN_FORM_DATA); if (!form_data_blob.empty()) { base::Pickle form_data_pickle = PickleFromSpan(form_data_blob);
diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc index 68fa2066..b5f5cf5 100644 --- a/components/password_manager/core/browser/login_database_unittest.cc +++ b/components/password_manager/core/browser/login_database_unittest.cc
@@ -99,7 +99,7 @@ form.submit_element = u"signIn"; form.signon_realm = "http://www.google.com/"; form.scheme = PasswordForm::Scheme::kHtml; - form.times_used = 1; + form.times_used_in_html_form = 1; form.form_data.name = u"form_name"; form.date_last_used = base::Time::Now(); form.date_password_modified = base::Time::Now() - base::Days(1); @@ -1260,7 +1260,7 @@ EXPECT_EQ(AddChangeForForm(form), db().AddLogin(form)); // Add almost the same form again. - form.times_used++; + form.times_used_in_html_form++; PasswordStoreChangeList list; list.push_back(PasswordStoreChange(PasswordStoreChange::REMOVE, form)); list.push_back(PasswordStoreChange(PasswordStoreChange::ADD, form)); @@ -1361,7 +1361,7 @@ form.password_value = u"my_new_password"; form.all_possible_usernames.push_back( ValueElementPair(u"my_new_username", u"new_username_id")); - form.times_used = 20; + form.times_used_in_html_form = 20; form.submit_element = u"submit_element"; form.date_created = base::Time::Now() - base::Days(3); form.date_last_used = base::Time::Now(); @@ -1404,7 +1404,7 @@ form.action = GURL("http://accounts.google.com/login"); form.all_possible_usernames.push_back( ValueElementPair(u"my_new_username", u"new_username_id")); - form.times_used = 20; + form.times_used_in_html_form = 20; form.submit_element = u"submit_element"; form.date_created = base::Time::Now() - base::Days(3); form.date_last_used = base::Time::Now(); @@ -1453,26 +1453,26 @@ password_form.username_value = u"test1@gmail.com"; password_form.password_value = u"test"; password_form.signon_realm = "http://example.com/"; - password_form.times_used = 0; + password_form.times_used_in_html_form = 0; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form)); password_form.username_value = u"test2@gmail.com"; - password_form.times_used = 1; + password_form.times_used_in_html_form = 1; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form)); password_form.url = GURL("http://second.example.com"); password_form.signon_realm = "http://second.example.com"; - password_form.times_used = 3; + password_form.times_used_in_html_form = 3; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form)); password_form.username_value = u"test3@gmail.com"; password_form.type = PasswordForm::Type::kGenerated; - password_form.times_used = 2; + password_form.times_used_in_html_form = 2; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form)); password_form.url = GURL("ftp://third.example.com/"); password_form.signon_realm = "ftp://third.example.com/"; - password_form.times_used = 4; + password_form.times_used_in_html_form = 4; password_form.scheme = PasswordForm::Scheme::kOther; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form)); @@ -1480,7 +1480,7 @@ password_form.signon_realm = "http://fourth.example.com/"; password_form.type = PasswordForm::Type::kFormSubmission; password_form.username_value = u""; - password_form.times_used = 10; + password_form.times_used_in_html_form = 10; password_form.scheme = PasswordForm::Scheme::kHtml; EXPECT_EQ(AddChangeForForm(password_form), db->AddLogin(password_form));
diff --git a/components/password_manager/core/browser/password_form.cc b/components/password_manager/core/browser/password_form.cc index 1156866..382adea 100644 --- a/components/password_manager/core/browser/password_form.cc +++ b/components/password_manager/core/browser/password_form.cc
@@ -153,7 +153,7 @@ target.Set("date_password_modified", form.date_password_modified.ToDoubleT()); target.Set("date_created", form.date_created.ToDoubleT()); target.Set("type", ToString(form.type)); - target.Set("times_used", form.times_used); + target.Set("times_used_in_html_form", form.times_used_in_html_form); target.Set("form_data", ToString(form.form_data)); target.Set("generation_upload_status", ToString(form.generation_upload_status)); @@ -369,7 +369,7 @@ lhs.date_last_used == rhs.date_last_used && lhs.date_password_modified == rhs.date_password_modified && lhs.blocked_by_user == rhs.blocked_by_user && lhs.type == rhs.type && - lhs.times_used == rhs.times_used && + lhs.times_used_in_html_form == rhs.times_used_in_html_form && lhs.form_data.SameFormAs(rhs.form_data) && lhs.generation_upload_status == rhs.generation_upload_status && lhs.display_name == rhs.display_name && lhs.icon_url == rhs.icon_url &&
diff --git a/components/password_manager/core/browser/password_form.h b/components/password_manager/core/browser/password_form.h index 1908ed1..3c4b403 100644 --- a/components/password_manager/core/browser/password_form.h +++ b/components/password_manager/core/browser/password_form.h
@@ -335,10 +335,10 @@ Type type = Type::kFormSubmission; // The number of times that this username/password has been used to - // authenticate the user. + // authenticate the user in an HTML form. // // When parsing an HTML form, this is not used. - int times_used = 0; + int times_used_in_html_form = 0; // Autofill representation of this form. Used to communicate with the // Autofill servers if necessary. Currently this is only used to help
diff --git a/components/password_manager/core/browser/password_manager_util.cc b/components/password_manager/core/browser/password_manager_util.cc index 63e7b23b..468e398 100644 --- a/components/password_manager/core/browser/password_manager_util.cc +++ b/components/password_manager/core/browser/password_manager_util.cc
@@ -72,7 +72,9 @@ // Update |credential| to reflect usage. void UpdateMetadataForUsage(PasswordForm* credential) { - ++credential->times_used; + if (credential->scheme == PasswordForm::Scheme::kHtml) { + ++credential->times_used_in_html_form; + } // Remove alternate usernames. At this point we assume that we have found // the right username.
diff --git a/components/password_manager/core/browser/password_save_manager_impl.cc b/components/password_manager/core/browser/password_save_manager_impl.cc index 031d16d..5592f81 100644 --- a/components/password_manager/core/browser/password_save_manager_impl.cc +++ b/components/password_manager/core/browser/password_save_manager_impl.cc
@@ -169,14 +169,14 @@ } // Returns a PasswordForm that has all fields taken from |update| except -// date_created, times_used and moving_blocked_for_list that are +// date_created, times_used_in_html_form and moving_blocked_for_list that are // taken from |original_form|. PasswordForm UpdateFormPreservingDifferentFieldsAcrossStores( const PasswordForm& original_form, const PasswordForm& update) { PasswordForm result(update); result.date_created = original_form.date_created; - result.times_used = original_form.times_used; + result.times_used_in_html_form = original_form.times_used_in_html_form; result.moving_blocked_for_list = original_form.moving_blocked_for_list; return result; } @@ -299,7 +299,7 @@ SavePendingToStore(observed_form, parsed_submitted_form); - if (pending_credentials_.times_used == 1 && + if (pending_credentials_.times_used_in_html_form == 1 && pending_credentials_.type == PasswordForm::Type::kGenerated) { // This also includes PSL matched credentials. metrics_util::LogPasswordGenerationSubmissionEvent( @@ -695,11 +695,15 @@ UpdateFormPreservingDifferentFieldsAcrossStores( *states.similar_saved_form_from_profile_store, pending_credentials_); - // For other cases, |pending_credentials_.times_used| is updated in - // UpdateMetadataForUsage() invoked from UploadVotesAndMetrics(). + // For other cases, |pending_credentials_.times_used_in_html_form| is + // updated in UpdateMetadataForUsage() invoked from + // UploadVotesAndMetrics(). // UpdateFormPreservingDifferentFieldsAcrossStores() preserved the - // original times_used, and hence we should increment it here. - form_to_update.times_used++; + // original times_used_in_html_form, and hence we should increment it + // here. + if (form_to_update.scheme == PasswordForm::Scheme::kHtml) { + form_to_update.times_used_in_html_form++; + } profile_store_form_saver_->Update(form_to_update, profile_matches, old_profile_password); } break; @@ -729,11 +733,15 @@ UpdateFormPreservingDifferentFieldsAcrossStores( *states.similar_saved_form_from_account_store, pending_credentials_); - // For other cases, |pending_credentials_.times_used| is updated in - // UpdateMetadataForUsage() invoked from UploadVotesAndMetrics(). + // For other cases, |pending_credentials_.times_used_in_html_form| is + // updated in UpdateMetadataForUsage() invoked from + // UploadVotesAndMetrics(). // UpdateFormPreservingDifferentFieldsAcrossStores() preserved the - // original times_used, and hence we should increment it here. - form_to_update.times_used++; + // original times_used_in_html_form, and hence we should increment it + // here. + if (form_to_update.scheme == PasswordForm::Scheme::kHtml) { + form_to_update.times_used_in_html_form++; + } account_store_form_saver_->Update(form_to_update, account_matches, old_account_password); } break; @@ -811,7 +819,7 @@ FormStructure(pending_credentials_.form_data).FormSignatureAsStr()); } - if (pending_credentials_.times_used == 1) { + if (pending_credentials_.times_used_in_html_form == 1) { votes_uploader_->UploadFirstLoginVotes(form_fetcher_->GetBestMatches(), pending_credentials_, parsed_submitted_form);
diff --git a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc index c343c9e..6b7ae12 100644 --- a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc +++ b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc
@@ -14,6 +14,7 @@ #include "components/autofill/core/common/unique_ids.h" #include "components/password_manager/core/browser/fake_form_fetcher.h" #include "components/password_manager/core/browser/form_parsing/form_parser.h" +#include "components/password_manager/core/browser/password_form.h" #include "components/password_manager/core/browser/password_form_metrics_recorder.h" #include "components/password_manager/core/browser/stub_form_saver.h" #include "components/password_manager/core/browser/stub_password_manager_client.h" @@ -1227,6 +1228,39 @@ EXPECT_EQ(new_password, updated_form.password_value); } +TEST_P(PasswordSaveManagerImplTest, IncrementTimesUsedWhenHTMLFormSubmissions) { + PasswordForm saved_credential = saved_match_; + saved_credential.times_used_in_html_form = 5; + saved_credential.scheme = PasswordForm::Scheme::kHtml; + SetNonFederatedAndNotifyFetchCompleted({&saved_credential}); + + password_save_manager_impl()->CreatePendingCredentials( + saved_credential, &observed_form_, submitted_form_, + /*is_http_auth=*/false, + /*is_credential_api_save=*/false); + + EXPECT_CALL(*mock_profile_form_saver(), + Update(Field(&PasswordForm::times_used_in_html_form, 6), _, _)); + password_save_manager_impl()->Save(&observed_form_, saved_credential); +} + +TEST_P(PasswordSaveManagerImplTest, DontIncrementTimesUsedWhenBasicHTTPAuth) { + fetcher()->set_scheme(PasswordForm::Scheme::kBasic); + PasswordForm saved_credential = saved_match_; + saved_credential.times_used_in_html_form = 0; + saved_credential.scheme = PasswordForm::Scheme::kBasic; + SetNonFederatedAndNotifyFetchCompleted({&saved_credential}); + + password_save_manager_impl()->CreatePendingCredentials( + saved_credential, &observed_form_, submitted_form_, + /*is_http_auth=*/false, + /*is_credential_api_save=*/false); + + EXPECT_CALL(*mock_profile_form_saver(), + Update(Field(&PasswordForm::times_used_in_html_form, 0), _, _)); + password_save_manager_impl()->Save(&observed_form_, saved_credential); +} + INSTANTIATE_TEST_SUITE_P(, PasswordSaveManagerImplTest, testing::Values(false, true)); @@ -1355,8 +1389,9 @@ // equal except the |moving_blocked_for_list|. The reason for that is: // 1. |moving_blocked_for_list| is the most probable field to have different // values since it's always empty in the account store. - // 2. Other fields (e.g. |times_used|) are less critical and should be fine if - // the value in one store overrides the value in the other one. + // 2. Other fields (e.g. |times_used_in_html_form|) are less critical and + // should be fine if the value in one store overrides the value in the + // other one. SetAccountStoreEnabled(/*is_enabled=*/true); @@ -1385,14 +1420,14 @@ // Both stores should be updated in the following ways: // 1. |password_value| is updated. - // 2. |times_used| is incremented. + // 2. |times_used_in_html_form| is incremented. // 3. |date_last_used| is updated. // 4. |in_store| field is irrelevant since it's not persisted. // 5. The rest of fields are taken arbitrarily from one store. PasswordForm expected_profile_updated_form(saved_match_in_profile_store); expected_profile_updated_form.password_value = parsed_submitted_form_.password_value; - expected_profile_updated_form.times_used++; + expected_profile_updated_form.times_used_in_html_form++; expected_profile_updated_form.date_last_used = password_save_manager_impl()->GetPendingCredentials().date_last_used; expected_profile_updated_form.in_store = @@ -1401,7 +1436,7 @@ PasswordForm expected_account_updated_form(saved_match_in_account_store); expected_account_updated_form.password_value = parsed_submitted_form_.password_value; - expected_account_updated_form.times_used++; + expected_account_updated_form.times_used_in_html_form++; expected_account_updated_form.date_last_used = password_save_manager_impl()->GetPendingCredentials().date_last_used; expected_account_updated_form.in_store = @@ -1419,7 +1454,7 @@ SetAccountStoreEnabled(/*is_enabled=*/true); // Set different values for the fields that should be preserved per store - // (namely: date_created, times_used, moving_blocked_for_list) + // (namely: date_created, times_used_in_html_form, moving_blocked_for_list) PasswordForm saved_match_in_profile_store(saved_match_); saved_match_in_profile_store.username_value = parsed_submitted_form_.username_value; @@ -1428,14 +1463,14 @@ saved_match_in_profile_store.in_store = PasswordForm::Store::kProfileStore; saved_match_in_profile_store.date_created = base::Time::Now() - base::Days(10); - saved_match_in_profile_store.times_used = 10; + saved_match_in_profile_store.times_used_in_html_form = 10; saved_match_in_profile_store.moving_blocked_for_list.push_back( autofill::GaiaIdHash::FromGaiaId("email@gmail.com")); PasswordForm saved_match_in_account_store(saved_match_in_profile_store); saved_match_in_account_store.in_store = PasswordForm::Store::kAccountStore; saved_match_in_account_store.date_created = base::Time::Now(); - saved_match_in_account_store.times_used = 5; + saved_match_in_account_store.times_used_in_html_form = 5; saved_match_in_account_store.moving_blocked_for_list.clear(); SetNonFederatedAndNotifyFetchCompleted( @@ -1452,17 +1487,17 @@ EXPECT_FALSE(password_save_manager_impl()->IsPasswordUpdate()); // We still should update both credentials to update the |date_last_used| and - // |times_used|. Note that |in_store| is irrelevant since it's not persisted. - // All other fields should be preserved. + // |times_used_in_html_form|. Note that |in_store| is irrelevant since it's + // not persisted. All other fields should be preserved. PasswordForm expected_profile_update_form(saved_match_in_profile_store); - expected_profile_update_form.times_used++; + expected_profile_update_form.times_used_in_html_form++; expected_profile_update_form.date_last_used = password_save_manager_impl()->GetPendingCredentials().date_last_used; expected_profile_update_form.in_store = password_save_manager_impl()->GetPendingCredentials().in_store; PasswordForm expected_account_update_form(saved_match_in_account_store); - expected_account_update_form.times_used++; + expected_account_update_form.times_used_in_html_form++; expected_account_update_form.date_last_used = password_save_manager_impl()->GetPendingCredentials().date_last_used; expected_account_update_form.in_store =
diff --git a/components/password_manager/core/browser/store_metrics_reporter.cc b/components/password_manager/core/browser/store_metrics_reporter.cc index a1015e9..e9986777 100644 --- a/components/password_manager/core/browser/store_metrics_reporter.cc +++ b/components/password_manager/core/browser/store_metrics_reporter.cc
@@ -236,7 +236,7 @@ for (const auto& form : forms) { auto type = form->type; - const int times_used = form->times_used; + const int times_used_in_html_form = form->times_used_in_html_form; static constexpr base::StringPiece kTimesPasswordUsedSuffix = ".TimesPasswordUsed3"; @@ -246,18 +246,18 @@ base::StrCat({kPasswordManager, store_suffix, kTimesPasswordUsedSuffix, kAutoGeneratedSuffix, custom_passphrase_suffix}), - times_used); + times_used_in_html_form); } else { LogTimesUsedStat( base::StrCat({kPasswordManager, store_suffix, kTimesPasswordUsedSuffix, kUserCreatedSuffix, custom_passphrase_suffix}), - times_used); + times_used_in_html_form); } LogTimesUsedStat( base::StrCat({kPasswordManager, store_suffix, kTimesPasswordUsedSuffix, kOverallSuffix, custom_passphrase_suffix}), - times_used); + times_used_in_html_form); } }
diff --git a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc index ed72f48f..c8fe8efe 100644 --- a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc +++ b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc
@@ -52,26 +52,26 @@ password_form.username_value = u"test1@gmail.com"; password_form.password_value = u"test"; password_form.signon_realm = "http://example.com/"; - password_form.times_used = 0; + password_form.times_used_in_html_form = 0; store->AddLogin(password_form); password_form.username_value = u"test2@gmail.com"; - password_form.times_used = 1; + password_form.times_used_in_html_form = 1; store->AddLogin(password_form); password_form.url = GURL("http://second.example.com"); password_form.signon_realm = "http://second.example.com"; - password_form.times_used = 3; + password_form.times_used_in_html_form = 3; store->AddLogin(password_form); password_form.username_value = u"test3@gmail.com"; password_form.type = PasswordForm::Type::kGenerated; - password_form.times_used = 2; + password_form.times_used_in_html_form = 2; store->AddLogin(password_form); password_form.url = GURL("ftp://third.example.com/"); password_form.signon_realm = "ftp://third.example.com/"; - password_form.times_used = 4; + password_form.times_used_in_html_form = 4; password_form.scheme = PasswordForm::Scheme::kOther; store->AddLogin(password_form); @@ -79,7 +79,7 @@ password_form.signon_realm = "http://fourth.example.com/"; password_form.type = PasswordForm::Type::kFormSubmission; password_form.username_value = u""; - password_form.times_used = 10; + password_form.times_used_in_html_form = 10; password_form.scheme = PasswordForm::Scheme::kHtml; store->AddLogin(password_form);
diff --git a/components/password_manager/core/browser/sync/password_proto_utils.cc b/components/password_manager/core/browser/sync/password_proto_utils.cc index 1e8fa110..49f161d6 100644 --- a/components/password_manager/core/browser/sync/password_proto_utils.cc +++ b/components/password_manager/core/browser/sync/password_proto_utils.cc
@@ -250,7 +250,7 @@ password_form.date_created.ToDeltaSinceWindowsEpoch().InMicroseconds()); password_data.set_blacklisted(password_form.blocked_by_user); password_data.set_type(static_cast<int>(password_form.type)); - password_data.set_times_used(password_form.times_used); + password_data.set_times_used(password_form.times_used_in_html_form); password_data.set_display_name(base::UTF16ToUTF8(password_form.display_name)); password_data.set_avatar_url(password_form.icon_url.spec()); password_data.set_federation_url( @@ -295,7 +295,7 @@ password.date_created = ConvertToBaseTime(password_data.date_created()); password.blocked_by_user = password_data.blacklisted(); password.type = static_cast<PasswordForm::Type>(password_data.type()); - password.times_used = password_data.times_used(); + password.times_used_in_html_form = password_data.times_used(); password.display_name = base::UTF8ToUTF16(password_data.display_name()); password.icon_url = GURL(password_data.avatar_url()); password.federation_origin =
diff --git a/components/password_manager/core/browser/votes_uploader.cc b/components/password_manager/core/browser/votes_uploader.cc index d348b48..ed3c5046 100644 --- a/components/password_manager/core/browser/votes_uploader.cc +++ b/components/password_manager/core/browser/votes_uploader.cc
@@ -262,7 +262,7 @@ const PasswordForm& submitted_form, const std::vector<const PasswordForm*>& best_matches, PasswordForm* pending_credentials) { - if (pending_credentials->times_used == 1 || + if (pending_credentials->times_used_in_html_form == 1 || IsAddingUsernameToExistingMatch(*pending_credentials, best_matches)) { UploadFirstLoginVotes(best_matches, *pending_credentials, submitted_form); } @@ -271,7 +271,7 @@ // by password generation to help determine account creation sites. // Credentials that have been previously used (e.g., PSL matches) are checked // to see if they are valid account creation forms. - if (pending_credentials->times_used == 0) { + if (pending_credentials->times_used_in_html_form == 0) { MaybeSendSingleUsernameVote(); UploadPasswordVote(*pending_credentials, submitted_form, autofill::PASSWORD, std::string()); @@ -307,7 +307,7 @@ // they aren't from an account creation form. // Also bypass uploading if the username was edited. Offering generation // in cases where we currently save the wrong username isn't great. - if (pending->times_used == 1) { + if (pending->times_used_in_html_form == 1) { if (UploadPasswordVote(*pending, submitted_form, autofill::ACCOUNT_CREATION_PASSWORD, observed_structure.FormSignatureAsStr())) { @@ -422,7 +422,7 @@ autofill_type == autofill::NEW_PASSWORD) { // The password attributes should be uploaded only on the first save or an // update. - DCHECK_EQ(form_to_upload.times_used, 0); + DCHECK_EQ(form_to_upload.times_used_in_html_form, 0); GeneratePasswordAttributesVote(autofill_type == autofill::PASSWORD ? form_to_upload.password_value : form_to_upload.new_password_value,
diff --git a/components/policy/core/common/cloud/device_management_service.cc b/components/policy/core/common/cloud/device_management_service.cc index 32e33d0..51f0eea 100644 --- a/components/policy/core/common/cloud/device_management_service.cc +++ b/components/policy/core/common/cloud/device_management_service.cc
@@ -418,8 +418,6 @@ // Network error code passed of last call to HandleResponseData(). int last_error_ = 0; - int retry_delay_ = 0; - std::unique_ptr<network::SimpleURLLoader> url_loader_; scoped_refptr<base::SequencedTaskRunner> task_runner_; SEQUENCE_CHECKER(sequence_checker_); @@ -478,16 +476,17 @@ } config_->OnBeforeRetry(response_code, response_body); + int retry_delay = GetRetryDelay(retry_method); LOG(WARNING) << "Request of type " << JobConfiguration::GetJobTypeAsString(config_->GetType()) << " failed (net_error = " << net_error << ", response_code = " << response_code << "), retrying in " - << retry_delay_ << "ms."; + << retry_delay << "ms."; if (!is_test) { task_runner_->PostDelayedTask( FROM_HERE, base::BindOnce(&DeviceManagementService::JobImpl::Start, GetWeakPtr()), - base::Milliseconds(GetRetryDelay(retry_method))); + base::Milliseconds(retry_delay)); } return retry_method; }
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 92cad77..1132767 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -7334,6 +7334,19 @@ หากไม่มีการตั้งค่านโยบายนี้ ระบบจะปิดฟีเจอร์ไฮไลต์เคอร์เซอร์ในขั้นต้น แต่ผู้ใช้เปิดใช้ได้ทุกเมื่อ</translation> <translation id="8160572976152509481">อนุญาตให้ผู้ใช้ปิดอุปกรณ์โดยใช้ปุ่มเปิด/ปิดบนอุปกรณ์เท่านั้น</translation> +<translation id="8161309952608059239">รายการการดำเนินการที่จะเรียกใช้เมื่อหมดเวลาตามนโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> + + หากไม่ได้ตั้งค่านโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> ไว้ นโยบายนี้จะไม่มีผล + + เมื่อหมดเวลาตามนโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> <ph name="PRODUCT_NAME" /> จะเรียกใช้การดำเนินการที่กำหนดค่าไว้ในนโยบายนี้ + + หากนโยบายนี้ว่างเปล่าหรือไม่ได้ตั้งค่า นโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> จะไม่มีผล + + การดำเนินการที่รองรับ ได้แก่ "<ph name="CLOSE_BROWSERS_ACTION" />": ปิดหน้าต่างเบราว์เซอร์และ PWA ทั้งหมดสำหรับโปรไฟล์นี้ ไม่รองรับใน Android + + "<ph name="SHOW_PROFILE_PICKER_ACTION" />": แสดงหน้าต่างเครื่องมือเลือกโปรไฟล์ ไม่รองรับใน Android + + "<ph name="CLEAR_BROWSING_HISTORY_ACTION" />", "<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />", "<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />", "<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />", "<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />", "<ph name="CLEAR_AUTOFILL_ACTION" />", "<ph name="CLEAR_SITE_SETTINGS_ACTION" />", "<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />": ล้างข้อมูลการท่องเว็บที่เกี่ยวข้อง ดูรายละเอียดเพิ่มเติมจากนโยบาย <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /></translation> <translation id="8164144100557223371">ปิดจุดเข้าใช้งานแถบเครื่องมือสำหรับฟีเจอร์ทดลองของเบราว์เซอร์</translation> <translation id="8164687848393015214">การตั้งค่านโยบายเป็น "เปิดใช้" จะส่งการตรวจสอบแพ็กเก็ตเครือข่าย (<ph name="HEARTBEATS_TERM" />) ไปยังเซิร์ฟเวอร์การจัดการเพื่อตรวจสอบสถานะออนไลน์ เพื่อให้เซิร์ฟเวอร์ตรวจสอบว่าอุปกรณ์ออฟไลน์อยู่หรือไม่
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index f5ba927..5257dd42 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -1155,6 +1155,7 @@ <translation id="3872834068356954457">علوم</translation> <translation id="3875783148670536197">الاطّلاع على الإرشادات</translation> <translation id="3881478300875776315">عرض أسطر أقل</translation> +<translation id="3883500545751229739">الإعلانات المتداخلة</translation> <translation id="3884278016824448484">معرف جهاز متضارب</translation> <translation id="388632593194507180">تم رصد المراقبة</translation> <translation id="3886948180919384617">المكدِّس 3</translation> @@ -3123,6 +3124,7 @@ <translation id="8891727572606052622">وضع الخادم الوكيل غير صالح.</translation> <translation id="8894794286471754040">الحافة الطويلة أولًا</translation> <translation id="8897428486789851669">سباحة</translation> +<translation id="8899807382908246773">الإعلانات المتداخلة</translation> <translation id="8903921497873541725">تكبير</translation> <translation id="890493561996401738">إزالة زر "الاقتراحات"، اضغط على مفتاح Enter لإزالة، <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">حساب Google</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 885ba8ee..0a42676 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">Ciència</translation> <translation id="3875783148670536197">Mostra'm com</translation> <translation id="3881478300875776315">Mostra menys línies</translation> +<translation id="3883500545751229739">anuncis intrusius</translation> <translation id="3884278016824448484">L'identificador del dispositiu ja s'està utilitzant</translation> <translation id="388632593194507180">S'ha detectat supervisió</translation> <translation id="3886948180919384617">Apiladora 3</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">El mode de servidor intermediari no és vàlid.</translation> <translation id="8894794286471754040">La vora llarga primer</translation> <translation id="8897428486789851669">Natació</translation> +<translation id="8899807382908246773">Anuncis intrusius</translation> <translation id="8903921497873541725">Amplia</translation> <translation id="890493561996401738">Botó Suprimeix el suggeriment, prem Retorn per suprimir, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Compte de Google</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb index b0d095dd..a8c40a26 100644 --- a/components/strings/components_strings_cy.xtb +++ b/components/strings/components_strings_cy.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">Gwyddoniaeth</translation> <translation id="3875783148670536197">Dangoswch i Fi Sut</translation> <translation id="3881478300875776315">Dangos llai o linellau</translation> +<translation id="3883500545751229739">hysbysebion ymwthiol</translation> <translation id="3884278016824448484">Dynodwr dyfais anghyson</translation> <translation id="388632593194507180">Canfuwyd Monitro</translation> <translation id="3886948180919384617">Pentyrrwr 3</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">Modd dirprwy annilys.</translation> <translation id="8894794286471754040">Ymyl hir yn gyntaf</translation> <translation id="8897428486789851669">Nofio</translation> +<translation id="8899807382908246773">Hysbysebion ymwthiol</translation> <translation id="8903921497873541725">Chwyddo</translation> <translation id="890493561996401738">Tynnwch y botwm Awgrym, pwyswch Enter i dynnu, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Cyfrif Google</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index afbd46c..0a46bc8 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -162,6 +162,7 @@ <translation id="1337692097987160377">Del denne fane</translation> <translation id="1339601241726513588">Registreringsdomæne:</translation> <translation id="1340482604681802745">Afhentningsadresse</translation> +<translation id="1343356790768851700">Dette website foretager en vurdering af, hvad du kan lide, og foreslår derefter annoncer til andre websites</translation> <translation id="1346748346194534595">Højre</translation> <translation id="1348198688976932919">Det website, du er på vej til, indeholder farlige apps</translation> <translation id="1348779747280417563">Bekræft navn</translation> @@ -273,6 +274,7 @@ <translation id="1583429793053364125">Noget gik galt ved visningen af denne webside.</translation> <translation id="1586541204584340881">Hvilke udvidelser, du har installeret</translation> <translation id="1588438908519853928">Normal</translation> +<translation id="1589286740290249903"><ph name="BEGIN_BOLD" />Disse data bruges:<ph name="END_BOLD" /> Dine annonceemner er baseret på din seneste browserhistorik, som er en liste over websites, du har besøgt i Chrome på denne enhed.</translation> <translation id="1592005682883173041">Lokal dataadgang</translation> <translation id="1593359183944365958">270 grader</translation> <translation id="1594030484168838125">Vælg</translation> @@ -311,6 +313,7 @@ <translation id="1682696192498422849">Kort kant først</translation> <translation id="168693727862418163">Politikkens værdi blev ikke bekræftet i forhold til dens skema, og den ignoreres derfor.</translation> <translation id="168841957122794586">Servercertifikatet indeholder en svag kryptografisk nøgle.</translation> +<translation id="1697430960030447570"><ph name="BEGIN_BOLD" />Sådan administrerer du dine data:<ph name="END_BOLD" /> Chrome sletter automatisk emner, der er mere end 4 uger gamle. Når du browser videre, kan et emne dukke op på listen igen. Du kan også til enhver tid blokere emner, som du ikke vil have Chrome til at dele med websites, og deaktivere annonceemner i Chrome-indstillingerne.</translation> <translation id="1697532407822776718">Fuldført</translation> <translation id="1702815194757674443">ROC 16K</translation> <translation id="1703835215927279855">Letter</translation> @@ -340,6 +343,7 @@ <translation id="1736420071277903564">Computer</translation> <translation id="1740951997222943430">Angiv en gyldig udløbsmåned</translation> <translation id="1741613555002899862">Skal angives og være en gyldig streng, når DnsOverHttpsMode er <ph name="SECURE_DNS_MODE_SECURE" />.</translation> +<translation id="1745399796851657441"><ph name="BEGIN_BOLD" />Sådan bruger vi disse data:<ph name="END_BOLD" /> Chrome registrerer emner, der interesserer dig, mens du browser. Emneetiketter er foruddefinerede og omfatter ting som Kunst og underholdning, Shopping og Sport. Senere, når du besøger et website, kan websitet anmode Chrome om nogle få af dine emner (men ikke din browserhistorik) for at tilpasse de annoncer, du får vist.</translation> <translation id="1745880797583122200">Din browser administreres</translation> <translation id="1746113442205726301">Billedskift Y</translation> <translation id="1746531169546376413">0 grader</translation> @@ -430,6 +434,7 @@ <translation id="1992331125980284532">JIS B3</translation> <translation id="1997484222658892567"><ph name="URL" /> anmoder om at gemme store mængder data permanent på din lokale computer</translation> <translation id="2001146170449793414">{COUNT,plural, =1{og 1 mere}one{og # mere}other{og # mere}}</translation> +<translation id="2002436619517051938">Du kan foretage ændringer i Chrome-indstillingerne.</translation> <translation id="2003709556000175978">Nulstil din adgangskode nu</translation> <translation id="2003775180883135320">Fire huller øverst</translation> <translation id="201174227998721785">Administrer tilladelser og data, der gemmes på websites, i Chrome-indstillingerne</translation> @@ -452,6 +457,7 @@ <translation id="205212645995975601">Grill</translation> <translation id="2053111141626950936">Sider på <ph name="LANGUAGE" /> oversættes ikke.</translation> <translation id="2053373601901562871">{NUM_DAYS,plural, =0{Når denne indstilling er aktiveret og angives som aktiv, fastslår Chrome, hvilken stor gruppe eller "kohorte" din seneste browseraktivitet minder mest om. Annoncører kan vælge annoncer til gruppen, og din browserhistorik forbliver privat på din enhed. Din gruppe opdateres hver dag.}=1{Når denne indstilling er aktiveret og angives som aktiv, fastslår Chrome, hvilken stor gruppe eller "kohorte" din seneste browseraktivitet minder mest om. Annoncører kan vælge annoncer til gruppen, og din browserhistorik forbliver privat på din enhed. Din gruppe opdateres hver dag.}one{Når denne indstilling er aktiveret og angives som aktiv, fastslår Chrome, hvilken stor gruppe eller "kohorte" din seneste browseraktivitet minder mest om. Annoncører kan vælge annoncer til gruppen, og din browserhistorik forbliver privat på din enhed. Din gruppe opdateres med {NUM_DAYS} dags mellemrum.}other{Når denne indstilling er aktiveret og angives som aktiv, fastslår Chrome, hvilken stor gruppe eller "kohorte" din seneste browseraktivitet minder mest om. Annoncører kan vælge annoncer til gruppen, og din browserhistorik forbliver privat på din enhed. Din gruppe opdateres med {NUM_DAYS} dages mellemrum.}}</translation> +<translation id="2056658168519009885">Websites kan anmode Chrome om oplysninger med henblik på at tilpasse de annoncer, du får vist.</translation> <translation id="2059202684901022309">22 x 34 tommer</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 forslag}one{# forslag}other{# forslag}}</translation> <translation id="2066915425250589881">anmode om sletning</translation> @@ -671,6 +677,7 @@ <translation id="262745152991669301">Websitet kan anmode om tilladelse til at oprette forbindelse til USB-enheder</translation> <translation id="2629325967560697240"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />Aktivér forbedret beskyttelse<ph name="END_ENHANCED_PROTECTION_LINK" /> for at få Chromes højeste sikkerhedsniveau</translation> <translation id="2634124572758952069">IP-adressen på serveren for <ph name="HOST_NAME" /> blev ikke fundet.</translation> +<translation id="2639227409413857192">Dette website foretager en vurdering af, hvad du kan lide, og foreslår derefter annoncer til andre websites. Dette website indhenter også dine annonceemner fra Chrome med henblik på at vise dig mere relevante annoncer.</translation> <translation id="2639739919103226564">Status:</translation> <translation id="2643134278432436513">Hårpleje</translation> <translation id="2647852283046201479">Strategispil</translation> @@ -812,6 +819,7 @@ <translation id="301521992641321250">Automatisk blokering</translation> <translation id="3016780570757425217">Kende din lokation</translation> <translation id="3017086357773116182"><ph name="REMOVE_SUGGESTION_SUFFIX" />, tryk på Tab-tasten og derefter Enter for at fjerne forslaget.</translation> +<translation id="3023165109041533893">Foreslåede annoncer fra websites hjælper med at beskytte din browserhistorik og identitet og giver websites mulighed for at vise dig relevante annoncer. Baseret på din aktivitet kan et website, du har besøgt, foreslå relaterede annoncer, når du fortsætter med at browse. Du kan se en liste over disse websites og blokere dem, du ikke er interesseret i, ved at gå til indstillingerne.</translation> <translation id="3024663005179499861">Forkert politiktype</translation> <translation id="3029752078111257850">Udenrigsnyheder</translation> <translation id="3037177537145227281">Der holdes øje med prisen</translation> @@ -823,6 +831,7 @@ <translation id="306573536155379004">Spillet er startet.</translation> <translation id="3068991664510324412">Computer- og videospil</translation> <translation id="3080254622891793721">Grafik</translation> +<translation id="3081538120861307764">Med henblik på at måle en annonces effektivitet deles der begrænsede typer data mellem websites, f.eks. det tidspunkt på dagen, hvor annoncen blev vist til dig.</translation> <translation id="3082007635241601060">Lad Google bruge dine kurve til at finde tilpassede rabatter, når sådanne er tilgængelige</translation> <translation id="3086579638707268289">Din aktivitet på nettet overvåges</translation> <translation id="3087734570205094154">Bund</translation> @@ -902,6 +911,7 @@ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryk på Tab-tasten efterfulgt af Enter for hurtigt at oprette en ny begivenhed i Google Kalender</translation> <translation id="3261488570342242926">Få flere oplysninger om virtuelle kort</translation> <translation id="3264837738038045344">Knappen Administrer Chrome-indstillinger, tryk på Enter for at gå til dine Chrome-indstillinger</translation> +<translation id="3266367459139339908">Vi lancerer nye metoder til at begrænse, hvad websites kan lære om dig, når de viser dig tilpassede annoncer, f.eks.:</translation> <translation id="3266793032086590337">Værdi (modstridende)</translation> <translation id="3266972086368072861">{NUM_COOKIES,plural, =0{Ingen websites, inkl. relaterede websites, er blokeret}=1{1 website, inkl. relaterede websites, er blokeret}one{# website, inkl. relaterede websites, er blokeret}other{# websites, inkl. relaterede websites, er blokeret}}</translation> <translation id="3268451620468152448">Åbne faner</translation> @@ -933,6 +943,7 @@ <translation id="3339440062908617027">Løb og gang</translation> <translation id="3339446062576134663">Skyen (Ash)</translation> <translation id="3340978935015468852">indstillinger</translation> +<translation id="3342018947887487892">Senere kan et website, du besøger, bede om disse oplysninger – enten dine annonceemner eller annoncer, der er foreslået af de websites, du har besøgt.</translation> <translation id="3342366525167526994">Kropskunst</translation> <translation id="3345782426586609320">Øjne</translation> <translation id="3349952286488694786">SRA2</translation> @@ -1060,6 +1071,7 @@ <translation id="3634530185120165534">Bakke 5</translation> <translation id="3634567936866541746">Du har lige angivet din adgangskode på et vildledende website. Chrome anbefaler, at du tjekker dine gemte adgangskoder for at sikre dine konti.</translation> <translation id="3642638418806704195">Program:</translation> +<translation id="3646643500201740985">Måling af en annonces effektivitet</translation> <translation id="3647286794400715637">Hver webadressestreng skal indeholde mellem 1 og 2 webadresser.</translation> <translation id="3650584904733503804">Valideringen er fuldført</translation> <translation id="3653033846669030038">Forlystelsesparker</translation> @@ -1077,6 +1089,7 @@ <translation id="3678342917559046352">Ugyldig udvidelse: Det var forventet, at værdien skulle være en af følgende: <extension_id> eller <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Åbn siden i et nyt inkognitovindue (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Certifikatoplysninger</translation> +<translation id="3681421644246505351">Chrome registrerer emner, du kan være interesseret i, baseret på din seneste browserhistorik.</translation> <translation id="3693327506115126094">Vælg, hvordan du vil verificere din identitet</translation> <translation id="3701427423622901115">Nulstillingen blev anerkendt.</translation> <translation id="3704162925118123524">Det netværk, du bruger, kan kræve, at du går til netværkets loginside.</translation> @@ -1162,6 +1175,7 @@ <translation id="3901925938762663762">Kortet er udløbet</translation> <translation id="3906954721959377182">Tablet</translation> <translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation> +<translation id="3911401144270344103">Du kan til enhver tid ombestemme dig og fravælge dette i Chrome-indstillingerne</translation> <translation id="3921869355029467742">Angiv din sikkerhedskode</translation> <translation id="3927932062596804919">Afvis</translation> <translation id="393316646445601645">Internet og telekommunikation</translation> @@ -1189,6 +1203,7 @@ <translation id="3987940399970879459">Mindre end 1 MB</translation> <translation id="3990250421422698716">Langsom offsetkørsel</translation> <translation id="3992684624889376114">Om denne side</translation> +<translation id="399952081411886534">Andre funktioner, der gør annoncer mere private</translation> <translation id="4006465311664329701">Betalingsmetoder, tilbud og adresser, der bruger Google Pay</translation> <translation id="4009243425692662128">Indholdet på de sider, du udskriver, sendes til analyse i Google Cloud eller hos tredjeparter. Tekst kan f.eks. blive scannet for følsomme oplysninger.</translation> <translation id="4010758435855888356">Vil du give adgang til lagerpladsen?</translation> @@ -1206,6 +1221,7 @@ <translation id="4063924980214801036">Brug enhedsoplåsning til at bekræfte kort hurtigere</translation> <translation id="4067098466788473230">Studielegater og stipendier</translation> <translation id="4067947977115446013">Tilføj gyldig adresse</translation> +<translation id="4070790659619547722">Med annoncemåling deles begrænsede typer data mellem websites for at måle, hvor effektive deres annoncer er, f.eks. det tidspunkt på dagen, hvor der blev vist en annonce til dig.</translation> <translation id="4072193657607981494">Indlæser politikker</translation> <translation id="4072486802667267160">Der opstod en fejl under behandlingen af din ordre. Prøv igen.</translation> <translation id="4073376909608563327">Enhedsoplåsning kunne ikke anvendes</translation> @@ -1258,6 +1274,7 @@ <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> element mere}one{<ph name="ITEM_COUNT" /> element mere}other{<ph name="ITEM_COUNT" /> elementer mere}}</translation> <translation id="4176463684765177261">Deaktiveret</translation> <translation id="4176535426287761656">Timeshare og ferieejendomme</translation> +<translation id="4177501066905053472">Annonceemner</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> <translation id="4186035307311647330">Hold ikke længere øje med prisen</translation> <translation id="4194250254487269611">Dit kort kan ikke gemmes lige nu</translation> @@ -1313,6 +1330,7 @@ <translation id="4282346679996504092">Underretninger for dette produkt er deaktiveret, og bogmærket er fjernet</translation> <translation id="4285498937028063278">Frigør</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Kortet er gemt på din Google-konto}one{Kortet er gemt på din Google-konto}other{Kortene er gemt på din Google-konto}}</translation> +<translation id="4287495839370498922">Forbedret beskyttelse af personlige oplysninger i forbindelse med annoncering i Chrome</translation> <translation id="4287885627794386150">Kvalificeret til en prøveperiode, men ikke aktiv.</translation> <translation id="4297502707443874121">Miniature for siden <ph name="THUMBNAIL_PAGE" /></translation> <translation id="4298000214066716287">Investering</translation> @@ -1393,6 +1411,7 @@ <translation id="449126573531210296">Kryptér synkroniserede adgangskoder med din Google-konto</translation> <translation id="4492519888999857993">Disse funktioner er som standard deaktiveret. De vil ikke være tilgængelige i fremtidige versioner af Chrome.</translation> <translation id="4493480324863638523">Webadressen er ugyldig. Webadressen skal indeholde et standardskema, f.eks. http://eksempel.dk eller https://eksempel.dk.</translation> +<translation id="4494323206460475851">Du kan se annonceemner i indstillingerne og blokere dem, der ikke skal deles med websites. Chrome sletter også automatisk annonceemner, der er mere end 4 uger gamle.</translation> <translation id="4500587658229086076">usikkert indhold</translation> <translation id="4506176782989081258">Valideringsfejl: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontakte systemadministratoren</translation> @@ -1463,6 +1482,7 @@ <translation id="467809019005607715">Google Slides</translation> <translation id="4682496302933121474">Vil du oversætte siden?</translation> <translation id="468314109939257734">Se dit virtuelle kortnummer</translation> +<translation id="4687718960473379118">Foreslåede annoncer fra websites</translation> <translation id="4692623383562244444">Søgemaskiner</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> <translation id="4702504834785592287">Side</translation> @@ -1744,6 +1764,7 @@ <translation id="5337569431717511221">Knappen Angiv Chrome som standardbrowser, tryk på Enter for at angive Chrome som systemets standardbrowser</translation> <translation id="5340250774223869109">Appen er blokeret</translation> <translation id="534295439873310000">NFC-enheder</translation> +<translation id="5344522958567249764">Administrer beskyttelse af personlige oplysninger i forbindelse med annoncering</translation> <translation id="5344579389779391559">Denne side forsøger muligvis at opkræve penge af dig</translation> <translation id="5347645913823149105">Knappen Tilpas skrifttyper i Chrome – tryk på Enter for at tilpasse skriftstørrelsen og skrifttypen i Chrome</translation> <translation id="5355557959165512791">Du kan ikke besøge <ph name="SITE" /> lige nu, da dets certifikat er blevet tilbagekaldt. Netværksfejl og angreb er normalt midlertidige, så siden vil sandsynligvis fungere igen senere.</translation> @@ -1842,6 +1863,7 @@ <translation id="5598944008576757369">Vælg betalingsmetode</translation> <translation id="560412284261940334">Administration er ikke understøttet</translation> <translation id="5605670050355397069">Ledger</translation> +<translation id="5606444889871204172"><ph name="BEGIN_BOLD" />Sådan administrerer du dine data:<ph name="END_BOLD" /> Chrome sletter automatisk websites, der er mere end 4 uger gamle. Et website, du besøger igen, kan dukke op på listen igen. Du kan også til enhver tid blokere et website, så det ikke foreslår annoncer til dig, og deaktivere foreslåede annoncer fra websites i Chrome-indstillingerne.</translation> <translation id="5610142619324316209">Tjekke din forbindelse</translation> <translation id="5610807607761827392">Du kan administrere kort og adresser i <ph name="BEGIN_LINK" />Indstillinger<ph name="END_LINK" />.</translation> <translation id="561165882404867731">Oversæt denne side med Google Oversæt</translation> @@ -1980,6 +2002,7 @@ <translation id="598637245381783098">Betalingsappen kan ikke åbnes</translation> <translation id="5989320800837274978">Der er hverken angivet faste proxyservere eller en .pac-scriptwebadresse.</translation> <translation id="5992691462791905444">Z-fals med kant foroven</translation> +<translation id="5992805036496113940">Se de oplysninger, der bruges til at vise dig annoncer</translation> <translation id="5995727681868049093">Administrer din konto, dit privatliv og beskyttelsen på din Google-konto</translation> <translation id="5997247540087773573">Den adgangskode, du lige har brugt, er blevet lækket i forbindelse med et brud på datasikkerheden. For at beskytte dine konti anbefaler Google Adgangskodeadministrator, at du ændrer det nu og tjekker dine gemte adgangskoder.</translation> <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for "<ph name="SEARCH_TEXT" />"</translation> @@ -2016,6 +2039,7 @@ <translation id="6051221802930200923">Du kan ikke besøge <ph name="SITE" /> lige nu, da websitet bruger certifikatlåsning. Netværksfejl og angreb er normalt midlertidige, så siden vil sandsynligvis fungere igen senere.</translation> <translation id="6051898664905071243">Sideantal:</translation> <translation id="6052284303005792909">•</translation> +<translation id="6053735090575989697">Få flere oplysninger om, hvordan Google beskytter dine data, i vores privatlivspolitik.</translation> <translation id="6055888660316801977">Regneark uden matchende loginoplysninger til sikker betaling</translation> <translation id="6058977677006700226">Vil du bruge kortene på alle dine enheder?</translation> <translation id="6059925163896151826">USB-enheder</translation> @@ -2064,6 +2088,7 @@ <translation id="6196640612572343990">Bloker cookies fra tredjeparter</translation> <translation id="6197648101609735209">89 x 89 mm</translation> <translation id="6203231073485539293">Kontrollér din internetforbindelse</translation> +<translation id="6205314730813004066">Annoncer og privatliv</translation> <translation id="6212314149070368045">US Fanfold</translation> <translation id="6218753634732582820">Vil du fjerne adressen fra Chromium?</translation> <translation id="622039917539443112">Parallelfals</translation> @@ -2154,6 +2179,7 @@ <translation id="6429267199680088961">A4 Tab</translation> <translation id="643051589346665201">Skift Google-adgangskode</translation> <translation id="6431119592588449664">Rapporten er uploadet</translation> +<translation id="6432297414176614592">Mere om annonceemner</translation> <translation id="6433490469411711332">Rediger kontaktoplysninger</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> nægtede at oprette forbindelse.</translation> <translation id="6433797564277305076">Bekræft dine kort hurtigere ved hjælp af enhedsoplåsning fra nu af</translation> @@ -2174,6 +2200,7 @@ <translation id="646793340882508547">Adventurespil</translation> <translation id="6468485451923838994">Skrifttyper</translation> <translation id="647261751007945333">Enhedspolitikker</translation> +<translation id="6475672344094591109">De websites, du besøger, kan anmode Chrome om oplysninger for at hjælpe dem med at måle effektiviteten af deres annoncer. Chrome beskytter dine personlige oplysninger ved at begrænse de oplysninger, som websites kan dele med hinanden.</translation> <translation id="6476284679642588870">Administrer betalingsmetoder</translation> <translation id="6486200200930923183">Dokumentarfilm</translation> <translation id="6489534406876378309">Start upload af nedbrud</translation> @@ -2277,6 +2304,7 @@ <translation id="6786145470008421571">Konvolut 6 x 9 tommer</translation> <translation id="67862343314499040">Violet</translation> <translation id="6786747875388722282">Udvidelser</translation> +<translation id="6787094689637422836">Vi lancerer nye privatlivsrelaterede funktioner, der giver dig flere valgmuligheder i forhold til, hvilke annoncer du får vist.</translation> <translation id="678982761784843853">Beskyttede indholds-id'er</translation> <translation id="6790428901817661496">Afspil</translation> <translation id="679355240208270552">Ignoreret, fordi en standardsøgemaskine ikke er aktiveret af politikken.</translation> @@ -2577,6 +2605,7 @@ <translation id="7507075214339298899">Konvolut nr. 9</translation> <translation id="7508255263130623398">Det returnerede enheds-id for politikken er tomt eller stemmer ikke overens med det nuværende enheds-id</translation> <translation id="7508870219247277067">Avocadogrøn</translation> +<translation id="7510225383966760306"><ph name="BEGIN_BOLD" />Sådan bruger websites disse data:<ph name="END_BOLD" /> Websites kan gemme oplysninger i Chrome om de ting, du kan lide. Hvis du f.eks. besøger et website om maratontræning, kan websitet vurdere, at du er interesseret i løbesko. Hvis du derefter besøger et andet website, kan websitet vise dig en annonce for løbesko, som det første website har foreslået.</translation> <translation id="7510269639068718544">Katte</translation> <translation id="7511955381719512146">Det Wi-Fi-netværk, du bruger, kan kræve, at du går til <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation> <translation id="7512685745044087310">Denne politik kan ikke angives som "Sand" og være obligatorisk. Derfor er den ændret til anbefalet.</translation> @@ -2705,11 +2734,13 @@ <translation id="7766518757692125295">Skørte</translation> <translation id="7773005668374414287">Samme rækkefølge med forside opad</translation> <translation id="7785790577395078482">denne tablet</translation> +<translation id="7790488044432570133">De websites, du besøger, kan anmode Chrome om oplysninger for at hjælpe dem med at måle effektiviteten af deres annoncer. Chrome giver websites mulighed for at indsamle begrænsede typer data, f.eks. det tidspunkt på dagen, hvor der blev vist en annonce til dig.</translation> <translation id="7791011319128895129">Ikke udgivet</translation> <translation id="7791196057686275387">Bale</translation> <translation id="7791543448312431591">Tilføj</translation> <translation id="7798389633136518089">Politikken blev ignoreret, da den ikke er angivet af en skytjeneste.</translation> <translation id="7800304661137206267">Forbindelsen er krypteret ved hjælp af <ph name="CIPHER" /> med <ph name="MAC" /> til meddelelsesgodkendelse og <ph name="KX" /> som hovedudvekslingsmekanisme.</translation> +<translation id="7800977246388195491">Chrome registrerer emner, du kan være interesseret i, baseret på din seneste browserhistorik. Derudover kan de websites, du besøger, foretage en vurdering af, hvad du kan lide. Websites kan derefter anmode om disse oplysninger med henblik på at vise dig tilpassede annoncer. Du kan vælge, hvilke emner og websites der skal bruges til at vise dig annoncer.</translation> <translation id="7802523362929240268">Websitet er pålideligt</translation> <translation id="7802989406998618639">Angiv den <ph name="NUMBER_OF_DIGITS" />-cifrede sikkerhedskode på <ph name="SIDE_OF_CARD" />, så din bank kan verificere din identitet</translation> <translation id="780301667611848630">Nej tak</translation> @@ -2991,6 +3022,7 @@ <translation id="8533619373899488139">Gå til <strong>chrome://policy</strong> for at se listen over blokerede webadresser og andre politikker, der håndhæves af din systemadministrator.</translation> <translation id="8539500321752640291">Vil du godkende 2 tilladelser?</translation> <translation id="8541158209346794904">Bluetooth-enhed</translation> +<translation id="8541410041357371550">Dette website henter dine annonceemner fra Chrome for at vise dig mere relevante annoncer</translation> <translation id="8542014550340843547">Trehæftning nederst</translation> <translation id="8542617028204211143">SRA0</translation> <translation id="8543181531796978784">Du kan <ph name="BEGIN_ERROR_LINK" />rapportere et registreringsproblem<ph name="END_ERROR_LINK" /> eller, hvis du forstår den sikkerhedsrisiko, du udsætter dig for, <ph name="BEGIN_LINK" />kan du gå til dette usikre website<ph name="END_LINK" />.</translation> @@ -3010,7 +3042,9 @@ <translation id="8589998999637048520">Bedste kvalitet:</translation> <translation id="8600271352425265729">Kun denne gang</translation> <translation id="860043288473659153">Kortholderens navn</translation> +<translation id="8601027005147870853"><ph name="BEGIN_BOLD" />Disse data bruges:<ph name="END_BOLD" /> Din aktivitet på et website, du besøger via Chrome på denne enhed.</translation> <translation id="8606726445206553943">Brug dine MIDI-enheder</translation> +<translation id="8606988009912891950">Annonceemner hjælper websites med at vise dig relevante annoncer, samtidig med at din browserhistorik og identitet beskyttes. Chrome kan registrere emner, du muligvis er interesseret i, baseret på din seneste browserhistorik. Senere, når du besøger et website, kan websitet anmode Chrome om nogle relevante emner for at tilpasse de annoncer, du får vist.</translation> <translation id="8617269623452051934">din enhedsbrug</translation> <translation id="861775596732816396">Størrelse 4</translation> <translation id="8620276786115098679">Konvolut Kaku 7</translation> @@ -3116,6 +3150,7 @@ <translation id="8876033571432926051">Hyggespil</translation> <translation id="8877780815363510165">Fiskeri</translation> <translation id="8884537526797090108">Der kan ikke optages fortroligt indhold</translation> +<translation id="8890798179125483517">Chrome sletter automatisk emner og websites, der foreslår annoncer, som er mere end 4 uger gamle. Du kan også blokere bestemte emner og websites, du ikke er interesseret i.</translation> <translation id="8891727572606052622">Ugyldig proxytilstand.</translation> <translation id="8894794286471754040">Lang kant først</translation> <translation id="8897428486789851669">Svømning</translation> @@ -3204,6 +3239,7 @@ <translation id="91108059142052966">Administratorpolitikken deaktiverer skærmdeling med <ph name="APPLICATION_TITLE" />, når fortroligt indhold er synligt</translation> <translation id="9114524666733003316">Bekræfter kort...</translation> <translation id="9114581008513152754">Denne browser administreres ikke af en virksomhed eller en anden organisation. Aktivitet på denne enhed administreres muligvis uden for Chrome. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation> +<translation id="9116548361133462832">Mere om annoncer i Chrome</translation> <translation id="9117930699067497412">Frisk</translation> <translation id="9118692854637641831"><ph name="HISTORY_CLUSTERS_SEARCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> – tryk på Tab-tasten og derefter Enter for at genoptage søgningen og se relevant aktivitet i din Chrome-historik</translation> <translation id="9119042192571987207">Uploadet</translation> @@ -3227,6 +3263,8 @@ <translation id="9155211586651734179">Forbundne eksterne lydenheder</translation> <translation id="9157595877708044936">Konfigurerer...</translation> <translation id="9164742147345933553">os://flags</translation> +<translation id="9165305804774426672">De websites, du besøger, kan også foretage en vurdering af, hvad du kan lide, baseret på din aktivitet på websitet. Hvis du f.eks. besøger et website, der sælger løbesko til langdistanceløb, kan websitet vurdere, at du er interesseret i at løbe maraton.</translation> +<translation id="9166851138617700776">Flere oplysninger om foreslåede annoncer fra websites og annoncemåling</translation> <translation id="9168814207360376865">Tillad, at websites kan tjekke, om du har gemte betalingsmetoder</translation> <translation id="9169664750068251925">Bloker altid på dette website</translation> <translation id="9169931577761441333">Føj <ph name="APP_NAME" /> til startskærmen</translation> @@ -3271,6 +3309,7 @@ <translation id="975560348586398090">{COUNT,plural, =0{Ingen}=1{1 element}one{# element}other{# elementer}}</translation> <translation id="976522784004777030">5 x 8 tommer</translation> <translation id="977502174772294970">Bryllupper</translation> +<translation id="979503328401807348">Mere nyttige annoncer</translation> <translation id="981121421437150478">Offline</translation> <translation id="982885543310356857">Klassiske biler</translation> <translation id="984275831282074731">Betalingsmetoder</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 7055c23..f6a8e70 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -1980,7 +1980,7 @@ <translation id="5989320800837274978">No se han especificado servidores proxy fijos ni una URL de secuencia de comandos .pac.</translation> <translation id="5992691462791905444">Plegado en Z asimétrico</translation> <translation id="5995727681868049093">Gestiona tu información, privacidad y seguridad en tu cuenta de Google</translation> -<translation id="5997247540087773573">La contraseña que acabas de usar se ha encontrado en una quiebra de seguridad de datos. Para proteger tus cuentas, el gestor de contraseñas de Google te recomienda que cambies esa contraseña ahora y que compruebes las contraseñas que tengas guardadas.</translation> +<translation id="5997247540087773573">La contraseña que acabas de usar se ha encontrado en una quiebra de seguridad de datos. Para proteger tus cuentas, el Gestor de contraseñas de Google te recomienda que cambies esa contraseña ahora y que compruebes las contraseñas que tengas guardadas.</translation> <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation> <translation id="6005765687956866568">La información autocompletada se ha borrado del formulario</translation> <translation id="6006365096047131769">3x5 pulgadas</translation> @@ -2640,7 +2640,7 @@ <translation id="7637586430889951925">{COUNT,plural, =0{Ninguna}=1{1 contraseña en tu cuenta (de <ph name="DOMAIN_LIST" />)}other{# contraseñas en tu cuenta (de <ph name="DOMAIN_LIST" />)}}</translation> <translation id="7638605456503525968">Puertos serie</translation> <translation id="7639968568612851608">Gris oscuro</translation> -<translation id="7646681339175747202">La contraseña que acabas de usar se ha encontrado en una quiebra de seguridad de datos. El gestor de contraseñas de Google te recomienda que cambies tu contraseña ahora.</translation> +<translation id="7646681339175747202">La contraseña que acabas de usar se ha encontrado en una quiebra de seguridad de datos. El Gestor de contraseñas de Google te recomienda que cambies tu contraseña ahora.</translation> <translation id="7647206758853451655">Calidad de impresión</translation> <translation id="7648992873808071793">Almacenar archivos en este dispositivo</translation> <translation id="7653957176542370971">La hoja del controlador de pagos está cerrada</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index ac333e3..d278138b 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">Teadus</translation> <translation id="3875783148670536197">Kuva juhised</translation> <translation id="3881478300875776315">Kuva vähem ridu</translation> +<translation id="3883500545751229739">sekkuvad reklaamid</translation> <translation id="3884278016824448484">Seadme identifikaator on konfliktne</translation> <translation id="388632593194507180">Tuvastati jälgimine</translation> <translation id="3886948180919384617">Virnastaja 3</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">Kehtetu puhverserveri režiim.</translation> <translation id="8894794286471754040">Pikem serv enne</translation> <translation id="8897428486789851669">Ujumine</translation> +<translation id="8899807382908246773">Sekkuvad reklaamid</translation> <translation id="8903921497873541725">Suurendab</translation> <translation id="890493561996401738">Soovituse eemaldamise nupp, vajutage eemaldamiseks sisestusklahvi, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google'i konto</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index d6281f96..4bd4c614 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -1149,6 +1149,7 @@ <translation id="3872834068356954457">Zientzia</translation> <translation id="3875783148670536197">Erakutsi nola</translation> <translation id="3881478300875776315">Erakutsi lerro gutxiago</translation> +<translation id="3883500545751229739">iragarki oztopatzaileak</translation> <translation id="3884278016824448484">Gailu-identifikatzaile gatazkatsua</translation> <translation id="388632593194507180">Sarea kontrolatzen ari direla hauteman da</translation> <translation id="3886948180919384617">3. pilatzailea</translation> @@ -3112,6 +3113,7 @@ <translation id="8891727572606052622">Proxy moduak ez du balio.</translation> <translation id="8894794286471754040">Ertz luzea lehendabizi</translation> <translation id="8897428486789851669">Igeriketa</translation> +<translation id="8899807382908246773">Iragarki oztopatzaileak</translation> <translation id="8903921497873541725">Handitu</translation> <translation id="890493561996401738">"Kendu iradokizuna" botoia, sakatu Sartu kentzeko, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google-ko kontua</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index d9946cb..65c81227 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -162,6 +162,7 @@ <translation id="1337692097987160377">Ibahagi ang tab na ito</translation> <translation id="1339601241726513588">Domain ng pagpapatala:</translation> <translation id="1340482604681802745">Address sa pag-pick up</translation> +<translation id="1343356790768851700">Tinutukoy ng site na ito ang mga bagay na gusto mo at pagkatapos ay nagmumungkahi ito ng mga ad sa iba pang site</translation> <translation id="1346748346194534595">Kanan</translation> <translation id="1348198688976932919">May mapapanganib na app ang pupuntahang site</translation> <translation id="1348779747280417563">Kumpirmahin ang pangalan</translation> @@ -175,6 +176,7 @@ <translation id="1363819917331173092">Huwag mag-alok na isalin ang mga page sa <ph name="SOURCE_LANGUAGE" /></translation> <translation id="1364822246244961190">Naka-block ang patakarang ito, babalewalain ang value nito.</translation> <translation id="1368318639262510626">Dino game. Umiiwas ang isang pixelated na dinosaur sa mga cactus at pterodactyl habang tumatakbo ito sa isang bakanteng landscape. Kapag may narinig kang audio na cue, pindutin ang space para tumalon sa mga balakid.</translation> +<translation id="136907351928231527">Posibleng abutin nang hanggang isang linggo bago lumabas dito ang listahan ng mga paksa batay sa iyong kamakailang history ng pag-browse.</translation> <translation id="1374468813861204354">mga suhestiyon</translation> <translation id="1375198122581997741">Tungkol sa Bersyon</translation> <translation id="1376836354785490390">Magpakita Nang Mas Kaunti</translation> @@ -266,6 +268,7 @@ <translation id="1559839503761818503">Ire-restart ng iyong administrator ang device mo nang <ph name="TIME" /> sa <ph name="DATE" /></translation> <translation id="156703335097561114">Impormasyon ng networking gaya ng mga address, configuration ng interface, at kalidad ng koneksyon</translation> <translation id="1567040042588613346">Gumagana ang patakarang ito tulad ng inaasahan pero itinatakda ang kaparehong value sa ibang lugar at nasasapawan ito ng patakarang ito.</translation> +<translation id="1567405528131216114">Idagdag ang <ph name="TOPIC" /></translation> <translation id="1569487616857761740">Ilagay ang petsa ng pag-expire</translation> <translation id="1569694109004336106">Sinusubukan ng Google Chrome na i-on ang Windows Hello para sa paglalagay ng mga password.</translation> <translation id="1572765991610098222"><ph name="WIDTH" /> x <ph name="HEIGHT" /> in</translation> @@ -273,6 +276,7 @@ <translation id="1583429793053364125">Nagkaproblema habang ipinapakita ang webpage na ito.</translation> <translation id="1586541204584340881">Aling mga extension ang na-install mo</translation> <translation id="1588438908519853928">Normal</translation> +<translation id="1589286740290249903"><ph name="BEGIN_BOLD" />Anong data ang ginagamit:<ph name="END_BOLD" /> Nakabatay ang iyong mga paksa ng ad sa kamakailan mong history ng pag-browse, isang listahan ng mga site na binisita mo gamit ang Chrome sa device na ito.</translation> <translation id="1592005682883173041">Access sa Lokal na Data</translation> <translation id="1593359183944365958">270 degrees</translation> <translation id="1594030484168838125">Pumili</translation> @@ -311,6 +315,7 @@ <translation id="1682696192498422849">Short edge muna</translation> <translation id="168693727862418163">Hindi na-validate ang value ng patakarang ito sa schema nito at babalewalain ito.</translation> <translation id="168841957122794586">Naglalaman ang server certificate ng isang mahinang cryptographic key.</translation> +<translation id="1697430960030447570"><ph name="BEGIN_BOLD" />Paano mo mapapamahalaan ang iyong data:<ph name="END_BOLD" /> Awtomatikong dine-delete ng Chrome ang mga paksang mahigit 4 na linggo na. Habang patuloy kang nagba-browse, posibleng may paksang lumabas ulit sa listahan. Puwede mo ring i-block ang mga paksang ayaw mong i-share ng Chrome sa mga site at i-off ang mga paksa ng ad anumang oras sa mga setting ng Chrome.</translation> <translation id="1697532407822776718">Handa ka na!</translation> <translation id="1702815194757674443">ROC 16K</translation> <translation id="1703835215927279855">Letter</translation> @@ -340,6 +345,7 @@ <translation id="1736420071277903564">Computer</translation> <translation id="1740951997222943430">Maglagay ng wastong buwan ng pag-expire</translation> <translation id="1741613555002899862">Dapat ay tukuyin at isang valid na string kapag ang DnsOverHttpsMode ay <ph name="SECURE_DNS_MODE_SECURE" />.</translation> +<translation id="1745399796851657441"><ph name="BEGIN_BOLD" />Paano namin ginagamit ang data na ito:<ph name="END_BOLD" /> Itinatala ng Chrome ang mga kinaiinteresang paksa habang nagba-browse ka. Na-predefine ang mga label ng paksa at kasama sa mga ito ang mga bagay tulad ng Sining at Entertainment, Shopping, at Sports. Sa ibang pagkakataon, puwedeng hingin sa Chrome ng site na binibisita mo ang ilan sa iyong mga paksa (pero hindi ang history ng pag-browse mo) para ma-personalize ang mga ad na nakikita mo.</translation> <translation id="1745880797583122200">Pinapamahalaan ang iyong browser</translation> <translation id="1746113442205726301">Pag-shift ng larawan Y</translation> <translation id="1746531169546376413">0 degrees</translation> @@ -430,6 +436,7 @@ <translation id="1992331125980284532">JIS B3</translation> <translation id="1997484222658892567">Gusto ng <ph name="URL" /> na permanenteng mag-store ng malaking data sa iyong lokal na computer</translation> <translation id="2001146170449793414">{COUNT,plural, =1{at 1 pa}one{at # pa}other{at # pa}}</translation> +<translation id="2002436619517051938">Puwede mong baguhin ang mga ito sa mga setting ng Chrome.</translation> <translation id="2003709556000175978">I-reset na ang iyong password</translation> <translation id="2003775180883135320">Quad punch top</translation> <translation id="201174227998721785">Pamahalaan ang mga pahintulot at data na naka-store sa lahat ng site sa mga setting ng Chrome</translation> @@ -452,6 +459,7 @@ <translation id="205212645995975601">BBQ at pag-iihaw</translation> <translation id="2053111141626950936">Hindi ita-translate ang mga page na nasa <ph name="LANGUAGE" />.</translation> <translation id="2053373601901562871">{NUM_DAYS,plural, =0{Kapag naka-on ang kontrol na ito at aktibo ang status, tinutukoy ng Chrome kung aling malaking grupo ng mga tao, o "cohort," ang pinakakatulad ng iyong kamakailang aktibidad sa pag-browse. Makakapili ang mga advertiser ng mga ad para sa grupo at pinapanatiling pribado sa iyong device ang aktibidad mo sa pag-browse. Ina-update ang iyong grupo araw-araw.}=1{Kapag naka-on ang kontrol na ito at aktibo ang status, tinutukoy ng Chrome kung aling malaking grupo ng mga tao, o "cohort," ang pinakakatulad ng iyong kamakailang aktibidad sa pag-browse. Makakapili ang mga advertiser ng mga ad para sa grupo at pinapanatiling pribado sa iyong device ang aktibidad mo sa pag-browse. Ina-update ang iyong grupo araw-araw.}one{Kapag naka-on ang kontrol na ito at aktibo ang status, tinutukoy ng Chrome kung aling malaking grupo ng mga tao, o "cohort," ang pinakakatulad ng iyong kamakailang aktibidad sa pag-browse. Makakapili ang mga advertiser ng mga ad para sa grupo at pinapanatiling pribado sa iyong device ang aktibidad mo sa pag-browse. Ina-update ang iyong grupo kada {NUM_DAYS} araw.}other{Kapag naka-on ang kontrol na ito at aktibo ang status, tinutukoy ng Chrome kung aling malaking grupo ng mga tao, o "cohort," ang pinakakatulad ng iyong kamakailang aktibidad sa pag-browse. Makakapili ang mga advertiser ng mga ad para sa grupo at pinapanatiling pribado sa iyong device ang aktibidad mo sa pag-browse. Ina-update ang iyong grupo kada {NUM_DAYS} na araw.}}</translation> +<translation id="2056658168519009885">Puwedeng humingi ang mga site ng impormasyon mula sa Chrome na makakatulong na i-personalize ang mga ad na nakikita mo.</translation> <translation id="2059202684901022309">22 x 34 in</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 suhestyon}one{# suhestyon}other{# na suhestyon}}</translation> <translation id="2066915425250589881">hilinging i-delete</translation> @@ -509,6 +517,7 @@ <translation id="2185836064961771414">American football</translation> <translation id="2187317261103489799">Tukuyin (default)</translation> <translation id="2188375229972301266">Multiple punch bottom</translation> +<translation id="2197398642355049178">Ang iyong mga paksa</translation> <translation id="219906046732893612">Pagpapaganda ng bahay</translation> <translation id="2202020181578195191">Maglagay ng wastong taon ng pag-expire</translation> <translation id="2202627062836089804">likod ng iyong card</translation> @@ -671,6 +680,7 @@ <translation id="262745152991669301">Puwedeng hilinging kumonekta sa mga USB device</translation> <translation id="2629325967560697240">Para makuha ang pinakamataas na antas ng seguridad ng Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />i-on ang pinahusay na proteksyon<ph name="END_ENHANCED_PROTECTION_LINK" /></translation> <translation id="2634124572758952069">Hindi makita ang IP address ng server ng <ph name="HOST_NAME" />.</translation> +<translation id="2639227409413857192">Tinutukoy ng site na ito ang mga bagay na gusto mo at pagkatapos ay nagmumungkahi ito ng mga ad sa iba pang site. Kinukuha rin ng site na ito ang iyong mga paksa ng ad mula sa Chrome para magpakita pa sa iyo ng mga may kaugnayang ad.</translation> <translation id="2639739919103226564">Katayuan:</translation> <translation id="2643134278432436513">Pangangalaga sa buhok</translation> <translation id="2647852283046201479">Mga strategy game</translation> @@ -812,6 +822,7 @@ <translation id="301521992641321250">Awtomatikong na-block</translation> <translation id="3016780570757425217">Alamin ang iyong lokasyon</translation> <translation id="3017086357773116182"><ph name="REMOVE_SUGGESTION_SUFFIX" />, pindutin ang Tab at pagkatapos ay ang Enter para Alisin ang Suhestyon.</translation> +<translation id="3023165109041533893">Nakakatulong ang mga ad na iminumungkahi ng site na protektahan ang iyong pagkakakilanlan at history ng pag-browse habang nagbibigay-daan sa mga site na magpakita sa iyo ng mga may kaugnayang ad. Batay sa iyong aktibidad, puwedeng magmungkahi ang site na binisita mo ng mga nauugnay na ad habang patuloy kang nagba-browse. Puwede mong tingnan ang listahan ng mga site na ito at i-block ang mga site na ayaw mo sa mga setting.</translation> <translation id="3024663005179499861">Maling uri ng patakaran</translation> <translation id="3029752078111257850">Balita sa buong mundo</translation> <translation id="3037177537145227281">Sinusubaybayan ang presyo</translation> @@ -823,6 +834,7 @@ <translation id="306573536155379004">Nagsimula na ang laro.</translation> <translation id="3068991664510324412">Mga computer at video Game</translation> <translation id="3080254622891793721">Graphic</translation> +<translation id="3081538120861307764">Para sukatin ang performance ng ad, may mga limitadong uri ng data na shine-share sa pagitan ng mga site, tulad ng oras kung kailan ipinakita sa iyo ang ad.</translation> <translation id="3082007635241601060">Hayaan ang Google na gamitin ang iyong mga cart para maghanap ng mga naka-personalize na diskwento kapag available ang mga ito</translation> <translation id="3086579638707268289">Sinusubaybayan ang iyong aktibidad sa web</translation> <translation id="3087734570205094154">Sa ilalim</translation> @@ -902,6 +914,7 @@ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para gumawa ng bagong event sa Google Calendar nang mabilis</translation> <translation id="3261488570342242926">Matuto pa tungkol sa mga virtual card</translation> <translation id="3264837738038045344">Button na Pamahalaan ang mga setting ng Chrome, pindutin ang Enter para bisitahin ang iyong mga setting ng Chrome</translation> +<translation id="3266367459139339908">Maglulunsad kami ng mga bagong paraan para limitahan ang mga bagay na puwedeng malaman ng mga site tungkol sa iyo kapag nagpapakita sila sa iyo ng mga naka-personalize na ad, halimbawa:</translation> <translation id="3266793032086590337">Value (hindi tumutugma)</translation> <translation id="3266972086368072861">{NUM_COOKIES,plural, =0{Walang naka-block na site, kabilang ang mga kaugnay na site}=1{1 site ang naka-block, kabilang ang mga kaugnay na site}one{# site ang naka-block, kabilang ang mga kaugnay na site}other{# na site ang naka-block, kabilang ang mga kaugnay na site}}</translation> <translation id="3268451620468152448">Mga Bukas na Tab</translation> @@ -933,6 +946,7 @@ <translation id="3339440062908617027">Pagtakbo at paglakad</translation> <translation id="3339446062576134663">Cloud (Ash)</translation> <translation id="3340978935015468852">mga setting</translation> +<translation id="3342018947887487892">Sa ibang pagkakataon, puwedeng hilingin ng site na binibisita mo ang impormasyong ito — ang iyong mga paksa ng ad o mga ad na iminungkahi ng mga site na binisita mo.</translation> <translation id="3342366525167526994">Sining sa katawan</translation> <translation id="3345782426586609320">Mga Mata</translation> <translation id="3349952286488694786">SRA2</translation> @@ -1060,6 +1074,7 @@ <translation id="3634530185120165534">Tray 5</translation> <translation id="3634567936866541746">Kakalagay mo lang ng iyong password sa isang mapanlinang na site. Para ma-secure ang iyong mga account, inirerekomenda ng Chrome na suriin mo ang yong mga na-save na password.</translation> <translation id="3642638418806704195">Application:</translation> +<translation id="3646643500201740985">Pagtukoy sa husay ng performance ng ad</translation> <translation id="3647286794400715637">Ang bawat entry ng string ng mga url ay dapat na maglaman ng 1 hanggang 2 URL.</translation> <translation id="3650584904733503804">Matagumpay ang pagpapatunay</translation> <translation id="3653033846669030038">Mga theme park</translation> @@ -1077,6 +1092,7 @@ <translation id="3678342917559046352">Invalid na Extension: Inaasahang isa sa mga sumusunod na form ang value: <extension_id> o <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Buksan ang page sa bagong Incognito window (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Impormasyon sa certificate</translation> +<translation id="3681421644246505351">Itinatala ng Chrome ang mga kinaiinteresang paksa batay sa iyong kamakailang history ng pag-browse.</translation> <translation id="3693327506115126094">Piliin kung paano mo ive-verify na ikaw ito</translation> <translation id="3701427423622901115">Tinanggap ang pag-reset.</translation> <translation id="3704162925118123524">Ang network na ginagamit mo ay maaaring humiling sa iyo na bisitahin ang page ng pag-login nito.</translation> @@ -1161,6 +1177,7 @@ <translation id="3901925938762663762">Na-expire na ang card</translation> <translation id="3906954721959377182">Tablet</translation> <translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation> +<translation id="3911401144270344103">Puwede kang magbago ng isip anumang oras sa mga setting ng Chrome</translation> <translation id="3921869355029467742">Ilagay ang iyong panseguridad na code</translation> <translation id="3927932062596804919">Tanggihan</translation> <translation id="393316646445601645">Internet at telecom</translation> @@ -1188,6 +1205,7 @@ <translation id="3987940399970879459">Wala pang 1 MB</translation> <translation id="3990250421422698716">Jog offset</translation> <translation id="3992684624889376114">Tungkol sa page na ito</translation> +<translation id="399952081411886534">Iba pang feature na ginagawang mas pribado ang mga ad</translation> <translation id="4006465311664329701">Mga Paraan ng Pagbabayad, Alok, at Address na Gumagamit ng Google Pay</translation> <translation id="4009243425692662128">Ipapadala ang content ng mga page na ipi-print mo sa Google Cloud o mga third party para sa pagsusuri. Halimbawa, posible itong i-scan para sa sensitibong data.</translation> <translation id="4010758435855888356">Bigyan ng access sa storage?</translation> @@ -1196,6 +1214,7 @@ <translation id="4023431997072828269">Dahil isinusumite ang form na ito gamit ang isang koneksyong hindi secure, makikita ng iba ang iyong impormasyon.</translation> <translation id="4025913568718019429">Button na Pamahalaan ang mga setting ng Privacy ng Google, pindutin ang Enter para bisitahin ang mga setting ng privacy ng iyong Google Account</translation> <translation id="4030383055268325496">&I-undo ang pagdagdag</translation> +<translation id="4030545038933060179">Kapag naka-on, may lalabas ditong listahan ng mga paksa batay sa iyong kamakailang history ng pag-browse</translation> <translation id="4031179711345676612">Pinapayagan ang mikropono</translation> <translation id="4040350669425716613">Mga kolehiyo at unibersidad</translation> <translation id="4047351652147966654">18 x 24 in</translation> @@ -1205,6 +1224,7 @@ <translation id="4063924980214801036">Gamitin ang pag-unlock ng device para kumpirmahin nang mas mabilis ang mga card</translation> <translation id="4067098466788473230">Mga study grant at scholarship</translation> <translation id="4067947977115446013">Magdagdag ng Wastong Address</translation> +<translation id="4070790659619547722">Sa pagsukat ng ad, may mga limitadong uri ng data na shine-share sa pagitan ng mga site para sukatin ang performance ng kanilang mga ad, tulad ng oras kung kailan ipinakita sa iyo ang ad.</translation> <translation id="4072193657607981494">Nilo-load ang mga patakaran</translation> <translation id="4072486802667267160">Nagkaroon ng error sa pagproseso ng iyong order. Pakisubukang muli.</translation> <translation id="4073376909608563327">Hindi magamit ang pag-unlock ng device</translation> @@ -1257,11 +1277,13 @@ <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> pang item}one{<ph name="ITEM_COUNT" /> pang item}other{<ph name="ITEM_COUNT" /> pang item}}</translation> <translation id="4176463684765177261">Hindi pinapagana</translation> <translation id="4176535426287761656">Mga timeshare at bakasyunang ari-arian</translation> +<translation id="4177501066905053472">Mga paksa ng ad</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> <translation id="4186035307311647330">Huwag subaybayan ang presyo</translation> <translation id="4194250254487269611">Hindi mase-save ang iyong card sa ngayon</translation> <translation id="4195643157523330669">Buksan sa bagong tab</translation> <translation id="4196861286325780578">&Gawing muli ang paglilipat</translation> +<translation id="4202218894997543208">Mga paksang na-block mo</translation> <translation id="4202554117186904723">Ikalimang Rolyo</translation> <translation id="4203769790323223880">Hindi pinapayagan ang camera</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Suriin ang mga configuration ng firewall at antivirus<ph name="END_LINK" /></translation> @@ -1312,6 +1334,7 @@ <translation id="4282346679996504092">Na-off ang mga alerto para sa produktong ito at inalis ang bookmark</translation> <translation id="4285498937028063278">I-unpin</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Na-save na ang card na ito sa iyong Google Account}one{Na-save na ang mga card na ito sa iyong Google Account}other{Na-save na ang mga card na ito sa iyong Google Account}}</translation> +<translation id="4287495839370498922">Pinaigting na privacy sa ad sa Chrome</translation> <translation id="4287885627794386150">Kwalipikado para sa trial pero hindi aktibo</translation> <translation id="4297502707443874121">Thumbnail para sa page <ph name="THUMBNAIL_PAGE" /></translation> <translation id="4298000214066716287">Pamumuhunan</translation> @@ -1354,6 +1377,7 @@ <translation id="4363222835916186793">Na-off ang mga alerto para sa produktong ito</translation> <translation id="437040971055499437">Nagkaroon ng event tungkol sa seguridad</translation> <translation id="4372948949327679948">Inaasahang <ph name="VALUE_TYPE" /> na halaga.</translation> +<translation id="4375864595697821259">Magdagdag ng item pabalik kung gusto mo ito sa pool ng mga paksa kung saan puwedeng pumili ang Chrome kapag tinatantya ang iyong mga interes</translation> <translation id="4377125064752653719">Tinangka mong maabot ang <ph name="DOMAIN" />, subalit ang certificate na ipinakita ng server ay binawi ng nagbigay nito. Nangangahulugan ito na ang mga kredensyal sa seguridad na ipinakita ng server ay talagang hindi dapat pagkatiwalaan. Maaaring nakikipag-ugnay ka sa isang nang-aatake.</translation> <translation id="4378154925671717803">Telepono</translation> <translation id="4384395682990721132">A4x3</translation> @@ -1392,6 +1416,7 @@ <translation id="449126573531210296">I-encrypt ang mga naka-sync na password gamit ang iyong Google Account</translation> <translation id="4492519888999857993">Naka-disable bilang default ang mga feature na ito. Hindi magiging available ang mga ito sa mga bersyon ng Chrome sa hinaharap.</translation> <translation id="4493480324863638523">Di-wastong URL. Dapat ay isang URL na may karaniwang scheme, hal. http://example.com o https://example.com.</translation> +<translation id="4494323206460475851">Magagawa mong tingnan ang mga paksa ng ad sa mga setting at i-block ang mga paksa na ayaw mong i-share sa mga site. Awtomatiko ring dine-delete ng Chrome ang mga paksa ng ad na mahigit 4 na linggo na.</translation> <translation id="4500587658229086076">hindi secure na content</translation> <translation id="4506176782989081258">Error sa pagpapatunay: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Makipag-ugnayan sa admin ng system</translation> @@ -1405,6 +1430,7 @@ <translation id="4521916730539354575">Kaliwang Tray</translation> <translation id="4522570452068850558">Mga Detalye</translation> <translation id="4524138615196389145">Kumpirmahin nang mas mabilis ang iyong mga card gamit ang WebAuthn mula ngayon</translation> +<translation id="45243788195988825">I-block ang <ph name="TOPIC" /></translation> <translation id="4524805452350978254">Pamahalaan ang mga card</translation> <translation id="4526465106919207193">Mga tao at lipunan</translation> <translation id="4530347922939905757">Text message</translation> @@ -1417,6 +1443,7 @@ <translation id="4558551763791394412">Subukang i-disable ang iyong mga extension.</translation> <translation id="4566017918361049074">Sa labas</translation> <translation id="4567686777917670400">Puwedeng baguhin ng iyong administrator ang setup ng browser mo sa remote na paraan. Puwede ring pamahalaan sa labas ng Chromium ang aktibidad sa device na ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation> +<translation id="4568329205873177285">Sumuri ng listahan ng cookies at data ng site sa bagong window</translation> <translation id="457875822857220463">Paghahatid</translation> <translation id="4582204425268416675">Alisin ang card</translation> <translation id="4582595824823167856">Makatanggap ng text message</translation> @@ -1454,6 +1481,7 @@ <translation id="4663373278480897665">Pinapayagan ang camera</translation> <translation id="4666114623408286498">Mga pharmaceutical at biotech</translation> <translation id="4668929960204016307">,</translation> +<translation id="4669856024297417878">Nagtatala ang Chrome ng mga kinaiinteresang paksa batay sa iyong history ng pag-browse mula sa nakalipas na ilang linggo.</translation> <translation id="4670064810192446073">Virtual reality</translation> <translation id="4671339777629075741">Envelope DL</translation> <translation id="4673460618347856347">Dino game, maglaro</translation> @@ -1462,6 +1490,7 @@ <translation id="467809019005607715">Google Slides</translation> <translation id="4682496302933121474">Isalin ang page?</translation> <translation id="468314109939257734">Tingnan ang iyong virtual na numero ng card</translation> +<translation id="4687718960473379118">Mga ad na iminumungkahi ng site</translation> <translation id="4692623383562244444">Mga search engine</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> <translation id="4702504834785592287">Gilid</translation> @@ -1743,6 +1772,7 @@ <translation id="5337569431717511221">Itakda ang Chrome bilang default na button ng browser, pindutin ang Enter para itakda ang Chrome bilang default na browser ng system</translation> <translation id="5340250774223869109">Naka-block ang application</translation> <translation id="534295439873310000">Mga NFC device</translation> +<translation id="5344522958567249764">Pamahalaan ang privacy sa ad</translation> <translation id="5344579389779391559">Maaari kang singilin ng pera ng page na ito</translation> <translation id="5347645913823149105">Button na I-customize ang mga font sa Chrome, pindutin ang Enter para i-customize ang mga laki ng font at typeface sa Chrome</translation> <translation id="5355557959165512791">Hindi mo maaaring bisitahin ang <ph name="SITE" /> sa ngayon dahil binawi na ang certificate nito. Karaniwang pansamantala lang ang mga error at pag-atake sa network, kaya malamang na gagana ang page na ito sa ibang pagkakataon.</translation> @@ -1841,6 +1871,7 @@ <translation id="5598944008576757369">Pumili ng Paraan ng Pagbabayad</translation> <translation id="560412284261940334">Hindi sinusuportahan ang pamamahala</translation> <translation id="5605670050355397069">Ledger</translation> +<translation id="5606444889871204172"><ph name="BEGIN_BOLD" />Paano mo mapapamahalaan ang iyong data:<ph name="END_BOLD" /> Awtomatikong dine-delete ng Chrome ang mga site na mahigit 4 na linggo na. Posibleng lumabas ulit sa listahan ang site na binisita mo ulit. Puwede ka ring mag-block ng site sa pagmumungkahi ng mga ad para sa iyo at i-off ang mga ad na iminumungkahi ng site anumang oras sa mga setting ng Chrome.</translation> <translation id="5610142619324316209">Suriin ang koneksyon</translation> <translation id="5610807607761827392">Maaari mong pamahalaan ang mga card at address sa <ph name="BEGIN_LINK" />Mga Setting<ph name="END_LINK" />.</translation> <translation id="561165882404867731">Isalin ang page na ito gamit ang Google Translate</translation> @@ -1979,6 +2010,7 @@ <translation id="598637245381783098">Hindi mabuksan ang app sa pagbabayad</translation> <translation id="5989320800837274978">Hindi tunukoy ang alinman sa mga hindi nababagong proxy server o isang .pac script URL.</translation> <translation id="5992691462791905444">Engineering Z-fold</translation> +<translation id="5992805036496113940">Tingnan ang impormasyong ginamit para magpakita sa iyo ng mga ad</translation> <translation id="5995727681868049093">Pamahalaan ang iyong impormasyon, privacy, at seguridad sa iyong Google Account</translation> <translation id="5997247540087773573">Nakita sa isang data breach ang password na kakagamit mo lang. Para ma-secure ang iyong mga account, inirerekomenda ng Google Password Manager na palitan na ito ngayon at tingnan ang mga naka-save mong password.</translation> <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> (na) resulta para sa '<ph name="SEARCH_TEXT" />'</translation> @@ -2015,6 +2047,7 @@ <translation id="6051221802930200923">Hindi mo maaaring bisitahin ang <ph name="SITE" /> sa ngayon dahil gumagamit ng pag-pin ng certificate ang website. Karaniwang pansamantala lang ang mga error at pag-atake sa network, kaya malamang na gagana ang page na ito sa ibang pagkakataon.</translation> <translation id="6051898664905071243">Bilang ng page:</translation> <translation id="6052284303005792909">•</translation> +<translation id="6053735090575989697">Matuto pa tungkol sa kung paano pinoprotektahan ng Google ang iyong data sa aming Patakaran sa Privacy.</translation> <translation id="6055888660316801977">Sheet na walang tumutugmang kredensyal sa kredensyal sa secure na pagbabayad</translation> <translation id="6058977677006700226">Gamitin ang iyong mga card sa lahat ng device mo?</translation> <translation id="6059925163896151826">Mga USB device</translation> @@ -2063,6 +2096,7 @@ <translation id="6196640612572343990">I-block ang mga third-party na cookie</translation> <translation id="6197648101609735209">89 x 89 mm</translation> <translation id="6203231073485539293">Suriin ang iyong koneksyon sa Internet</translation> +<translation id="6205314730813004066">Privacy sa ad</translation> <translation id="6212314149070368045">US Fanfold</translation> <translation id="6218753634732582820">Gusto mo bang alisin ang address sa Chromium?</translation> <translation id="622039917539443112">Parallel fold</translation> @@ -2153,6 +2187,7 @@ <translation id="6429267199680088961">A4 Tab</translation> <translation id="643051589346665201">Palitan ang password sa Google</translation> <translation id="6431119592588449664">Na-upload na ang ulat</translation> +<translation id="6432297414176614592">Higit pa tungkol sa mga paksa ng ad</translation> <translation id="6433490469411711332">I-edit ang impormasyon sa pakikipag-ugnayan</translation> <translation id="6433595998831338502">Tumangging kumonekta ang <ph name="HOST_NAME" />.</translation> <translation id="6433797564277305076">Kumpirmahin nang mas mabilis ang iyong mga card sa pamamagitan ng paggamit sa pag-unlock ng device mula ngayon</translation> @@ -2173,6 +2208,7 @@ <translation id="646793340882508547">Mga larong pakikipagsapalaran</translation> <translation id="6468485451923838994">Mga Font</translation> <translation id="647261751007945333">Mga patakaran sa device</translation> +<translation id="6475672344094591109">Puwedeng humingi ang mga site na binibisita mo ng impormasyon mula sa Chrome na makakatulong sa kanila na sukatin ang performance ng kanilang mga ad. Pinoprotektahan ng Chrome ang iyong privacy sa pamamagitan ng paglilimita sa impormasyong puwedeng i-share ng mga site sa isa't isa.</translation> <translation id="6476284679642588870">Pamahalaan ang mga paraan ng pagbabayad</translation> <translation id="6486200200930923183">Mga pelikulang dokumentaryo</translation> <translation id="6489534406876378309">Simulang mag-upload ng mga pag-crash</translation> @@ -2276,6 +2312,7 @@ <translation id="6786145470008421571">Envelope 6 x 9 in</translation> <translation id="67862343314499040">Violet</translation> <translation id="6786747875388722282">Mga Extension</translation> +<translation id="6787094689637422836">Maglulunsad kami ng mga bagong feature sa privacy na magbibigay sa iyo ng higit pang opsyon sa mga ad na nakikita mo.</translation> <translation id="678982761784843853">Mga pinoprotektahang content ID</translation> <translation id="6790428901817661496">I-play</translation> <translation id="679355240208270552">Binalewala dahil hindi na-enable ng patakaran ang default na paghahanap.</translation> @@ -2314,6 +2351,7 @@ <translation id="6888584790432772780">Pinasimple ng Chrome ang page na ito para mas madali itong mabasa. Nakuha ng Chrome ang orihinal na page sa pamamagitan ng hindi secure na koneksyon.</translation> <translation id="6890443033788248019">Payagan ang lokasyon?</translation> <translation id="6890531741535756070">Pinili mong mag-verify gamit ang <ph name="DEVICE_LABEL" /> sa mga website na gumagamit ng <ph name="PROVIDER_ORIGIN" />. Posibleng nag-store ang provider na ito ng impormasyon tungkol sa iyong paraan ng pagbabayad, na puwede mong <ph name="BEGIN_LINK" />hilinging i-delete<ph name="END_LINK" />.</translation> +<translation id="6890956352250146925">Mga opsyon para sa cookies at data ng site</translation> <translation id="6891596781022320156">Hindi sinusuportahan ang antas ng patakaran.</translation> <translation id="6895330447102777224">Nakumpirma na ang iyong card</translation> <translation id="6896758677409633944">Copy</translation> @@ -2503,6 +2541,7 @@ <translation id="7365849542400970216">Alam mo ba ang iyong paggamit ng device?</translation> <translation id="7366117520888504990">198 x 275 mm</translation> <translation id="7366362069757178916">Mga tagapangasiwa ng pagbabayad</translation> +<translation id="7367985555340314048">Ang mga kinaiinteresang paksa ay batay sa iyong history ng pag-browse at ginagamit ng mga site para magpakita sa iyo ng mga naka-personalize na ad</translation> <translation id="7372973238305370288">resulta ng paghahanap</translation> <translation id="7374461526650987610">Mga tagapangasiwa ng protocol</translation> <translation id="7374733840632556089">Nangyayari ang problemang ito dahil sa isang certificate na na-install mo o ng ibang tao sa iyong device. Kilala ang certificate sa pagsubaybay at pag-intercept ng mga network, at hindi ito pinagkakatiwalaan ng Chrome. Bagama't mayroong mga lehitimong kaso ng pagsubaybay, gaya sa network sa paaralan o kumpanya, gustong tiyakin ng Chrome na alam mong nangyayari ito, kahit na hindi mo ito mapipigilan. Posibleng mangyari ang pagsubaybay sa anumang browser o application na nag-a-access ng web.</translation> @@ -2576,6 +2615,7 @@ <translation id="7507075214339298899">Envelope #9</translation> <translation id="7508255263130623398">Walang laman ang ibinalik na device id ng patakaran o hindi ito tumutugma sa kasalukuyang device id</translation> <translation id="7508870219247277067">Avocado Green</translation> +<translation id="7510225383966760306"><ph name="BEGIN_BOLD" />Paano ginagamit ng mga site ang data na ito:<ph name="END_BOLD" /> Magagawa ng mga site na mag-store ng impormasyon sa Chrome tungkol sa mga bagay na gusto mo. Halimbawa, kung bibisita ka sa isang site tungkol sa marathon training, posibleng tukuyin ng site na interesado ka sa running shoes. Sa ibang pagkakataon, kung bibisita ka sa ibang site, puwedeng magpakita sa iyo ang site na iyon ng ad para sa running shoes na iminungkahi ng unang site.</translation> <translation id="7510269639068718544">Mga Pusa</translation> <translation id="7511955381719512146">Maaaring hilingin ng Wi-Fi na ginagamit mo na bisitahin mo ang <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation> <translation id="7512685745044087310">Hindi puwedeng itakda sa "True" at maging mandatoryo ang patakarang ito, kung kaya naman, ginawa itong inirerekomenda.</translation> @@ -2677,6 +2717,7 @@ <translation id="7701040980221191251">Wala</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Magpatuloy sa <ph name="SITE" /> (hindi ligtas)<ph name="END_LINK" /></translation> <translation id="770607638235926858">Skiing at snowboarding</translation> +<translation id="7706689436519265630">Ipinapadala sa Google Cloud o mga third party para sa pagsusuri ang mga file na kinokopya o inililipat mo. Halimbawa, posibleng i-scan ang mga ito para sa sensitibong data o malware at posibleng i-store batay sa mga patakaran ng kumpanya.</translation> <translation id="7709911732293795808">Insurance</translation> <translation id="7714464543167945231">Certificate</translation> <translation id="7716147886133743102">Na-block ng iyong administrator</translation> @@ -2704,11 +2745,13 @@ <translation id="7766518757692125295">Skirt</translation> <translation id="7773005668374414287">Parehong pagkakasunod-sunod nang nakatihaya</translation> <translation id="7785790577395078482">ang tablet na ito</translation> +<translation id="7790488044432570133">Puwedeng humingi ang mga site na binibisita mo ng impormasyon mula sa Chrome para matulungan silang sukatin ang performance ng kanilang mga ad. Pinapayagan ng Chrome ang mga site na mangolekta ng mga limitadong uri ng data, tulad ng oras kung kailan ipinakita sa iyo ang ad.</translation> <translation id="7791011319128895129">Hindi pa na-release</translation> <translation id="7791196057686275387">Bale</translation> <translation id="7791543448312431591">Idagdag</translation> <translation id="7798389633136518089">Binalewala dahil hindi itinakda ng isang cloud source ang patakaran.</translation> <translation id="7800304661137206267">Na-encrypt ang koneksyon gamit ang <ph name="CIPHER" />, kasama ang <ph name="MAC" /> para sa pagpapatunay ng mensahe at <ph name="KX" /> bilang mekanismo ng pangunahing pagpapalit.</translation> +<translation id="7800977246388195491">Itinatala ng Chrome ang mga kinaiinteresang paksa batay sa iyong kamakailang history ng pag-browse. Bukod pa rito, puwedeng matukoy ng mga site na binibisita mo ang gusto mo. Sa ibang pagkakataon, puwedeng hingin ng mga site ang impormasyong ito para magpakita sa iyo ng mga naka-personalize na ad. Puwede mong piliin kung aling mga paksa at site ang gagamitin para magpakita sa iyo ng mga ad.</translation> <translation id="7802523362929240268">Lehitimo ang site</translation> <translation id="7802989406998618639">Ilagay ang <ph name="NUMBER_OF_DIGITS" /> (na) digit na panseguridad na code sa <ph name="SIDE_OF_CARD" /> para ma-verify ng iyong bangko na ikaw ito</translation> <translation id="780301667611848630">Hindi salamat</translation> @@ -2723,6 +2766,7 @@ <translation id="7840103971441592723">Nagsimula na ang pag-screen capture</translation> <translation id="7844689747373518809">{COUNT,plural, =0{Wala}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# (na) app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# (na) app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation> <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation> +<translation id="7857116075376571629">Sa ibang pagkakataon, puwedeng humingi ang site na binibisita mo sa Chrome ng iyong mga paksa para ma-personalize ang mga ad na nakikita mo. Nagshe-share ang Chrome ng hanggang 3 paksa habang pinoprotektahan ang iyong history ng pag-browse at pagkakakilanlan.</translation> <translation id="7862185352068345852">Umalis sa site?</translation> <translation id="7865448901209910068">Pinakamabilis</translation> <translation id="7871445724586827387">Palitan ang password ng iyong Google Account</translation> @@ -2787,6 +2831,7 @@ <translation id="8019861005170389898"><ph name="TRADITIONAL_TEXT" /> (<ph name="ADDITIONAL_TEXT" />)</translation> <translation id="8023231537967344568"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, Pindutin ang tab at pagkatapos ay Enter para itakda ang Chrome bilang default na browser ng system</translation> <translation id="8025119109950072390">Maaari kang linlangin ng mga attacker sa site na ito na gumawa ng mga bagay na mapanganib tulad ng pag-i-install ng software o pagbubunyag ng iyong personal na impormasyon (halimbawa, mga password, numero ng telepono o credit card).</translation> +<translation id="8026126421313327427">Awtomatikong nagde-delete ang Chrome ng mga paksang mas matagal sa 4 na linggo. Habang patuloy kang nagba-browse, posibleng may paksang lumabas ulit sa listahan. O puwede kang mag-block ng mga paksang ayaw mong i-share ng Chrome sa mga site.</translation> <translation id="8026334261755873520">I-clear ang data sa pag-browse</translation> <translation id="8027077570865220386">Tray 15</translation> <translation id="8028698320761417183"><ph name="CREATE_GOOGLE_FORM_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para gumawa ng bagong form sa Google Forms nang mabilis</translation> @@ -2990,6 +3035,7 @@ <translation id="8533619373899488139">Bisitahin ang <strong>chrome://policy</strong> para makita ang listahan ng mga naka-block na URL at ang iba pang patakarang ipinapatupad ng iyong system administrator.</translation> <translation id="8539500321752640291">Payagan ang 2 pahintulot?</translation> <translation id="8541158209346794904">Bluetooth device</translation> +<translation id="8541410041357371550">Kinukuha ng site na ito ang iyong mga paksa ng ad mula sa Chrome para magpakita pa sa iyo ng mga may kaugnayang ad</translation> <translation id="8542014550340843547">Triple staple bottom</translation> <translation id="8542617028204211143">SRA0</translation> <translation id="8543181531796978784">Maaari kang <ph name="BEGIN_ERROR_LINK" />mag-ulat ng problema sa pagtukoy<ph name="END_ERROR_LINK" /> o, kung nauunawaan mo ang mga panganib sa iyong seguridad, <ph name="BEGIN_LINK" />bisitahin ang hindi ligtas na site na ito<ph name="END_LINK" />.</translation> @@ -3008,7 +3054,9 @@ <translation id="8589998999637048520">Pinakamahusay na kalidad</translation> <translation id="8600271352425265729">Sa pagkakataong ito lang</translation> <translation id="860043288473659153">Pangalan ng cardholder</translation> +<translation id="8601027005147870853"><ph name="BEGIN_BOLD" />Anong data ang ginagamit:<ph name="END_BOLD" /> Iyong aktibidad sa site na binisita mo gamit ang Chrome sa device na ito.</translation> <translation id="8606726445206553943">Gamitin ang iyong mga MIDI device</translation> +<translation id="8606988009912891950">Tinutulungan ng mga paksa ng ad ang mga site na magpakita sa iyo ng mga may kaugnayang ad habang pinoprotektahan ang pagkakakilanlan at history ng pag-browse mo. Puwedeng itala ng Chrome ang mga kinaiinteresang paksa batay sa iyong kamakailang history ng pag-browse. Sa ibang pagkakataon, puwedeng humingi sa Chrome ang site na binibisita mo ng mga nauugnay na paksa para ma-personalize ang mga ad na nakikita mo.</translation> <translation id="8617269623452051934">iyong paggamit ng device</translation> <translation id="861775596732816396">Laki 4</translation> <translation id="8620276786115098679">Envelope Kaku 7</translation> @@ -3053,6 +3101,7 @@ <translation id="8730621377337864115">Tapos na</translation> <translation id="8731268612289859741">Panseguridad na code</translation> <translation id="8731544501227493793">Button na Pamahalaan ang mga password, pindutin ang Enter para tingnan at pamahalaan ang mga password mo sa mga setting ng Chrome</translation> +<translation id="8733764070897080460">Puwede kang mag-block ng mga paksang ayaw mong i-share sa mga site. Awtomatiko ring dine-delete ng Chrome ang iyong mga paksang mas matagal sa 4 na linggo. Matuto pa</translation> <translation id="8734529307927223492">Pinapamahalaan ng <ph name="MANAGER" /> ang iyong <ph name="DEVICE_TYPE" /></translation> <translation id="8736059027199600831">30 x 40 in</translation> <translation id="8737134861345396036"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para magbukas ng bagong Incognito window para makapag-browse nang pribado</translation> @@ -3084,6 +3133,7 @@ <translation id="8805819170075074995">Listahan ng entry na "<ph name="LANGUAGE_ID" />": Binalewala ang entry dahil kasama rin ito sa patakarang SpellcheckLanguage.</translation> <translation id="8806285662264631610">Mga produktong panligo at pangkatawan</translation> <translation id="8807160976559152894">Paikliin pagkatapos ng bawat page</translation> +<translation id="8809203544698246977">Lalabas dito ang mga na-block na paksa</translation> <translation id="8813277370772331957">Ipaalala sa akin sa ibang pagkakataon</translation> <translation id="8814707942599948500">Envelope C8</translation> <translation id="8816395686387277279"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para i-update ang Chrome mula sa iyong mga setting ng Chrome</translation> @@ -3114,6 +3164,7 @@ <translation id="8876033571432926051">Mga casual na laro</translation> <translation id="8877780815363510165">Pangingisda</translation> <translation id="8884537526797090108">Hindi puwedeng mag-record ng kumpidensyal na content</translation> +<translation id="8890798179125483517">Awtomatikong dine-delete ng Chrome ang mga paksa at site na nagmumungkahi ng mga ad na mahigit 4 na linggo na. O puwede mong i-block ang mga partikular na paksa at site na ayaw mo.</translation> <translation id="8891727572606052622">Di-wastong mode ng proxy.</translation> <translation id="8894794286471754040">Long edge muna</translation> <translation id="8897428486789851669">Paglangoy</translation> @@ -3201,6 +3252,7 @@ <translation id="91108059142052966">Dini-disable ng patakaran ng administrator ang pagbabahagi ng screen sa <ph name="APPLICATION_TITLE" /> kapag may nakikitang kumpidensyal na content</translation> <translation id="9114524666733003316">Kinukumpirma ang card...</translation> <translation id="9114581008513152754">Hindi pinapamahalaan ng kumpanya o iba pang organisasyon ang browser na ito. Posibleng pinapamahalaan sa labas ng Chrome ang aktibidad sa device na ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation> +<translation id="9116548361133462832">Higit pa tungkol sa mga ad sa Chrome</translation> <translation id="9117930699067497412">Bago</translation> <translation id="9118692854637641831"><ph name="HISTORY_CLUSTERS_SEARCH_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para ipagpatuloy ang iyong paglalakbay para makakita ng nauugnay na aktibidad sa history mo sa Chrome</translation> <translation id="9119042192571987207">Na-upload</translation> @@ -3224,6 +3276,8 @@ <translation id="9155211586651734179">Naka-attach ang mga peripheral ng audio</translation> <translation id="9157595877708044936">Nagse-set up...</translation> <translation id="9164742147345933553">os://flags</translation> +<translation id="9165305804774426672">Puwede ring tukuyin ng mga site na binibisita mo ang mga gusto mo batay sa iyong aktibidad sa site. Halimbawa, kung bibisita ka sa isang site na nagtitinda ng long-distance running shoes, posibleng tukuyin ng site na interesado kang tumakbo sa mga marathon.</translation> +<translation id="9166851138617700776">Higit pa tungkol sa mga ad na iminungkahi ng site at pagsukat ng ad</translation> <translation id="9168814207360376865">Payagan ang mga site na tingnan kung may mga naka-save kang paraan ng pagbabayad</translation> <translation id="9169664750068251925">Palaging i-block sa site na ito</translation> <translation id="9169931577761441333">Idagdag ang <ph name="APP_NAME" /> sa Home screen</translation> @@ -3268,6 +3322,7 @@ <translation id="975560348586398090">{COUNT,plural, =0{Wala}=1{1 item}one{# item}other{# na item}}</translation> <translation id="976522784004777030">5 x 8 in</translation> <translation id="977502174772294970">Mga Kasalan</translation> +<translation id="979503328401807348">Higit pang kapaki-pakinabang na ad</translation> <translation id="981121421437150478">Offline</translation> <translation id="982885543310356857">Mga classic na sasakyan</translation> <translation id="984275831282074731">Mga paraan ng pagbabayad</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index f4110585..f89bfde 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -307,7 +307,7 @@ <translation id="1662550410081243962">Enregistrer et saisir les modes de paiement</translation> <translation id="1663943134801823270">Les cartes et les adresses proviennent de Chrome. Vous pouvez les gérer dans les <ph name="BEGIN_LINK" />paramètres<ph name="END_LINK" />.</translation> <translation id="1671391448414634642">Les pages en <ph name="SOURCE_LANGUAGE" /> seront désormais traduites en <ph name="TARGET_LANGUAGE" />.</translation> -<translation id="1674504678466460478"><ph name="SOURCE_LANGUAGE" /> à <ph name="TARGET_LANGUAGE" /></translation> +<translation id="1674504678466460478"><ph name="SOURCE_LANGUAGE" /> vers <ph name="TARGET_LANGUAGE" /></translation> <translation id="1682696192498422849">Bord court en premier</translation> <translation id="168693727862418163">La valeur de la règle n'a pas été validée par rapport à son schéma et sera ignorée.</translation> <translation id="168841957122794586">Le certificat du serveur contient une clé de chiffrement faible.</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 1555f8e..a2e27a7f 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">Sains</translation> <translation id="3875783148670536197">Lihat Caranya</translation> <translation id="3881478300875776315">Tampilkan lebih sedikit baris</translation> +<translation id="3883500545751229739">iklan mengganggu</translation> <translation id="3884278016824448484">Pengenal perangkat bertentangan</translation> <translation id="388632593194507180">Pemantauan Terdeteksi</translation> <translation id="3886948180919384617">Tempat kertas 3</translation> @@ -3112,6 +3113,7 @@ <translation id="8891727572606052622">Mode proxy tidak valid.</translation> <translation id="8894794286471754040">Tepi panjang lebih dulu</translation> <translation id="8897428486789851669">Renang</translation> +<translation id="8899807382908246773">Iklan mengganggu</translation> <translation id="8903921497873541725">Perbesar</translation> <translation id="890493561996401738">Hapus tombol Saran, tekan Enter untuk menghapus, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Akun Google</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index f08aee5..2b69f8c1 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">과학</translation> <translation id="3875783148670536197">방법 보기</translation> <translation id="3881478300875776315">자막 접기</translation> +<translation id="3883500545751229739">방해가 되는 광고</translation> <translation id="3884278016824448484">기기 식별자 충돌</translation> <translation id="388632593194507180">모니터링 감지됨</translation> <translation id="3886948180919384617">스태커 3</translation> @@ -3116,6 +3117,7 @@ <translation id="8891727572606052622">프록시 모드가 잘못되었습니다.</translation> <translation id="8894794286471754040">긴쪽 먼저</translation> <translation id="8897428486789851669">수영</translation> +<translation id="8899807382908246773">방해가 되는 광고</translation> <translation id="8903921497873541725">확대</translation> <translation id="890493561996401738">추천 삭제 버튼, Enter 키를 눌러 삭제, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google 계정</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index aef536e..8db99862 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -1157,6 +1157,7 @@ <translation id="3872834068356954457">Mokslas</translation> <translation id="3875783148670536197">Peržiūrėti, kaip tai padaryti</translation> <translation id="3881478300875776315">Rodyti mažiau eilučių</translation> +<translation id="3883500545751229739">nepageidaujami skelbimai</translation> <translation id="3884278016824448484">Nesuderinamas įrenginio identifikatorius</translation> <translation id="388632593194507180">Aptiktas stebėjimas</translation> <translation id="3886948180919384617">3 dėtuvė</translation> @@ -3135,6 +3136,7 @@ <translation id="8891727572606052622">Netinkamas įgaliotojo serverio režimas.</translation> <translation id="8894794286471754040">Pirmiau ilgasis kraštas</translation> <translation id="8897428486789851669">Plaukimas</translation> +<translation id="8899807382908246773">Nepageidaujami skelbimai</translation> <translation id="8903921497873541725">Artinti</translation> <translation id="890493561996401738">Pašalinkite pasiūlymo mygtuką, paspauskite „Enter“, kad pašalintumėte, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">„Google“ paskyra</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index aa6eb3a..fb4ee46 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">Zinātne</translation> <translation id="3875783148670536197">Parādīt, kā</translation> <translation id="3881478300875776315">Rādīt mazāk rindu</translation> +<translation id="3883500545751229739">traucējošas reklāmas</translation> <translation id="3884278016824448484">Ierīces identifikators rada konfliktu.</translation> <translation id="388632593194507180">Konstatēta pārraudzība</translation> <translation id="3886948180919384617">3. izvades vieta</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">Nederīgs starpniekservera režīms.</translation> <translation id="8894794286471754040">Vispirms garākā mala</translation> <translation id="8897428486789851669">Peldēšana</translation> +<translation id="8899807382908246773">Traucējošas reklāmas</translation> <translation id="8903921497873541725">Tuvināt</translation> <translation id="890493561996401738">Ieteikuma noņemšanas poga, nospiediet ievadīšanas taustiņu, lai noņemtu, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google konts</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index c6f96c8..82650bd 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">ശാസ്ത്രം</translation> <translation id="3875783148670536197">എങ്ങനെയെന്ന് എന്നെ കാണിക്കുക</translation> <translation id="3881478300875776315">കുറച്ച് വരികൾ മാത്രം കാണിക്കുക</translation> +<translation id="3883500545751229739">തടസ്സമുണ്ടാക്കുന്ന പരസ്യങ്ങൾ</translation> <translation id="3884278016824448484">വിരുദ്ധ ഉപകരണ ഐഡന്റിഫയർ</translation> <translation id="388632593194507180">നിരീക്ഷണം കണ്ടെത്തി</translation> <translation id="3886948180919384617">സ്റ്റാക്കർ 3</translation> @@ -3114,6 +3115,7 @@ <translation id="8891727572606052622">അസാധുവായ പ്രോക്സി മോഡ്</translation> <translation id="8894794286471754040">നീളമുള്ള അരിക് ആദ്യം</translation> <translation id="8897428486789851669">നീന്തൽ</translation> +<translation id="8899807382908246773">തടസ്സമുണ്ടാക്കുന്ന പരസ്യങ്ങൾ</translation> <translation id="8903921497873541725">സൂം ഇന് ചെയ്യുക</translation> <translation id="890493561996401738">നിർദ്ദേശ ബട്ടൺ നീക്കം ചെയ്യുക, നീക്കം ചെയ്യാൻ എന്റർ അമർത്തുക, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google അക്കൗണ്ട്</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 86b083f..cf451cb 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -1154,6 +1154,7 @@ <translation id="3872834068356954457">Шинжлэх ухаан</translation> <translation id="3875783148670536197">Надад хэрхэн хийхийг харуулна уу</translation> <translation id="3881478300875776315">Арай цөөн мөр харуулах</translation> +<translation id="3883500545751229739">төвөгтэй зар</translation> <translation id="3884278016824448484">Зөрчилдөөнтэй төхөөрөмж танигч</translation> <translation id="388632593194507180">Хяналтыг илрүүллээ</translation> <translation id="3886948180919384617">Гарах цаасыг зэрэгцүүлэх тавцан 3</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">Орлон ашиглах горим хүчингүй байна</translation> <translation id="8894794286471754040">Эхлээд урт зах</translation> <translation id="8897428486789851669">Усанд сэлэлт</translation> +<translation id="8899807382908246773">Төвөгтэй зар</translation> <translation id="8903921497873541725">Томруулж харах</translation> <translation id="890493561996401738">Зөвлөмж устгах товчлуур, устгахын тулд Enter дээр дарна уу, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google Бүртгэл</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 4336eee94..1cd614ec 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -1154,6 +1154,7 @@ <translation id="3872834068356954457">Sains</translation> <translation id="3875783148670536197">Tunjukkan Caranya</translation> <translation id="3881478300875776315">Tunjukkan kurang baris</translation> +<translation id="3883500545751229739">iklan mengganggu</translation> <translation id="3884278016824448484">Pengecam peranti bercanggah</translation> <translation id="388632593194507180">Pemantauan Dikesan</translation> <translation id="3886948180919384617">Petak 3</translation> @@ -3119,6 +3120,7 @@ <translation id="8891727572606052622">Mod proksi tidak sah.</translation> <translation id="8894794286471754040">Sisi panjang dahulu</translation> <translation id="8897428486789851669">Berenang</translation> +<translation id="8899807382908246773">Iklan mengganggu</translation> <translation id="8903921497873541725">Zum masuk</translation> <translation id="890493561996401738">Alih keluar butang Cadangan, tekan Enter untuk mengalih keluar, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Akaun Google</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index 5774323b..a363af58c 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">သိပွံ</translation> <translation id="3875783148670536197">လုပ်နည်း ပြရန်</translation> <translation id="3881478300875776315">စာကြောင်းလျှော့၍ပြရန်</translation> +<translation id="3883500545751229739">ကြားဖြတ်ကြော်ငြာများ</translation> <translation id="3884278016824448484">စက်ပစ္စည်း မည်သူမည်ဝါဖြစ်ကြောင်း အသိမှတ်ပြုသူ ရှုပ်ထွေးနေ</translation> <translation id="388632593194507180">စောင့်ကြည့်နေကြောင်း တွေ့ရှိထားသည်</translation> <translation id="3886948180919384617">စီထည့်သည့်ပုံး ၃</translation> @@ -3119,6 +3120,7 @@ <translation id="8891727572606052622">မမှန်ကန်သည့် ပရောက်စီမုဒ်။</translation> <translation id="8894794286471754040">ရှည်သည့်အနားနှင့် စတင်ရန်</translation> <translation id="8897428486789851669">ရေကူးခြင်း</translation> +<translation id="8899807382908246773">ကြားဖြတ်ကြော်ငြာများ</translation> <translation id="8903921497873541725">ချဲ့ကြည့်ပါ</translation> <translation id="890493561996401738">'အကြံပြုချက်' ခလုတ်ကို ဖယ်ရှားခြင်း၊ ဖယ်ရှားရန် Enter ကို နှိပ်ပါ၊ <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google အကောင့်</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 61ae6a8..5ad538e 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -1150,6 +1150,7 @@ <translation id="3872834068356954457">विज्ञान</translation> <translation id="3875783148670536197">यसो गर्ने तरिका देखाइयोस्</translation> <translation id="3881478300875776315">कम हरफ देखाउनुहोस्</translation> +<translation id="3883500545751229739">हस्तक्षेपकारी विज्ञापनहरू</translation> <translation id="3884278016824448484">विभेदात्मक यन्त्र पहिचानकर्ता</translation> <translation id="388632593194507180">निगरानी भइरहेको कुरा पत्ता लाग्यो</translation> <translation id="3886948180919384617">स्ट्याकर ३</translation> @@ -3114,6 +3115,7 @@ <translation id="8891727572606052622">अवैध प्रोक्सी मोड।</translation> <translation id="8894794286471754040">पहिले लामो किनारा</translation> <translation id="8897428486789851669">पौडी</translation> +<translation id="8899807382908246773">हस्तक्षेपकारी विज्ञापनहरू</translation> <translation id="8903921497873541725">जुम इन</translation> <translation id="890493561996401738">सुझावको बटन हटाउनुहोस्, हटाउन Enter थिच्नुहोस्, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google खाता</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 3b5b2d2..2f9d36c4 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -1148,6 +1148,7 @@ <translation id="3872834068356954457">Wetenschap</translation> <translation id="3875783148670536197">Laten zien</translation> <translation id="3881478300875776315">Minder regels bekijken</translation> +<translation id="3883500545751229739">opdringerige advertenties</translation> <translation id="3884278016824448484">Conflicterende apparaat-ID's</translation> <translation id="388632593194507180">Controle gedetecteerd</translation> <translation id="3886948180919384617">Stapeleenheid 3</translation> @@ -3111,6 +3112,7 @@ <translation id="8891727572606052622">Ongeldige proxymodus.</translation> <translation id="8894794286471754040">Lange zijde eerst</translation> <translation id="8897428486789851669">Zwemmen</translation> +<translation id="8899807382908246773">Opdringerige advertenties</translation> <translation id="8903921497873541725">Inzoomen</translation> <translation id="890493561996401738">Suggestieknop verwijderen, druk op Enter om te verwijderen, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google-account</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 2bacffa..4399029 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -162,6 +162,7 @@ <translation id="1337692097987160377">Distribuie această filă</translation> <translation id="1339601241726513588">Domeniu de înregistrare:</translation> <translation id="1340482604681802745">Adresa de preluare</translation> +<translation id="1343356790768851700">Acest site stabilește lucrurile care te interesează, apoi sugerează anunțuri altor site-uri</translation> <translation id="1346748346194534595">Dreapta</translation> <translation id="1348198688976932919">Site-ul pe care urmează să îl accesezi conține aplicații periculoase</translation> <translation id="1348779747280417563">Confirmă numele</translation> @@ -273,6 +274,7 @@ <translation id="1583429793053364125">A apărut o eroare la afișarea paginii web.</translation> <translation id="1586541204584340881">extensiile instalate;</translation> <translation id="1588438908519853928">Normal</translation> +<translation id="1589286740290249903"><ph name="BEGIN_BOLD" />Ce date sunt folosite:<ph name="END_BOLD" /> subiectele anunțurilor se bazează pe istoricul tău de navigare recent, o listă a site-urilor pe care le-ai accesat folosind Chrome pe acest dispozitiv.</translation> <translation id="1592005682883173041">Accesul la datele locale</translation> <translation id="1593359183944365958">270 de grade</translation> <translation id="1594030484168838125">Alegeți</translation> @@ -311,6 +313,7 @@ <translation id="1682696192498422849">Cu latura scurtă înainte</translation> <translation id="168693727862418163">Valoarea politicii nu s-a validat în raport cu schema și va fi ignorată.</translation> <translation id="168841957122794586">Certificatul de server conține o cheie criptografică slabă.</translation> +<translation id="1697430960030447570"><ph name="BEGIN_BOLD" />Cum îți poți gestiona datele:<ph name="END_BOLD" /> Chrome șterge automat subiectele mai vechi de patru săptămâni. Pe măsură ce navighezi, un subiect poate să reapară în listă. În plus, poți să blochezi subiectele pe care nu vrei să le trimită Chrome la site-uri și să dezactivezi oricând subiectele anunțurilor din setările Chrome.</translation> <translation id="1697532407822776718">Ești gata!</translation> <translation id="1702815194757674443">ROC 16K</translation> <translation id="1703835215927279855">Letter</translation> @@ -340,6 +343,7 @@ <translation id="1736420071277903564">Computer</translation> <translation id="1740951997222943430">Introdu o lună de expirare validă</translation> <translation id="1741613555002899862">Trebuie specificată și trebuie să fie un șir valid când DnsOverHttpsMode este <ph name="SECURE_DNS_MODE_SECURE" />.</translation> +<translation id="1745399796851657441"><ph name="BEGIN_BOLD" />Cum folosim aceste date:<ph name="END_BOLD" /> Chrome reține subiectele de interes pe măsură ce navighezi. Etichetele subiectelor sunt predefinite și printre acestea se numără Artă și divertisment, Cumpărături și Sport. Ulterior, un site pe care îl accesezi poate solicita browserului Chrome câteva dintre subiectele tale (dar nu și istoricul de navigare) pentru a personaliza anunțurile pe care le vezi.</translation> <translation id="1745880797583122200">Browserul tău este gestionat</translation> <translation id="1746113442205726301">Deplasarea poziției Y a imaginii</translation> <translation id="1746531169546376413">0 grade</translation> @@ -430,6 +434,7 @@ <translation id="1992331125980284532">JIS B3</translation> <translation id="1997484222658892567"><ph name="URL" /> dorește să stocheze permanent cantități mari de date pe computer</translation> <translation id="2001146170449793414">{COUNT,plural, =1{și încă una}few{și încă #}other{și încă #}}</translation> +<translation id="2002436619517051938">Poți face modificări în setările Chrome.</translation> <translation id="2003709556000175978">Resetează parola acum</translation> <translation id="2003775180883135320">Perforare cvadruplă în partea de sus</translation> <translation id="201174227998721785">Gestionează permisiunile și datele stocate pe toate site-urile din setările Chrome</translation> @@ -452,6 +457,7 @@ <translation id="205212645995975601">Grătare</translation> <translation id="2053111141626950936">Paginile în <ph name="LANGUAGE" /> nu vor fi traduse.</translation> <translation id="2053373601901562871">{NUM_DAYS,plural, =0{Când opțiunea este activată și starea este Activă, Chrome stabilește un grup mare de utilizatori cu care se aseamănă cel mai mult activitatea ta de navigare recentă. Advertiserii pot selecta anunțuri pentru grup și activitatea ta de navigare este păstrată privată pe dispozitivul tău. Grupul este actualizat în fiecare zi.}=1{Când opțiunea este activată și starea este Activă, Chrome stabilește un grup mare de utilizatori cu care se aseamănă cel mai mult activitatea ta de navigare recentă. Advertiserii pot selecta anunțuri pentru grup și activitatea ta de navigare este păstrată privată pe dispozitivul tău. Grupul este actualizat în fiecare zi.}few{Când opțiunea este activată și starea este Activă, Chrome stabilește un grup mare de utilizatori cu care se aseamănă cel mai mult activitatea ta de navigare recentă. Advertiserii pot selecta anunțuri pentru grup și activitatea ta de navigare este păstrată privată pe dispozitivul tău. Grupul este actualizat o dată la {NUM_DAYS} zile.}other{Când opțiunea este activată și starea este Activă, Chrome stabilește un grup mare de utilizatori cu care se aseamănă cel mai mult activitatea ta de navigare recentă. Advertiserii pot selecta anunțuri pentru grup și activitatea ta de navigare este păstrată privată pe dispozitivul tău. Grupul este actualizat o dată la {NUM_DAYS} de zile.}}</translation> +<translation id="2056658168519009885">Site-urile pot solicita informații de la Chrome pentru a personaliza anunțurile pe care le vezi.</translation> <translation id="2059202684901022309">22 x 34 in</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 sugestie}few{# sugestii}other{# de sugestii}}</translation> <translation id="2066915425250589881">solicitare de ștergere</translation> @@ -671,6 +677,7 @@ <translation id="262745152991669301">Poate solicita permisiunea de a se conecta la dispozitive USB</translation> <translation id="2629325967560697240">Pentru a beneficia de cel mai înalt nivel de securitate, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activează protecția îmbunătățită<ph name="END_ENHANCED_PROTECTION_LINK" /></translation> <translation id="2634124572758952069">Nu s-a găsit adresa IP pentru serverul <ph name="HOST_NAME" />.</translation> +<translation id="2639227409413857192">Acest site stabilește lucrurile care te interesează, apoi sugerează anunțuri altor site-uri. În plus, site-ul preia subiectele anunțurilor din Chrome pentru a-ți afișa anunțuri mai relevante.</translation> <translation id="2639739919103226564">Stare:</translation> <translation id="2643134278432436513">Îngrijirea părului</translation> <translation id="2647852283046201479">Jocuri de strategie</translation> @@ -812,6 +819,7 @@ <translation id="301521992641321250">Blocată automat</translation> <translation id="3016780570757425217">Afle locația</translation> <translation id="3017086357773116182"><ph name="REMOVE_SUGGESTION_SUFFIX" />, apasă pe Tab, apoi pe Enter pentru a elimina sugestia.</translation> +<translation id="3023165109041533893">Anunțurile sugerate de site-uri contribuie la protejarea istoricului de navigare și a identității tale și le dă site-urilor posibilitatea să îți afișeze anunțuri relevante. Pe baza activității tale, un site pe care l-ai accesat poate sugera anunțuri similare pe măsură ce navighezi. În setări, poți să vezi o listă a acestor site-uri și să le blochezi pe cele care nu dorești să apară.</translation> <translation id="3024663005179499861">Tip de politică greșit</translation> <translation id="3029752078111257850">Știri internaționale</translation> <translation id="3037177537145227281">Se urmărește prețul</translation> @@ -823,6 +831,7 @@ <translation id="306573536155379004">Jocul a început.</translation> <translation id="3068991664510324412">Jocuri video și pe computer</translation> <translation id="3080254622891793721">Grafică</translation> +<translation id="3081538120861307764">Pentru a măsura performanța unui anunț, sunt trimise tipuri de date limitate între site-uri, cum ar fi ora la care ți-a fost afișat un anunț.</translation> <translation id="3082007635241601060">Permite ca Google să utilizeze coșurile tale de cumpărături pentru a găsi reduceri personalizate dacă sunt disponibile</translation> <translation id="3086579638707268289">Activitatea ta de pe web este monitorizată</translation> <translation id="3087734570205094154">Jos</translation> @@ -902,6 +911,7 @@ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a crea rapid un eveniment în Google Calendar</translation> <translation id="3261488570342242926">Află despre cardurile virtuale</translation> <translation id="3264837738038045344">Butonul de gestionare a setărilor Chrome, apasă pe Enter pentru a accesa setările Chrome</translation> +<translation id="3266367459139339908">Lansăm noi modalități de a limita informațiile pe care le pot afla site-urile despre tine când îți afișează anunțuri personalizate, de exemplu:</translation> <translation id="3266793032086590337">Valoare (conflictuală)</translation> <translation id="3266972086368072861">{NUM_COOKIES,plural, =0{Niciun site blocat, inclusiv site-urile conexe}=1{Un site blocat, inclusiv site-urile conexe}few{# site-uri blocate, inclusiv site-urile conexe}other{# de site-uri blocate, inclusiv site-urile conexe}}</translation> <translation id="3268451620468152448">File deschise</translation> @@ -933,6 +943,7 @@ <translation id="3339440062908617027">Alergare și mers</translation> <translation id="3339446062576134663">Cloud (Ash)</translation> <translation id="3340978935015468852">setări</translation> +<translation id="3342018947887487892">Ulterior, un site pe care îl accesezi poate solicita aceste informații, fie subiectele anunțurilor, fie anunțurile sugerate de site-uri pe care le-ai accesat.</translation> <translation id="3342366525167526994">Artă corporală</translation> <translation id="3345782426586609320">Ochi</translation> <translation id="3349952286488694786">SRA2</translation> @@ -1060,6 +1071,7 @@ <translation id="3634530185120165534">Tava 5</translation> <translation id="3634567936866541746">Ai introdus parola pe un site înșelător. Pentru a-ți proteja conturile, Chrome recomandă să verifici parolele salvate.</translation> <translation id="3642638418806704195">Aplicație:</translation> +<translation id="3646643500201740985">Măsurarea performanței unui anunț</translation> <translation id="3647286794400715637">Fiecare intrare de șir de adrese URL trebuie să conțină una sau două adrese URL.</translation> <translation id="3650584904733503804">Validarea a reușit</translation> <translation id="3653033846669030038">Parcuri tematice</translation> @@ -1077,6 +1089,7 @@ <translation id="3678342917559046352">Extensie nevalidă: se aștepta ca valoarea să aibă una dintre următoarele forme: <extension_id> sau <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Deschide pagina într-o fereastră incognito nouă (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Informații despre certificat</translation> +<translation id="3681421644246505351">Chrome reține subiectele de interes pe baza istoricului tău de navigare recent.</translation> <translation id="3693327506115126094">Alege cum să-ți confirmi identitatea</translation> <translation id="3701427423622901115">Resetare confirmată.</translation> <translation id="3704162925118123524">Rețeaua pe care o folosești poate solicita accesarea paginii de conectare.</translation> @@ -1153,6 +1166,7 @@ <translation id="3872834068356954457">Știință</translation> <translation id="3875783148670536197">Arată-mi cum</translation> <translation id="3881478300875776315">Afișează mai puține rânduri</translation> +<translation id="3883500545751229739">anunțuri deranjante</translation> <translation id="3884278016824448484">Identificator de gadget în conflict</translation> <translation id="388632593194507180">S-a detectat monitorizarea</translation> <translation id="3886948180919384617">Receptorul de hârtie 3</translation> @@ -1161,6 +1175,7 @@ <translation id="3901925938762663762">Cardul este expirat</translation> <translation id="3906954721959377182">Tabletă</translation> <translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation> +<translation id="3911401144270344103">Poți să te răzgândești oricând în setările Chrome</translation> <translation id="3921869355029467742">Introdu codul de securitate</translation> <translation id="3927932062596804919">Refuză</translation> <translation id="393316646445601645">Internet și telecomunicații</translation> @@ -1188,6 +1203,7 @@ <translation id="3987940399970879459">Mai puțin de 1 MB</translation> <translation id="3990250421422698716">Decalaj de îndoire</translation> <translation id="3992684624889376114">Despre această pagină</translation> +<translation id="399952081411886534">Alte funcții care fac anunțurile mai private</translation> <translation id="4006465311664329701">Metode de plată, oferte și adrese care folosesc Google Pay</translation> <translation id="4009243425692662128">Conținutul paginilor pe care le printezi este trimis la Google Cloud sau la terți spre analiză. De exemplu, se pot căuta date sensibile.</translation> <translation id="4010758435855888356">Permiți accesul la spațiul de stocare?</translation> @@ -1205,6 +1221,7 @@ <translation id="4063924980214801036">Folosește deblocarea dispozitivului ca să confirmi cardurile mai rapid</translation> <translation id="4067098466788473230">Burse de studiu</translation> <translation id="4067947977115446013">Adaugă o adresă validă</translation> +<translation id="4070790659619547722">Cu ajutorul cuantificării anunțurilor, sunt trimise tipuri de date limitate între site-uri, cum ar fi ora la care ți-a fost afișat un anunț, pentru ca acestea să măsoare performanța anunțurilor lor.</translation> <translation id="4072193657607981494">Se încarcă politicile</translation> <translation id="4072486802667267160">A apărut o eroare la procesarea comenzii. Încearcă din nou.</translation> <translation id="4073376909608563327">Nu s-a putut folosi deblocarea dispozitivului</translation> @@ -1257,6 +1274,7 @@ <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Încă <ph name="ITEM_COUNT" /> articol}few{Încă <ph name="ITEM_COUNT" /> articole}other{Încă <ph name="ITEM_COUNT" /> de articole}}</translation> <translation id="4176463684765177261">Dezactivat</translation> <translation id="4176535426287761656">Proprietăți deținute pe durată limitată și proprietăți de vacanță</translation> +<translation id="4177501066905053472">Subiectele anunțurilor</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> <translation id="4186035307311647330">Anulează urmărirea prețului</translation> <translation id="4194250254487269611">Cardul nu poate fi salvat în acest moment</translation> @@ -1312,6 +1330,7 @@ <translation id="4282346679996504092">Alertele pentru acest produs au fost dezactivate și marcajul a fost eliminat</translation> <translation id="4285498937028063278">Anulați fixarea</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Acest card a fost salvat în Contul tău Google}few{Aceste carduri au fost salvate în Contul tău Google}other{Aceste carduri au fost salvate în Contul tău Google}}</translation> +<translation id="4287495839370498922">Confidențialitate îmbunătățită a anunțurilor în Chrome</translation> <translation id="4287885627794386150">Eligibil pentru versiunea de încercare, dar inactiv</translation> <translation id="4297502707443874121">Miniatură pentru pagina <ph name="THUMBNAIL_PAGE" /></translation> <translation id="4298000214066716287">Investiții</translation> @@ -1392,6 +1411,7 @@ <translation id="449126573531210296">Criptează parolele sincronizate folosind Contul Google</translation> <translation id="4492519888999857993">Funcțiile sunt dezactivate în mod prestabilit. Acestea nu vor fi disponibile în versiunile Chrome ulterioare.</translation> <translation id="4493480324863638523">Adresă URL nevalidă. Trebuie să fie o adresă URL cu schemă standard, de exemplu: http://example.com sau https://example.com.</translation> +<translation id="4494323206460475851">Poți să vezi subiectele anunțurilor în setări și să le blochezi pe cele care nu dorești să apară pe site-uri. În plus, Chrome șterge automat subiectele anunțurilor mai vechi de patru săptămâni.</translation> <translation id="4500587658229086076">Conținut nesecurizat</translation> <translation id="4506176782989081258">Eroare de validare: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">să contactezi administratorul sistemului;</translation> @@ -1462,6 +1482,7 @@ <translation id="467809019005607715">Prezentări Google</translation> <translation id="4682496302933121474">Traduci pagina?</translation> <translation id="468314109939257734">Vezi numărul de card virtual</translation> +<translation id="4687718960473379118">anunțurile sugerate de site-uri,</translation> <translation id="4692623383562244444">Motoare de căutare</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> <translation id="4702504834785592287">Lateral</translation> @@ -1743,6 +1764,7 @@ <translation id="5337569431717511221">Butonul Setează Chrome ca browser prestabilit, apasă pe Enter ca să setezi Chrome ca browser prestabilit pentru sistem</translation> <translation id="5340250774223869109">Aplicația a fost blocată</translation> <translation id="534295439873310000">Dispozitive NFC</translation> +<translation id="5344522958567249764">Gestionează confidențialitatea anunțurilor</translation> <translation id="5344579389779391559">Această pagină poate să genereze costuri</translation> <translation id="5347645913823149105">Personalizează fonturile în butonul Chrome, apasă pe Enter pentru a personaliza dimensiunea și tipul fontului în Chrome</translation> <translation id="5355557959165512791">Nu poți accesa <ph name="SITE" /> acum, deoarece certificatul său a fost revocat. Erorile de rețea și atacurile sunt de obicei temporare și probabil că această pagină va funcționa mai târziu.</translation> @@ -1841,6 +1863,7 @@ <translation id="5598944008576757369">Alege metoda de plată</translation> <translation id="560412284261940334">Gestionarea nu este acceptată</translation> <translation id="5605670050355397069">Registru</translation> +<translation id="5606444889871204172"><ph name="BEGIN_BOLD" />Cum îți poți gestiona datele:<ph name="END_BOLD" /> Chrome șterge automat site-urile mai vechi de patru săptămâni. Un site pe care îl accesezi din nou poate să reapară în listă. Poți să nu permiți unui site să îți sugereze anunțuri și să dezactivezi oricând anunțurile sugerate de site-uri din setările Chrome.</translation> <translation id="5610142619324316209">să verifici conexiunea;</translation> <translation id="5610807607761827392">Poți să gestionezi cardurile și adresele în <ph name="BEGIN_LINK" />Setări<ph name="END_LINK" />.</translation> <translation id="561165882404867731">Tradu această pagină cu Google Traducere</translation> @@ -1979,6 +2002,7 @@ <translation id="598637245381783098">Nu se poate deschide aplicația de plată</translation> <translation id="5989320800837274978">Nu sunt specificate nici servere proxy fixe și nici o adresă URL pentru scripturi .pac.</translation> <translation id="5992691462791905444">Îndoire în Z pentru inginerie</translation> +<translation id="5992805036496113940">Vezi informațiile folosite pentru a-ți afișa anunțuri</translation> <translation id="5995727681868049093">Gestionează-ți informațiile, confidențialitatea și securitatea Contului Google</translation> <translation id="5997247540087773573">Parola pe care tocmai ai folosit-o a fost găsită într-o încălcare a securității datelor. Pentru a-ți proteja conturile, Managerul de parole Google îți recomandă să schimbi parola acum și să verifici parolele salvate.</translation> <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultate pentru „<ph name="SEARCH_TEXT" />”</translation> @@ -2015,6 +2039,7 @@ <translation id="6051221802930200923">Nu poți accesa <ph name="SITE" /> acum, deoarece site-ul folosește fixarea certificatelor. Erorile de rețea și atacurile sunt de obicei temporare și probabil că această pagină va funcționa mai târziu.</translation> <translation id="6051898664905071243">Numărul de pagini:</translation> <translation id="6052284303005792909">•</translation> +<translation id="6053735090575989697">Află mai multe despre modul în care Google îți protejează datele din Politica noastră de confidențialitate.</translation> <translation id="6055888660316801977">Foaia „Datele de conectare pentru plăți securizate nu corespund datelor de conectare”</translation> <translation id="6058977677006700226">Folosești cardurile pe toate dispozitivele?</translation> <translation id="6059925163896151826">Dispozitive USB</translation> @@ -2063,6 +2088,7 @@ <translation id="6196640612572343990">Blochează cookie-urile terță parte</translation> <translation id="6197648101609735209">89 x 89 mm</translation> <translation id="6203231073485539293">Verificați conexiunea la internet</translation> +<translation id="6205314730813004066">Confidențialitatea anunțurilor</translation> <translation id="6212314149070368045">US Fanfold</translation> <translation id="6218753634732582820">Elimini adresa din Chromium?</translation> <translation id="622039917539443112">Îndoire paralelă</translation> @@ -2153,6 +2179,7 @@ <translation id="6429267199680088961">A4 Tab</translation> <translation id="643051589346665201">Schimbă parola Google</translation> <translation id="6431119592588449664">Raportul a fost încărcat</translation> +<translation id="6432297414176614592">Mai multe despre subiectele anunțurilor</translation> <translation id="6433490469411711332">Editează informațiile de contact</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> a refuzat conexiunea.</translation> <translation id="6433797564277305076">Confirmă-ți cardurile mai rapid, folosind deblocarea dispozitivului de acum înainte</translation> @@ -2173,6 +2200,7 @@ <translation id="646793340882508547">Jocuri de aventură</translation> <translation id="6468485451923838994">Fonturi</translation> <translation id="647261751007945333">Politici privind dispozitivele</translation> +<translation id="6475672344094591109">Site-urile pe care le accesezi pot solicita informații de la Chrome care le ajută să măsoare performanța anunțurilor lor. Chrome îți protejează confidențialitatea limitând informațiile pe care site-urile și le pot trimite.</translation> <translation id="6476284679642588870">Gestionează metodele de plată</translation> <translation id="6486200200930923183">Filme documentare</translation> <translation id="6489534406876378309">Începeți încărcarea rapoartelor de blocare</translation> @@ -2276,6 +2304,7 @@ <translation id="6786145470008421571">Plic de 6 x 9 inchi</translation> <translation id="67862343314499040">Violet</translation> <translation id="6786747875388722282">Extensii</translation> +<translation id="6787094689637422836">Lansăm noi funcții de confidențialitate care îți oferă mai mult control asupra anunțurilor pe care le vezi.</translation> <translation id="678982761784843853">ID-uri de conținut protejat</translation> <translation id="6790428901817661496">Redă</translation> <translation id="679355240208270552">Valoare ignorată, deoarece politica nu a activat căutarea prestabilită.</translation> @@ -2576,6 +2605,7 @@ <translation id="7507075214339298899">Plic 9</translation> <translation id="7508255263130623398">ID-ul de dispozitiv returnat pentru politică este gol sau nu corespunde cu ID-ul de dispozitiv actual</translation> <translation id="7508870219247277067">Verde avocado</translation> +<translation id="7510225383966760306"><ph name="BEGIN_BOLD" />Cum folosesc site-urile aceste date:<ph name="END_BOLD" /> site-urile pot stoca informații în Chrome despre lucrurile care te interesează. De exemplu, dacă accesezi un site despre antrenamente pentru maraton, site-ul poate deduce că te interesează pantofii de alergare. Mai târziu, dacă accesezi alt site, acel site îți poate afișa un anunț pentru pantofi de alergare, pe baza sugestiei de pe primul site.</translation> <translation id="7510269639068718544">Pisici</translation> <translation id="7511955381719512146">Rețeaua Wi-Fi pe care o folosești poate solicita accesarea adresei <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation> <translation id="7512685745044087310">Această politică nu poate să fie activată și obligatorie, prin urmare starea acesteia a fost setată la „Recomandată”.</translation> @@ -2704,11 +2734,13 @@ <translation id="7766518757692125295">Contur</translation> <translation id="7773005668374414287">În aceeași ordine, cu fața în sus</translation> <translation id="7785790577395078482">această tabletă</translation> +<translation id="7790488044432570133">Site-urile pe care le accesezi pot solicita informații de la Chrome care le ajută să măsoare performanța anunțurilor lor. Chrome le permite site-urilor să colecteze tipuri de date limitate, cum ar fi ora la care ți-a fost afișat un anunț.</translation> <translation id="7791011319128895129">Nelansată</translation> <translation id="7791196057686275387">Balot</translation> <translation id="7791543448312431591">Adaugă</translation> <translation id="7798389633136518089">Ignorată, deoarece politica nu este configurată de o sursă din cloud.</translation> <translation id="7800304661137206267">Conexiunea este criptată utilizând <ph name="CIPHER" />, cu <ph name="MAC" /> pentru autentificarea mesajelor și <ph name="KX" /> ca mecanism de schimb al cheii.</translation> +<translation id="7800977246388195491">Chrome reține subiectele de interes pe baza istoricului tău de navigare recent. În plus, site-urile pe care le accesezi pot stabili lucrurile care te interesează. Mai târziu, site-urile pot solicita aceste informații pentru a-ți afișa anunțuri personalizate. Poți alege ce subiecte și ce site-uri sunt folosite pentru a-ți afișa anunțuri.</translation> <translation id="7802523362929240268">Site-ul este legitim</translation> <translation id="7802989406998618639">Introdu codul de securitate din <ph name="NUMBER_OF_DIGITS" /> cifre în <ph name="SIDE_OF_CARD" />, pentru ca banca să-ți poată confirma identitatea</translation> <translation id="780301667611848630">Nu, mulțumesc</translation> @@ -2990,6 +3022,7 @@ <translation id="8533619373899488139">Accesează <strong>chrome://policy</strong> ca să vezi lista de adrese URL blocate și alte politici aplicate de administratorul de sistem.</translation> <translation id="8539500321752640291">Acorzi două permisiuni?</translation> <translation id="8541158209346794904">Dispozitivul Bluetooth</translation> +<translation id="8541410041357371550">Site-ul preia subiectele anunțurilor din Chrome pentru a-ți afișa anunțuri mai relevante</translation> <translation id="8542014550340843547">Capsare triplă în partea de jos</translation> <translation id="8542617028204211143">SRA0</translation> <translation id="8543181531796978784">Poți să <ph name="BEGIN_ERROR_LINK" />raportezi o problemă privind detectarea<ph name="END_ERROR_LINK" /> sau, dacă îți asumi riscurile de securitate, poți să <ph name="BEGIN_LINK" />accesezi acest site nesigur<ph name="END_LINK" />.</translation> @@ -3009,7 +3042,9 @@ <translation id="8589998999637048520">Calitate optimă</translation> <translation id="8600271352425265729">Doar de data aceasta</translation> <translation id="860043288473659153">Nume titular de card</translation> +<translation id="8601027005147870853"><ph name="BEGIN_BOLD" />Ce date sunt folosite:<ph name="END_BOLD" /> activitatea ta de pe un site pe care l-ai accesat folosind Chrome pe acest dispozitiv.</translation> <translation id="8606726445206553943">Folosească dispozitive MIDI</translation> +<translation id="8606988009912891950">Pe baza subiectelor anunțurilor, site-urile îți afișează anunțuri relevante, protejându-ți totodată istoricul de navigare și identitatea. Chrome poate reține subiectele de interes pe baza istoricului tău de navigare recent. Ulterior, un site pe care îl accesezi poate solicita browserului Chrome subiecte relevante, pentru a personaliza anunțurile pe care le vezi.</translation> <translation id="8617269623452051934">folosirea dispozitivului</translation> <translation id="861775596732816396">Mărimea 4</translation> <translation id="8620276786115098679">Plic Kaku 7</translation> @@ -3115,9 +3150,11 @@ <translation id="8876033571432926051">Jocuri ocazionale</translation> <translation id="8877780815363510165">Pescuit</translation> <translation id="8884537526797090108">Conținutul confidențial nu se poate înregistra</translation> +<translation id="8890798179125483517">Chrome șterge automat subiectele și site-urile care sugerează anunțuri mai vechi de patru săptămâni. În plus, poți bloca anumite subiecte și site-uri care nu îți plac.</translation> <translation id="8891727572606052622">Mod proxy nevalid.</translation> <translation id="8894794286471754040">Cu latura lungă înainte</translation> <translation id="8897428486789851669">Înot</translation> +<translation id="8899807382908246773">Anunțuri deranjante</translation> <translation id="8903921497873541725">Mărește</translation> <translation id="890493561996401738">Butonul Elimină sugestia, apasă pe Enter pentru a elimina, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Contul Google</translation> @@ -3202,6 +3239,7 @@ <translation id="91108059142052966">Politica implementată de administrator dezactivează permiterea accesului la ecran pentru <ph name="APPLICATION_TITLE" /> atunci când este vizibil conținut confidențial</translation> <translation id="9114524666733003316">Se confirmă cardul…</translation> <translation id="9114581008513152754">Browserul nu este gestionat de o companie sau o altă organizație. Este posibil ca activitatea de pe acest dispozitiv să fie gestionată în afara Chrome. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation> +<translation id="9116548361133462832">Mai multe despre anunțurile din Chrome</translation> <translation id="9117930699067497412">Prospețime</translation> <translation id="9118692854637641831"><ph name="HISTORY_CLUSTERS_SEARCH_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a-ți continua parcursul și a vedea activitatea relevantă din istoricul Chrome</translation> <translation id="9119042192571987207">Încărcat</translation> @@ -3225,6 +3263,8 @@ <translation id="9155211586651734179">dispozitivele periferice audio conectate;</translation> <translation id="9157595877708044936">Se configurează...</translation> <translation id="9164742147345933553">os://flags</translation> +<translation id="9165305804774426672">Site-urile pe care le accesezi pot stabili și lucrurile care te interesează, pe baza activității tale pe site. De exemplu, dacă accesezi un site care vinde pantofi de alergare pe distanțe mari, site-ul poate deduce că te interesează maratoanele.</translation> +<translation id="9166851138617700776">Mai multe despre anunțurile sugerate de site-uri și cuantificarea anunțurilor</translation> <translation id="9168814207360376865">Permite site-urilor să verifice dacă ai salvat metode de plată</translation> <translation id="9169664750068251925">Blocați întotdeauna pe acest site</translation> <translation id="9169931577761441333">Adaugă <ph name="APP_NAME" /> la ecranul de pornire</translation> @@ -3269,6 +3309,7 @@ <translation id="975560348586398090">{COUNT,plural, =0{Niciunul}=1{1 element}few{# elemente}other{# de elemente}}</translation> <translation id="976522784004777030">5 x 8 in</translation> <translation id="977502174772294970">Nunți</translation> +<translation id="979503328401807348">Anunțuri mai utile</translation> <translation id="981121421437150478">Offline</translation> <translation id="982885543310356857">Vehicule clasice</translation> <translation id="984275831282074731">Metode de plată</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 677b0046..9682985 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -175,6 +175,7 @@ <translation id="1363819917331173092">Neponúkať preklad stránok v jazyku <ph name="SOURCE_LANGUAGE" /></translation> <translation id="1364822246244961190">Toto pravidlo je blokované. Jeho hodnota sa bude ignorovať.</translation> <translation id="1368318639262510626">Hra s dinosaurom Pixelovaný dinosaurus beží pustou krajinou a vyhýba sa kaktusom a pterodaktylom. Keď začujete zvuk, stlačením medzerníka preskočte cez prekážky.</translation> +<translation id="136907351928231527">Môže trvať až týždeň, kým sa tu zobrazí zoznam tém na základe vašej nedávnej histórie prehliadania</translation> <translation id="1374468813861204354">návrhy</translation> <translation id="1375198122581997741">Informácie o verzii</translation> <translation id="1376836354785490390">Zobraziť menej</translation> @@ -266,6 +267,7 @@ <translation id="1559839503761818503">Správca reštartuje vaše zariadenie <ph name="DATE" /> o <ph name="TIME" /></translation> <translation id="156703335097561114">Informácie o sieťach, napríklad adresy, konfigurácia rozhrania a kvalita pripojenia</translation> <translation id="1567040042588613346">Toto pravidlo funguje podľa očakávania, ale niekde inde je nastavená rovnaká hodnota, ktorú toto pravidlo nahradilo.</translation> +<translation id="1567405528131216114">Pridať tému <ph name="TOPIC" /></translation> <translation id="1569487616857761740">Zadajte dátum vypršania platnosti</translation> <translation id="1569694109004336106">Google Chrome sa pokúša zapnúť Windows Hello, aby sa vypĺňali heslá.</translation> <translation id="1572765991610098222"><ph name="WIDTH" /> × <ph name="HEIGHT" /> palcov</translation> @@ -509,6 +511,7 @@ <translation id="2185836064961771414">Americký futbal</translation> <translation id="2187317261103489799">Rozpoznávať (predvolené)</translation> <translation id="2188375229972301266">Viacero dierok dole</translation> +<translation id="2197398642355049178">Vaše témy</translation> <translation id="219906046732893612">Domáci majstri</translation> <translation id="2202020181578195191">Zadajte platný rok vypršania platnosti</translation> <translation id="2202627062836089804">zadnej strany karty</translation> @@ -1193,6 +1196,7 @@ <translation id="4023431997072828269">Tento formulár je odosielaný cez pripojenie, ktoré nie je zabezpečené, takže ostatní budú vidieť vaše informácie.</translation> <translation id="4025913568718019429">Tlačidlo na správu nastavení ochrany súkromia v Chrome, stlačením klávesa Enter prejdite do nastavení ochrany súkromia svojho účtu Google</translation> <translation id="4030383055268325496">&Vrátiť späť pridanie</translation> +<translation id="4030545038933060179">Keď je toto nastavenie zapnuté, bude sa tu zobrazovať zoznam tém na základe vašej nedávnej histórie prehliadania</translation> <translation id="4031179711345676612">Mikrofón je povolený</translation> <translation id="4040350669425716613">Vysoké školy a univerzity</translation> <translation id="4047351652147966654">18 × 24 palcov</translation> @@ -1259,6 +1263,7 @@ <translation id="4194250254487269611">Vašu kartu momentálne nie je možné uložiť</translation> <translation id="4195643157523330669">Otvoriť na novej karte</translation> <translation id="4196861286325780578">&Znova presunúť</translation> +<translation id="4202218894997543208">Blokované témy</translation> <translation id="4202554117186904723">Piaty kotúč</translation> <translation id="4203769790323223880">Kamera nie je povolená</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Skontrolovať konfiguráciu brány firewall a antivírusového softvéru<ph name="END_LINK" /></translation> @@ -1351,6 +1356,7 @@ <translation id="4363222835916186793">Upozornenia na tento výrobok boli vypnuté</translation> <translation id="437040971055499437">Vyskytne sa bezpečnostná udalosť</translation> <translation id="4372948949327679948">Očakávaná hodnota <ph name="VALUE_TYPE" />.</translation> +<translation id="4375864595697821259">Pridajte položku späť, ak ju chcete pridať do skupiny tém, z ktorých môže Chrome vyberať pri odhadovaní vašich záujmov</translation> <translation id="4377125064752653719">Pokúsili ste sa o prístup na stránky <ph name="DOMAIN" />, avšak certifikát poskytnutý serverom bol vydavateľom zrušený. Znamená to, že povereniam zabezpečenia, ktoré predložil server, sa celkom nedá dôverovať. Je možné, že komunikujete s útočníkom.</translation> <translation id="4378154925671717803">Telefón</translation> <translation id="4384395682990721132">A4×3</translation> @@ -1402,6 +1408,7 @@ <translation id="4521916730539354575">Ľavý zásobník</translation> <translation id="4522570452068850558">Podrobnosti</translation> <translation id="4524138615196389145">Odteraz môžete potvrdzovať karty rýchlejšie pomocou funkcie WebAuthn</translation> +<translation id="45243788195988825">Blokovať tému <ph name="TOPIC" /></translation> <translation id="4524805452350978254">Spravovať karty</translation> <translation id="4526465106919207193">Ľudia a spoločnosť</translation> <translation id="4530347922939905757">Textová správa</translation> @@ -1414,6 +1421,7 @@ <translation id="4558551763791394412">Skúste deaktivovať rozšírenia.</translation> <translation id="4566017918361049074">Outdoorové aktivity</translation> <translation id="4567686777917670400">Nastavenia prehliadača môže na diaľku zmeniť správca. Aktivita v tomto zariadení môže byť spravovaná aj mimo prehliadača Chromium. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> +<translation id="4568329205873177285">Skontrolovať zoznam súborov cookie a dát webu v novom okne</translation> <translation id="457875822857220463">Doručenie</translation> <translation id="4582204425268416675">Odstrániť kartu</translation> <translation id="4582595824823167856">Poslať textovú správu</translation> @@ -1451,6 +1459,7 @@ <translation id="4663373278480897665">Kamera je povolená</translation> <translation id="4666114623408286498">Farmácia a biotechnológia</translation> <translation id="4668929960204016307">,</translation> +<translation id="4669856024297417878">Chrome si na základe histórie prehliadania za posledných niekoľko týždňov zaznamenáva témy, ktoré vás zaujímajú.</translation> <translation id="4670064810192446073">Virtuálna realita</translation> <translation id="4671339777629075741">Obálka DL</translation> <translation id="4673460618347856347">Hrať hru s dinosaurom</translation> @@ -2310,6 +2319,7 @@ <translation id="6888584790432772780">Chrome zjednodušil túto stránku, aby sa dala ľahšie prečítať. Chrome načítal pôvodnú stránku cez nezabezpečené pripojenie.</translation> <translation id="6890443033788248019">Chcete povoliť prístup k polohe?</translation> <translation id="6890531741535756070">Na weboch využívajúcich poskytovateľa <ph name="PROVIDER_ORIGIN" /> ste vybrali overovanie pomocou <ph name="DEVICE_LABEL" />. Tento poskytovateľ mohol ukladať informácie o vašom spôsobe platby, <ph name="BEGIN_LINK" />o ktorých odstránenie môžete požiadať<ph name="END_LINK" />.</translation> +<translation id="6890956352250146925">Možnosti súborov cookie a dát webov</translation> <translation id="6891596781022320156">Úroveň pravidla nie je podporovaná.</translation> <translation id="6895330447102777224">Vaša karta je overená</translation> <translation id="6896758677409633944">Kopírovať</translation> @@ -2499,6 +2509,7 @@ <translation id="7365849542400970216">Povoliť zistiť, či používate svoje zariadenie?</translation> <translation id="7366117520888504990">198 x 275 mm</translation> <translation id="7366362069757178916">Obslužné nástroje platieb</translation> +<translation id="7367985555340314048">Témy záujmu sú založené na vašej nedávnej histórii prehliadania a weby vám na základe nich zobrazujú prispôsobené reklamy</translation> <translation id="7372973238305370288">výsledok vyhľadávania</translation> <translation id="7374461526650987610">Obslužné nástroje protokolov</translation> <translation id="7374733840632556089">Tento problém je spôsobený certifikátom, ktorý bol v zariadení nainštalovaný vami alebo niekým iným. O tomto certifikáte je známe, že sa pomocou neho sledujú a narúšajú siete. Chrome mu nedôveruje. Niekedy existujú legitímne prípady sledovania, napríklad v školskej alebo firemnej sieti. Chrome sa však chce uistiť, či viete, že k tomu dochádza (aj keď to nemôžete zastaviť). Sledovanie môže prebiehať v ktoromkoľvek prehliadači alebo aplikácii s prístupom na internet.</translation> @@ -2673,6 +2684,7 @@ <translation id="7701040980221191251">Žiadne</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Prejsť na stránky <ph name="SITE" /> (nebezpečné)<ph name="END_LINK" /></translation> <translation id="770607638235926858">Lyžovanie a snowboarding</translation> +<translation id="7706689436519265630">Súbory, ktoré skopírujete alebo presuniete, sa odošlú službe Google Cloud alebo tretím stranám na analýzu. V rámci toho môžu byť napríklad podrobené kontrole prítomnosti citlivých údajov alebo malvéru a podľa firemných pravidiel môžu byť uložené.</translation> <translation id="7709911732293795808">Poistenie</translation> <translation id="7714464543167945231">Certifikát</translation> <translation id="7716147886133743102">Blokované správcom</translation> @@ -2719,6 +2731,7 @@ <translation id="7840103971441592723">Snímanie obrazovky bolo spustené</translation> <translation id="7844689747373518809">{COUNT,plural, =0{Žiadne}=1{1 aplikácia (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikácie (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}few{# aplikácie (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}many{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikácií (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation> <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation> +<translation id="7857116075376571629">Neskôr môže web, ktorý navštívite, požiadať Chrome o témy na prispôsobenie reklám, ktoré sa vám zobrazujú. Chrome zdieľa až tri témy a zároveň chráni vašu históriu prehliadania a totožnosť.</translation> <translation id="7862185352068345852">Chcete odísť z tohto webu?</translation> <translation id="7865448901209910068">Najlepšia rýchlosť</translation> <translation id="7871445724586827387">Zmeniť heslo účtu Google</translation> @@ -2783,6 +2796,7 @@ <translation id="8019861005170389898"><ph name="TRADITIONAL_TEXT" /> (<ph name="ADDITIONAL_TEXT" />)</translation> <translation id="8023231537967344568"><ph name="SET_CHROME_AS_DEFAULT_BROWSER_FOCUSED_FRIENDLY_MATCH_TEXT" />, stlačením klávesov Tab a potom Enter nastavte Chrome ako predvolený prehliadač systému</translation> <translation id="8025119109950072390">Útočníci na tomto webe sa vás môžu pokúsiť naviesť vykonať niečo nebezpečné, ako je inštalovanie softvéru alebo odhalenie osobných informácií (napr. hesiel, telefónnych čísel alebo kreditných kariet).</translation> +<translation id="8026126421313327427">Chrome automaticky odstraňuje témy, ktoré sú staršie ako štyri týždne. Počas ďalšieho prehliadania sa určitá téma môže v zozname znova zobraziť. Prípadne môžete zablokovať témy, ktoré nemá Chrome zdieľať s webmi.</translation> <translation id="8026334261755873520">Vymazať dáta prehliadania</translation> <translation id="8027077570865220386">Zásobník č. 15</translation> <translation id="8028698320761417183"><ph name="CREATE_GOOGLE_FORM_FOCUSED_FRIENDLY_MATCH_TEXT" />, postupným stlačením klávesov Tab a Enter vytvoríte rýchlym spôsobom nový formulár vo Formulároch Google</translation> @@ -3050,6 +3064,7 @@ <translation id="8730621377337864115">Hotovo</translation> <translation id="8731268612289859741">Bezpečnostný kód</translation> <translation id="8731544501227493793">Tlačidlo Spravovať heslá. Stlačením klávesa Enter môžete heslá zobraziť a spravovať v nastaveniach Chromu.</translation> +<translation id="8733764070897080460">Témy, ktoré nechcete zdieľať s webmi, môžete zablokovať. Chrome navyše automaticky odstraňuje témy staršie ako štyri týždne. Ďalšie informácie</translation> <translation id="8734529307927223492">Vaše zariadenie <ph name="DEVICE_TYPE" /> spravuje <ph name="MANAGER" /></translation> <translation id="8736059027199600831">30 × 40 palcov</translation> <translation id="8737134861345396036"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, stlačením klávesov Tab a potom Enter otvorte nové okno inkognito a prehliadajte v súkromí</translation> @@ -3081,6 +3096,7 @@ <translation id="8805819170075074995">Položka zoznamu <ph name="LANGUAGE_ID" />: položka bola ignorovaná, pretože je tiež zahrnutá v pravidle SpellcheckLanguage.</translation> <translation id="8806285662264631610">Výrobky do kúpeľa a na starostlivosť o telo</translation> <translation id="8807160976559152894">Orezať po každej strane</translation> +<translation id="8809203544698246977">Tu sa zobrazujú blokované témy</translation> <translation id="8813277370772331957">Pripomenúť neskôr</translation> <translation id="8814707942599948500">Obálka C8</translation> <translation id="8816395686387277279"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, postupným stlačením klávesov Tab a Enter aktualizujte Chrome v jeho nastaveniach</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 93c45c24..69269df 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -164,6 +164,7 @@ <translation id="1337692097987160377">ఈ ట్యాబ్ను షేర్ చేయి</translation> <translation id="1339601241726513588">నమోదిత డొమైన్:</translation> <translation id="1340482604681802745">పికప్ అడ్రస్</translation> +<translation id="1343356790768851700">మీకు నచ్చిన విషయాలను ఈ సైట్ నిర్ణయించి, ఆపై యాడ్లను ఇతర సైట్లకు సూచిస్తుంది</translation> <translation id="1346748346194534595">కుడి</translation> <translation id="1348198688976932919">రాబోయే సైట్లో హానికరమైన యాప్లు ఉన్నాయి</translation> <translation id="1348779747280417563">పేరును నిర్ధారించండి</translation> @@ -275,6 +276,7 @@ <translation id="1583429793053364125">ఈ వెబ్ పేజీని ప్రదర్శిస్తున్నప్పుడు ఏదో తప్పు జరిగింది.</translation> <translation id="1586541204584340881">మీరు ఏ ఎక్స్టెన్షన్లను ఇన్ స్టాల్ చేసుకున్నారు</translation> <translation id="1588438908519853928">సాధారణ</translation> +<translation id="1589286740290249903"><ph name="BEGIN_BOLD" />ఏ డేటాను ఉపయోగిస్తారు:<ph name="END_BOLD" /> మీ తాజా బ్రౌజింగ్ హిస్టరీ, ఈ పరికరంలో Chromeను ఉపయోగించి మీరు చూసిన సైట్ల లిస్ట్ ఆధారంగా మీ యాడ్ టాపిక్లు ఉంటాయి.</translation> <translation id="1592005682883173041">స్థానిక డేటా యాక్సెస్</translation> <translation id="1593359183944365958">270 డిగ్రీలు</translation> <translation id="1594030484168838125">ఎంచుకోండి</translation> @@ -313,6 +315,7 @@ <translation id="1682696192498422849">పేజీని అడ్డంగా తిప్పి ప్రింట్ చేయి</translation> <translation id="168693727862418163">ఈ పాలసీ విలువ దాని స్కీమాకు వ్యతిరేకంగా వాలిడేట్ చేయడంలో విఫలమైంది, కాబట్టి విస్మరించబడుతుంది.</translation> <translation id="168841957122794586">సర్వర్ ప్రమాణపత్రం బలహీన క్రిప్టోగ్రాఫిక్ కీని కలిగి ఉంది.</translation> +<translation id="1697430960030447570"><ph name="BEGIN_BOLD" />మీ డేటాను మీరు ఎలా మేనేజ్ చేయగలరు:<ph name="END_BOLD" /> 4 వారాల కంటే పాతవైన టాపిక్లను Chrome ఆటోమేటిక్గా తొలగిస్తుంది. మీరు బ్రౌజ్ చేస్తూ ఉన్నప్పుడు, లిస్ట్లో అదే టాపిక్ మళ్లీ కనిపించవచ్చు. సైట్లతో Chrome షేర్ చేయకూడదు అనుకునే టాపిక్లను మీరు బ్లాక్ కూడా చేయవచ్చు, అలాగే యాడ్ టాపిక్లను Chrome సెట్టింగ్లలో ఎప్పుడైనా ఆఫ్ చేయవచ్చు.</translation> <translation id="1697532407822776718">మీరు సిద్ధంగా ఉన్నారు!</translation> <translation id="1702815194757674443">ROC 16K</translation> <translation id="1703835215927279855">లెటర్</translation> @@ -342,6 +345,7 @@ <translation id="1736420071277903564">కంప్యూటర్</translation> <translation id="1740951997222943430">చెల్లుబాటు అయ్యే గడువు ముగింపు నెలను నమోదు చేయండి</translation> <translation id="1741613555002899862">DnsOverHttpsMode అనేది, <ph name="SECURE_DNS_MODE_SECURE" />గా సెట్ చేసి ఉన్నప్పుడు ఖచ్చితంగా పేర్కొనాలి, చెల్లుబాటు అయ్యే స్ట్రింగ్ అయి ఉండాలి.</translation> +<translation id="1745399796851657441"><ph name="BEGIN_BOLD" />మేము ఈ డేటాను ఎలా ఉపయోగిస్తాము:<ph name="END_BOLD" /> మీరు బ్రౌజ్ చేస్తున్నప్పుడు మీకు ఆసక్తి గల టాపిక్లను Chrome నోట్ చేస్తుంది. టాపిక్ లేబుళ్లను తిరిగి వర్గీకరించి, కళలు & వినోదం, షాపింగ్, క్రీడలు వంటివి వాటిలో చేర్చడం జరుగుతుంది. మీకు కనిపించే యాడ్లను వ్యక్తిగతీకరించడానికి, తర్వాత, మీరు చూసే సైట్, Chromeను కొన్ని టాపిక్లను (కానీ మీ బ్రౌజింగ్ హిస్టరీ కాదు) అడగవచ్చు.</translation> <translation id="1745880797583122200">మీ బ్రౌజర్ నిర్వహించబడుతోంది</translation> <translation id="1746113442205726301">చిత్రాన్ని Y అక్షంలో జరపు</translation> <translation id="1746531169546376413">0 డిగ్రీలు</translation> @@ -432,6 +436,7 @@ <translation id="1992331125980284532">JIS B3</translation> <translation id="1997484222658892567"><ph name="URL" /> శాశ్వతంగా అధిక డేటాను మీ స్థానిక కంప్యూటర్లో నిల్వ చేయాలనుకుంటోంది</translation> <translation id="2001146170449793414">{COUNT,plural, =1{మరియు మరొకటి}other{మరియు మరో #}}</translation> +<translation id="2002436619517051938">మీరు మార్పులను Chrome సెట్టింగ్లలో చేసుకోవచ్చు.</translation> <translation id="2003709556000175978">ఇప్పుడే మీ పాస్వర్డ్ని రీసెట్ చేయండి</translation> <translation id="2003775180883135320">ఎగువ భాగంలో నాలుగు రంధ్రాలు</translation> <translation id="201174227998721785">Chrome సెట్టింగ్లలో అనుమతులను, అలాగే సైట్ల అంతటా స్టోర్ చేయబడిన డేటాను మేనేజ్ చేయండి</translation> @@ -454,6 +459,7 @@ <translation id="205212645995975601">BBQ & గ్రిల్లింగ్</translation> <translation id="2053111141626950936"><ph name="LANGUAGE" /> భాషలో ఉన్న పేజీలు అనువదించబడవు.</translation> <translation id="2053373601901562871">{NUM_DAYS,plural, =0{ఈ కంట్రోల్ ఆన్లో ఉన్నప్పుడు, అలాగే యాక్టివ్గా ఉన్నప్పుడు, మీ ఇటీవలి బ్రౌజింగ్ యాక్టివిటీ ఏ పెద్ద వ్యక్తుల గ్రూప్ లేదా “ఒకే రకమైన యూజర్ల గ్రూప్"తో పోలి ఉందని Chrome నిర్ణయిస్తుంది. అడ్వర్టయిజర్లు ఈ గ్రూప్కు యాడ్లను ఎంచుకోవచ్చు, అలాగే మీ బ్రౌజింగ్ యాక్టివిటీ ఈ పరికరంలో ప్రైవేట్గా ఉంచబడుతుంది. మీ గ్రూప్ ప్రతి రోజు అప్డేట్ చేయబడుతుంది.}=1{ఈ కంట్రోల్ ఆన్లో ఉన్నప్పుడు, అలాగే యాక్టివ్గా ఉన్నప్పుడు, మీ ఇటీవలి బ్రౌజింగ్ యాక్టివిటీ ఏ పెద్ద వ్యక్తుల గ్రూప్ లేదా “ఒకే రకమైన యూజర్ల గ్రూప్"తో పోలి ఉందని Chrome నిర్ణయిస్తుంది. అడ్వర్టయిజర్లు ఈ గ్రూప్కు యాడ్లను ఎంచుకోవచ్చు, అలాగే మీ బ్రౌజింగ్ యాక్టివిటీ ఈ పరికరంలో ప్రైవేట్గా ఉంచబడుతుంది. మీ గ్రూప్ ప్రతి రోజు అప్డేట్ చేయబడుతుంది.}other{ఈ కంట్రోల్ ఆన్లో ఉన్నప్పుడు, అలాగే యాక్టివ్గా ఉన్నప్పుడు, మీ ఇటీవలి బ్రౌజింగ్ యాక్టివిటీ ఏ పెద్ద వ్యక్తుల గ్రూప్ లేదా “ఒకే రకమైన యూజర్ల గ్రూప్"తో పోలి ఉందని Chrome నిర్ణయిస్తుంది. అడ్వర్టయిజర్లు ఈ గ్రూప్కు యాడ్లను ఎంచుకోవచ్చు, అలాగే మీ బ్రౌజింగ్ యాక్టివిటీ ఈ పరికరంలో ప్రైవేట్గా ఉంచబడుతుంది. మీ గ్రూప్ ప్రతి {NUM_DAYS} రోజులకు అప్డేట్ చేయబడుతుంది.}}</translation> +<translation id="2056658168519009885">మీకు కనిపించే యాడ్లను వ్యక్తిగతీకరించడంలో సహాయపడటానికి సైట్లు సమాచారం కోసం Chromeను అడగవచ్చు.</translation> <translation id="2059202684901022309">22 x 34 అంగుళాలు</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 సూచన}other{# సూచనలు}}</translation> <translation id="2066915425250589881">తొలగించవలసిందిగా రిక్వెస్ట్ చేయవచ్చు</translation> @@ -673,6 +679,7 @@ <translation id="262745152991669301">USB పరికరాలకు కనెక్ట్ చేయడానికి సైట్ అనుమతి అడగవచ్చు</translation> <translation id="2629325967560697240">Chrome అత్యధిక స్థాయి రక్షణను పొందడానికి, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />మెరుగుపరిచిన ఫీచర్లను ఆన్ చేయండి<ph name="END_ENHANCED_PROTECTION_LINK" /></translation> <translation id="2634124572758952069"><ph name="HOST_NAME" /> యొక్క సర్వర్ IP అడ్రస్ కనుగొనబడలేదు.</translation> +<translation id="2639227409413857192">మీకు నచ్చిన విషయాలను ఈ సైట్ నిర్ణయించి, ఆపై యాడ్లను ఇతర సైట్లకు సూచిస్తుంది. మీకు మరింత సందర్భోచితమైన యాడ్లను చూపడానికి ఈ సైట్ మీ యాడ్ల టాపిక్లను Chrome నుండి కూడా పొందుతుంది.</translation> <translation id="2639739919103226564">స్థితి: </translation> <translation id="2643134278432436513">హెయిర్ కేర్</translation> <translation id="2647852283046201479">వ్యూహాత్మక గేమ్లు</translation> @@ -814,6 +821,7 @@ <translation id="301521992641321250">ఆటోమేటిక్గా బ్లాక్ చేయబడింది</translation> <translation id="3016780570757425217">మీ స్థానాన్ని తెలుసుకోవాలనుకుంటోంది</translation> <translation id="3017086357773116182"><ph name="REMOVE_SUGGESTION_SUFFIX" />, సూచనను తీసివేయడానికి Tabను నొక్కి, ఆపై ఎంటర్ను నొక్కండి.</translation> +<translation id="3023165109041533893">సైట్ సూచించిన యాడ్లు మీకు సంబంధిత యాడ్లను చూపడానికి సైట్లను ఎనేబుల్ చేస్తూనే, మీ బ్రౌజింగ్ హిస్టరీ, గుర్తింపును రక్షించడంలో సహాయపడతాయి. మీరు బ్రౌజ్ చేస్తూ ఉన్నప్పుడు మీరు చూసిన సైట్, మీ యాక్టివిటీ ఆధారంగా సంబంధిత యాడ్లను సూచించవచ్చు. మీరు ఈ సైట్ల లిస్ట్ను చూడవచ్చు, అలాగే మీకు అవసరం లేని వాటిని బ్లాక్ చేయవచ్చు.</translation> <translation id="3024663005179499861">చెల్లని విధాన రకం</translation> <translation id="3029752078111257850">ప్రపంచ వార్తలు</translation> <translation id="3037177537145227281">ధరను ట్రాక్ చేయడం</translation> @@ -825,6 +833,7 @@ <translation id="306573536155379004">గేమ్ ప్రారంభమైంది.</translation> <translation id="3068991664510324412">కంప్యూటర్ & వీడియో గేమ్లు</translation> <translation id="3080254622891793721">గ్రాఫిక్</translation> +<translation id="3081538120861307764">యాడ్ పనితీరును అంచనా వేయడానికి, రోజులో యాడ్ మీకు కనిపించిన సమయం వంటి పరిమిత రకాల డేటా సైట్ల మధ్య షేర్ చేయబడుతుంది.</translation> <translation id="3082007635241601060">వ్యక్తిగతీకరించిన డిస్కౌంట్లు అందుబాటులో ఉన్నప్పుడు కనుగొనడానికి, మీ కార్ట్లను ఉపయోగించడానికి Googleకు అనుమతినివ్వండి</translation> <translation id="3086579638707268289">వెబ్లో మీ యాక్టివిటీ పర్యవేక్షించబడుతోంది</translation> <translation id="3087734570205094154">దిగువ</translation> @@ -904,6 +913,7 @@ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Calendarలో త్వరగా కొత్త ఈవెంట్ను క్రియేట్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation> <translation id="3261488570342242926">వర్చువల్ కార్డ్ల గురించి తెలుసుకోండి</translation> <translation id="3264837738038045344">'Chrome సెట్టింగ్లను మేనేజ్ చేయండి' బటన్, మీ Chrome సెట్టింగ్లకు వెళ్లడానికి Enterను నొక్కండి</translation> +<translation id="3266367459139339908">సైట్లు మీకు వ్యక్తిగతీకరించిన యాడ్లను చూపినప్పుడు, మీ గురించి అవి తెలుసుకునే సమాచారాన్ని పరిమితం చేయడం కోసం మేము కొత్త మార్గాలను లాంచ్ చేయనున్నాము, ఉదాహరణకు:</translation> <translation id="3266793032086590337">విలువ (వైరుధ్యం)</translation> <translation id="3266972086368072861">{NUM_COOKIES,plural, =0{సంబంధిత సైట్లతో సహా ఏ సైట్లు బ్లాక్ చేయలేదు}=1{సంబంధిత సైట్లతో సహా 1 సైట్ బ్లాక్ చేసింది}other{సంబంధిత సైట్లతో సహా # సైట్లు బ్లాక్ చేశాయి}}</translation> <translation id="3268451620468152448">ఓపెన్ ట్యాబ్లు</translation> @@ -935,6 +945,7 @@ <translation id="3339440062908617027">పరుగు & నడక</translation> <translation id="3339446062576134663">క్లౌడ్ (యాష్)</translation> <translation id="3340978935015468852">సెట్టింగ్లు</translation> +<translation id="3342018947887487892">తర్వాత, మీరు చూసే సైట్ ఈ సమాచారాన్ని అడగవచ్చు — మీ యాడ్ టాపిక్లను లేదా మీరు చూసిన సైట్లు సూచించిన యాడ్లను.</translation> <translation id="3342366525167526994">అందానికి మెరుగులు</translation> <translation id="3345782426586609320">కళ్లు</translation> <translation id="3349952286488694786">SRA2</translation> @@ -1062,6 +1073,7 @@ <translation id="3634530185120165534">ట్రే 5</translation> <translation id="3634567936866541746">మీరు మోసపూరితమైన సైట్లో మీ పాస్వర్డ్ను ఎంటర్ చేశారు. మీ ఖాతాలను సురక్షితంగా ఉంచడానికి, Chrome మీ సేవ్ చేసిన పాస్వర్డ్లను చెక్ చేయాలని సిఫార్సు చేస్తోంది.</translation> <translation id="3642638418806704195">యాప్:</translation> +<translation id="3646643500201740985">యాడ్ పనితీరు ఎలా ఉందో అంచనా వేయబడుతోంది</translation> <translation id="3647286794400715637">ప్రతి url స్ట్రింగ్ ఎంట్రీ తప్పనిసరిగా 1 నుండి 2 URLలను కలిగి ఉండాలి.</translation> <translation id="3650584904733503804">ప్రామాణీకరణ విజయవంతం అయింది</translation> <translation id="3653033846669030038">థీమ్ పార్క్లు</translation> @@ -1079,6 +1091,7 @@ <translation id="3678342917559046352">చెల్లని ఎక్స్టెన్షన్: విలువ ఈ ఫారమ్లలో ఒక దానిలా ఉంటుందని ఊహించాము: <extension_id> లేదా <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">కొత్త అజ్ఞాత విండోలో పేజీని తెరవండి (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">సర్టిఫికెట్ సమాచారం</translation> +<translation id="3681421644246505351">మీ తాజా బ్రౌజింగ్ హిస్టరీ ఆధారంగా ఆసక్తి ఉన్న టాపిక్లను Chrome నోట్ చేస్తుంది.</translation> <translation id="3693327506115126094">ఇది మీరేనని మీరు ఎలా వెరిఫై చేయాలో ఎంచుకోండి</translation> <translation id="3701427423622901115">రీసెట్ ఆమోదించబడింది.</translation> <translation id="3704162925118123524">మీరు ఉపయోగించే నెట్వర్క్కు మీరు దాని లాగిన్ పేజీని సందర్శించడం అవసరం కావచ్చు.</translation> @@ -1163,6 +1176,7 @@ <translation id="3901925938762663762">కార్డ్ గడువు సమయం ముగిసింది</translation> <translation id="3906954721959377182">టాబ్లెట్</translation> <translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation> +<translation id="3911401144270344103">మీరు మనస్సు మార్చుకుంటే, మీ ఆసక్తిని Chrome సెట్టింగ్లలో ఎప్పుడైనా మార్చుకోవచ్చు</translation> <translation id="3921869355029467742">మీ సెక్యూరిటీ కోడ్ను ఎంటర్ చేయండి</translation> <translation id="3927932062596804919">తిరస్కరించు</translation> <translation id="393316646445601645">ఇంటర్నెట్ & టెలికామ్</translation> @@ -1190,6 +1204,7 @@ <translation id="3987940399970879459">1 MB కంటే తక్కువ</translation> <translation id="3990250421422698716">జోగ్ ఆఫ్సెట్</translation> <translation id="3992684624889376114">ఈ పేజీ గురించి</translation> +<translation id="399952081411886534">యాడ్లను మరింత ప్రైవేట్ చేసే ఇతర ఫీచర్లు</translation> <translation id="4006465311664329701">Google Payను ఉపయోగిస్తున్న పేమెంట్ ఆప్షన్లు, ఆఫర్లు, అడ్రస్లు</translation> <translation id="4009243425692662128">మీరు ప్రింట్ చేసిన పేజీల కంటెంట్, విశ్లేషణ కోసం Google Cloud లేదా థర్డ్-పార్టీలకు పంపబడుతుంది. ఉదాహరణకు, ఇది సున్నితమైన వ్యక్తిగత సమాచారం కోసం స్కాన్ చేయబడవచ్చు.</translation> <translation id="4010758435855888356">స్టోరేజ్ను యాక్సెస్ చేయడానికి అనుమతించాలా?</translation> @@ -1207,6 +1222,7 @@ <translation id="4063924980214801036">కార్డ్లను వేగంగా నిర్ధారించడానికి పరికర అన్లాక్ను ఉపయోగించండి</translation> <translation id="4067098466788473230">విద్యా గ్రాంట్లు & స్కాలర్షిప్లు</translation> <translation id="4067947977115446013">చెల్లుబాటు అయ్యే అడ్రస్ను జోడించండి</translation> +<translation id="4070790659619547722">యాడ్ల అంచనాతో, రోజులో యాడ్ మీకు కనిపించిన సమయం వంటి పరిమిత రకాల డేటాను సైట్ల మధ్య షేర్ చేయడం ద్వారా, వాటిలో యాడ్ల పనితీరును అంచనా వేయవచ్చు.</translation> <translation id="4072193657607981494">పాలసీలను లోడ్ చేస్తోంది</translation> <translation id="4072486802667267160">మీ ఆర్డర్ను ప్రాసెస్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="4073376909608563327">పరికర లాక్ను ఉపయోగించడం సాధ్యపడలేదు</translation> @@ -1259,6 +1275,7 @@ <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{మరో <ph name="ITEM_COUNT" /> అంశం}other{మరో <ph name="ITEM_COUNT" /> అంశాలు}}</translation> <translation id="4176463684765177261">ఆపివేయబడింది</translation> <translation id="4176535426287761656">టైమ్షేర్లు & వెకేషన్ ప్రాపర్టీలు</translation> +<translation id="4177501066905053472">యాడ్ టాపిక్లు</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> <translation id="4186035307311647330">ధరను అన్ట్రాక్ చేయండి</translation> <translation id="4194250254487269611">మీ కార్డ్ను ప్రస్తుతం సేవ్ చేయలేము</translation> @@ -1314,6 +1331,7 @@ <translation id="4282346679996504092">ఈ ప్రోడక్ట్కి సంబంధించిన హెచ్చరికలు ఆఫ్ చేయబడ్డాయి, బుక్మార్క్ తీసివేయబడింది</translation> <translation id="4285498937028063278">అన్పిన్ చేయి</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{ఈ కార్డ్ మీ Google ఖాతాలో సేవ్ చేయబడింది}other{ఈ కార్డ్లు మీ Google ఖాతాలో సేవ్ చేయబడ్డాయి}}</translation> +<translation id="4287495839370498922">Chromeలో, మెరుగుపరిచిన యాడ్ గోప్యత</translation> <translation id="4287885627794386150">ట్రయల్కు అర్హత పొందారు, కానీ యాక్టివ్లో లేదు</translation> <translation id="4297502707443874121"><ph name="THUMBNAIL_PAGE" /> పేజీ కోసం థంబ్నెయిల్</translation> <translation id="4298000214066716287">పెట్టుబడి</translation> @@ -1394,6 +1412,7 @@ <translation id="449126573531210296">సింక్ చేయబడిన పాస్వర్డ్లను మీ Google ఖాతాతో ఎన్క్రిప్ట్ చేయండి</translation> <translation id="4492519888999857993">ఈ ఫీచర్లు డిఫాల్ట్గా నిలిపివేయబడతాయి. Chrome రాబోయే వెర్షన్లలో ఇవి అందుబాటులో ఉండవు.</translation> <translation id="4493480324863638523">చెల్లని URL. URL తప్పనిసరిగా ఒక ప్రామాణిక స్కీమ్ను కలిగి ఉండాలి, ఉదా http://example.com లేదా https://example.com.</translation> +<translation id="4494323206460475851">సెట్టింగ్లలో మీరు యాడ్ టాపిక్లను చూడవచ్చు, సైట్లతో మీరు షేర్ చేయకూడదు అనుకునే వాటిని బ్లాక్ చేయవచ్చు. అలాగే 4 వారాల కంటే పాతవైన యాడ్ టాపిక్లను Chrome ఆటోమేటిక్గా తొలగిస్తుంది.</translation> <translation id="4500587658229086076">సురక్షితం కాని కంటెంట్</translation> <translation id="4506176782989081258">ధృవీకరణ ఎర్రర్: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">సిస్టమ్ నిర్వాహకుడిని సంప్రదించడం</translation> @@ -1464,6 +1483,7 @@ <translation id="467809019005607715">Google Slides</translation> <translation id="4682496302933121474">పేజీని అనువదించాలా?</translation> <translation id="468314109939257734">వర్చువల్ కార్డ్ నంబర్ను చూడండి</translation> +<translation id="4687718960473379118">సైట్ సూచించిన యాడ్లు</translation> <translation id="4692623383562244444">సెర్చ్ ఇంజిన్లు</translation> <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation> <translation id="4702504834785592287">పక్కన</translation> @@ -1745,6 +1765,7 @@ <translation id="5337569431717511221">Chromeను ఆటోమేటిక్ బ్రౌజర్గా సెట్ చేసే బటన్, Chromeను సిస్టమ్ ఆటోమేటిక్ బ్రౌజర్గా సెట్ చేయడానికి 'Enter'ను నొక్కండి</translation> <translation id="5340250774223869109">యాప్ బ్లాక్ చేయబడింది</translation> <translation id="534295439873310000">NFC పరికరాలు</translation> +<translation id="5344522958567249764">యాడ్ల గోప్యతను మేనేజ్ చేయండి</translation> <translation id="5344579389779391559">ఈ పేజీ మీకు డబ్బు ఛార్జీ చేయడానికి ప్రయత్నించవచ్చు</translation> <translation id="5347645913823149105">'Chromeలో ఫాంట్లను అనుకూలంగా మార్చండి' బటన్, Chromeలో ఫాంట్ సైజ్లను, టైప్ఫేస్లను అనుకూలంగా మార్చడానికి Enterను నొక్కండి</translation> <translation id="5355557959165512791"><ph name="SITE" /> యొక్క ప్రమాణపత్రం రద్దు చేయబడినందున మీరు ప్రస్తుతం దీన్ని సందర్శించలేరు. నెట్వర్క్ లోపాలు మరియు దాడులు సాధారణంగా తాత్కాలికమే, కనుక ఈ పేజీ తర్వాత పని చేయవచ్చు.</translation> @@ -1843,6 +1864,7 @@ <translation id="5598944008576757369">పేమెంట్ ఆప్షన్ను ఎంచుకోండి</translation> <translation id="560412284261940334">నిర్వహణకు మద్దతు లేదు</translation> <translation id="5605670050355397069">లెడ్జర్</translation> +<translation id="5606444889871204172"><ph name="BEGIN_BOLD" />మీ డేటాను మీరు ఎలా మేనేజ్ చేయగలరు:<ph name="END_BOLD" /> 4 వారాల కంటే పాతవైన సైట్లను Chrome ఆటోమేటిక్గా తొలగిస్తుంది. మీరు మళ్లీ చూసే సైట్, లిస్ట్లో మళ్లీ కనిపించవచ్చు. మీకు యాడ్లను సూచించకుండా సైట్ను మీరు బ్లాక్ కూడా చేయవచ్చు, సైట్ సూచించే యాడ్లను ఎప్పుడైనా Chrome సెట్టింగ్లలో ఆఫ్ చేయవచ్చు.</translation> <translation id="5610142619324316209">కనెక్షన్ను చెక్ చేయడం</translation> <translation id="5610807607761827392">మీరు కార్డ్లు మరియు అడ్రస్లను <ph name="BEGIN_LINK" />సెట్టింగ్ల<ph name="END_LINK" />లో నిర్వహించగలరు.</translation> <translation id="561165882404867731">Google Translateతో ఈ పేజీని అనువదించండి</translation> @@ -1981,6 +2003,7 @@ <translation id="598637245381783098">చెల్లింపు యాప్ను తెరవడం సాధ్యం కాదు</translation> <translation id="5989320800837274978">స్థిర ప్రాక్సీ సర్వర్లు లేదా ఒక .pac స్క్రిప్ట్ URL పేర్కొనబడలేదు.</translation> <translation id="5992691462791905444">ఇంజినీరింగ్ 'Z' ఫోల్డ్</translation> +<translation id="5992805036496113940">మీకు యాడ్లను చూపడం కోసం వినియోగించబడే సమాచారాన్ని చూడండి</translation> <translation id="5995727681868049093">మీ Google ఖాతాలో మీ సమాచారం, గోప్యత, ఇంకా భద్రతను మేనేజ్ చేయండి</translation> <translation id="5997247540087773573">మీరు ఇప్పుడే ఉపయోగించిన పాస్వర్డ్, డేటా ఉల్లంఘనలో కనగొనబడింది. మీ ఖాతాలను సురక్షితం చేయడానికి, దానిని ఇప్పుడే మార్చి, మీరు సేవ్ చేసిన పాస్వర్డ్లను చెక్ చేయమని Google Password Manager సిఫార్సు చేస్తోంది.</translation> <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' అనే దానికి <ph name="RESULT_COUNT" /> ఫలితాలు లభించాయి</translation> @@ -2017,6 +2040,7 @@ <translation id="6051221802930200923">సర్టిఫికెట్ను పిన్ చేసే పద్ధతిని వెబ్సైట్ ఉపయోగిస్తుంది. కనుక మీరు ప్రస్తుతానికి <ph name="SITE" />ను సందర్శించలేరు. నెట్వర్క్ ఎర్రర్లు మరియు దాడులు సాధారణంగా తాత్కాలికమే, కనుక ఈ పేజీ తర్వాత పని చేయవచ్చు.</translation> <translation id="6051898664905071243">పేజీల సంఖ్య:</translation> <translation id="6052284303005792909">•</translation> +<translation id="6053735090575989697">మీ డేటాను Google మా గోప్యతా పాలసీ ఆధారంగా ఎలా సురక్షిస్తుందో మరింత తెలుసుకోండి.</translation> <translation id="6055888660316801977">సురక్షితమైన పేమెంట్ ఆధారానికి సంబంధించిన మ్యాచ్ అయ్యే ఆధారాల షీట్ ఏదీ లేదు</translation> <translation id="6058977677006700226">మీ కార్డ్లను మీ అన్ని పరికరాలలో ఉపయోగించాలా?</translation> <translation id="6059925163896151826">USB పరికరాలు</translation> @@ -2065,6 +2089,7 @@ <translation id="6196640612572343990">థర్డ్ పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> <translation id="6197648101609735209">89 x 89 మి.మీ.</translation> <translation id="6203231073485539293">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేయండి</translation> +<translation id="6205314730813004066">యాడ్ల గోప్యత</translation> <translation id="6212314149070368045">US ఫ్యాన్ఫోల్డ్</translation> <translation id="6218753634732582820">Chromium నుండి అడ్రస్ను తీసివేయాలా?</translation> <translation id="622039917539443112">పారలల్ ఫోల్డ్</translation> @@ -2155,6 +2180,7 @@ <translation id="6429267199680088961">A4 ట్యాబ్</translation> <translation id="643051589346665201">Google పాస్వర్డ్ను మార్చండి</translation> <translation id="6431119592588449664">రిపోర్ట్ అప్లోడ్ చేయబడింది</translation> +<translation id="6432297414176614592">యాడ్ టాపిక్ల గురించి మరింత సమాచారం</translation> <translation id="6433490469411711332">సంప్రదింపు సమాచారాన్ని ఎడిట్ చేయండి</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> కనెక్ట్ కావడానికి నిరాకరించింది.</translation> <translation id="6433797564277305076">ఇప్పటి నుండి, పరికర అన్లాక్ను ఉపయోగించడం ద్వారా మీ కార్డ్లను వేగంగా నిర్ధారించండి</translation> @@ -2175,6 +2201,7 @@ <translation id="646793340882508547">అడ్వెంచర్ గేమ్లు</translation> <translation id="6468485451923838994">ఫాంట్లు</translation> <translation id="647261751007945333">పరికర విధానాలు</translation> +<translation id="6475672344094591109">సైట్లు, వాటి యాడ్ల పనితీరును అంచనా వేయడంలో సహాయపడే సమాచారాన్ని, మీరు వాటిని చూసినప్పుడు, అవి Chromeను అడగవచ్చు. సైట్లు ఒక దానితో మరొకటి షేర్ చేసుకునే సమాచారాన్ని పరిమితం చేయడం ద్వారా Chrome మీ గోప్యతను రక్షిస్తుంది.</translation> <translation id="6476284679642588870">పేమెంట్ ఆప్షన్లను నిర్వహించండి</translation> <translation id="6486200200930923183">డాక్యుమెంటరీ సినిమాలు</translation> <translation id="6489534406876378309">క్రాష్లను అప్లోడ్ చేయడాన్ని ప్రారంభించండి</translation> @@ -2278,6 +2305,7 @@ <translation id="6786145470008421571">6 x 9 అంగుళాల ఎన్వలప్</translation> <translation id="67862343314499040">నీలి ఊదా రంగు</translation> <translation id="6786747875388722282">ఎక్స్టెన్షన్లు</translation> +<translation id="6787094689637422836">మీకు కనిపించే యాడ్ల విషయంలో ఎంచుకోవడానికి మరిన్ని ఆప్షన్లు అందించే కొత్త గోప్యతా ఫీచర్లను మేము లాంచ్ చేయనున్నాము.</translation> <translation id="678982761784843853">సురక్షితమైన కంటెంట్ IDలు</translation> <translation id="6790428901817661496">ప్లే చేయి</translation> <translation id="679355240208270552">విధానం ప్రకారం డిఫాల్ట్ శోధన ప్రారంభించబడలేదు కాబట్టి, ఇది విస్మరించబడింది.</translation> @@ -2578,6 +2606,7 @@ <translation id="7507075214339298899">ఎన్వలప్ #9</translation> <translation id="7508255263130623398">అందించబడిన విధాన పరికర id ఖాళీగా ఉంది లేదా ప్రస్తుత పరికర idకి సరిపోలలేదు</translation> <translation id="7508870219247277067">వెన్నపండు ఆకుపచ్చ</translation> +<translation id="7510225383966760306"><ph name="BEGIN_BOLD" />సైట్లు ఈ డేటాను ఎలా ఉపయోగిస్తాయి:<ph name="END_BOLD" /> మీకు నచ్చిన విషయాలకు సంబంధించిన సమాచారాన్ని సైట్లు Chromeతో స్టోర్ చేయగలవు. ఉదాహరణకు, మారథాన్ శిక్షణకు సంబంధించిన సైట్ను మీరు చూస్తే, రన్నింగ్ షూస్పై మీకు ఆసక్తి ఉందని సైట్ నిర్ణయించవచ్చు. తర్వాత, మీరు వేరే సైట్ను చూసినప్పుడు, మొదటి సైట్ సూచించిన రన్నింగ్ షూస్ యాడ్ను ఈ సైట్ చూపించవచ్చు.</translation> <translation id="7510269639068718544">పిల్లులు</translation> <translation id="7511955381719512146">మీరు ఉపయోగిస్తున్న Wi-Fiకు మీరు<ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />ను సందర్శించడం అవసరం.</translation> <translation id="7512685745044087310">ఈ పాలసీని "ఒప్పు", 'తప్పనిసరి'కి సెట్ చేయడం సాధ్యం కాదు, కాబట్టి దీన్ని 'సిఫార్సు చేయబడింది'కి మార్చాము.</translation> @@ -2706,11 +2735,13 @@ <translation id="7766518757692125295">స్కర్ట్</translation> <translation id="7773005668374414287">ఒకే క్రమంలో ఉన్న ఫేస్ అప్</translation> <translation id="7785790577395078482">ఈ టాబ్లెట్</translation> +<translation id="7790488044432570133">సైట్లు, వాటి యాడ్ల పనితీరును అంచనా వేయడంలో సహాయపడటానికి, మీరు వాటిని చూసినప్పుడు, సమాచారం కోసం అవి Chromeను అడగవచ్చు. రోజులో యాడ్ మీకు కనిపించిన సమయం వంటి పరిమిత రకాల డేటాను కలెక్ట్ చేయడానికి Chrome సైట్లను అనుమతిస్తుంది.</translation> <translation id="7791011319128895129">రిలీజ్ కానివి</translation> <translation id="7791196057686275387">బండిల్</translation> <translation id="7791543448312431591">జోడించండి</translation> <translation id="7798389633136518089">ఈ పాలసీ, క్లౌడ్ సోర్స్ ద్వారా సెట్ చేయబడనందున విస్మరించబడింది.</translation> <translation id="7800304661137206267"><ph name="KX" />ను కీ మార్పిడి విధానం లాగా మరియు సందేశ ప్రామాణీకరణ కోసం <ph name="CIPHER" />ను <ph name="MAC" />తో ఉపయోగించడం ద్వారా కనెక్షన్ ఎన్క్రిప్ట్ చేయబడింది.</translation> +<translation id="7800977246388195491">మీ తాజా బ్రౌజింగ్ హిస్టరీ ఆధారంగా ఆసక్తి ఉన్న టాపిక్లను Chrome నోట్ చేస్తుంది. అలాగే మీరు చూసే సైట్లు, మీకు ఏం నచ్చుతాయో నిర్ణయించగలవు. మీకు వ్యక్తిగతీకరించిన యాడ్లను చూపడం కోసం, తర్వాత, మీరు చూసే సైట్లు ఈ సమాచారాన్ని అడగవచ్చు. మీకు యాడ్లను చూపడం కోసం ఏ టాపిక్లు, సైట్లను ఉపయోగించాలో మీరు ఎంచుకోవచ్చు.</translation> <translation id="7802523362929240268">సైట్ చట్టబద్ధమైనది</translation> <translation id="7802989406998618639"><ph name="SIDE_OF_CARD" /> ఉన్న <ph name="NUMBER_OF_DIGITS" /> అంకెల సెక్యూరిటీ కోడ్ను ఎంటర్ చేయండి, తద్వారా ఇది మీరేనని మీ బ్యాంక్ వెరిఫై చేస్తుంది</translation> <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation> @@ -2992,6 +3023,7 @@ <translation id="8533619373899488139">బ్లాక్ చేయబడి ఉన్న URLల లిస్ట్ను, మీ సిస్టమ్ అడ్మినిస్ట్రేటర్ ద్వారా అమలు చేయబడిన ఇతర పాలసీలను చూడటానికి <strong>chrome://policy</strong>ని సందర్శించండి.</translation> <translation id="8539500321752640291">2 అనుమతులను ఇవ్వాలా?</translation> <translation id="8541158209346794904">బ్లూటూత్ పరికరం</translation> +<translation id="8541410041357371550">మీకు మరింత సందర్భోచితమైన యాడ్లను చూపడానికి ఈ సైట్ మీ యాడ్ టాపిక్లను Chrome నుండి పొందుతుంది</translation> <translation id="8542014550340843547">దిగువ భాగంలో ట్రిపుల్ స్టేపుల్</translation> <translation id="8542617028204211143">SRA0</translation> <translation id="8543181531796978784">మీరు <ph name="BEGIN_ERROR_LINK" />గుర్తింపు సమస్యను నివేదించవచ్చు<ph name="END_ERROR_LINK" /> లేదా మీకు మీ భద్రతకు పొంచి ఉన్న ప్రమాదాలు అర్థం అయ్యి ఉంటే, మ<ph name="BEGIN_LINK" />ఈ అసురక్షిత సైట్ను సందర్శించండి<ph name="END_LINK" />.</translation> @@ -3010,7 +3042,9 @@ <translation id="8589998999637048520">ఉత్తమ క్వాలిటీ</translation> <translation id="8600271352425265729">ఈ ఒక్కసారి మాత్రమే</translation> <translation id="860043288473659153">కార్డుదారుని పేరు</translation> +<translation id="8601027005147870853"><ph name="BEGIN_BOLD" />ఏ డేటాను ఉపయోగిస్తారు:<ph name="END_BOLD" /> ఈ పరికరంలో Chromeను ఉపయోగించి మీరు చూసిన సైట్లోని యాక్టివిటీ.</translation> <translation id="8606726445206553943">మీ MIDI పరికరాలను ఉపయోగించాలనుకుంటోంది</translation> +<translation id="8606988009912891950">యాడ్ టాపిక్లు మీ బ్రౌజింగ్ హిస్టరీ, గుర్తింపును రక్షిస్తూనే, మీకు సంబంధిత యాడ్లను చూపడంలో సహాయపడతాయి. మీ తాజా బ్రౌజింగ్ హిస్టరీ ఆధారంగా ఆసక్తి ఉన్న టాపిక్లను Chrome నోట్ చేయగలదు. మీకు కనిపించే యాడ్లను వ్యక్తిగతీకరించడానికి, తర్వాత, మీరు చూసే సైట్ Chromeను సంబంధిత టాపిక్ల కోసం అడగవచ్చు.</translation> <translation id="8617269623452051934">మీ పరికర వినియోగం</translation> <translation id="861775596732816396">సైజ్ 4</translation> <translation id="8620276786115098679">ఎన్వలప్ కాకు 7</translation> @@ -3116,6 +3150,7 @@ <translation id="8876033571432926051">సరదా గేమ్లు</translation> <translation id="8877780815363510165">చేపలు పట్టడం</translation> <translation id="8884537526797090108">గోప్యమైన కంటెంట్ను రికార్డ్ చేయడం సాధ్యం కాదు</translation> +<translation id="8890798179125483517">4 వారాల కంటే పాతవైన టాపిక్లను, యాడ్లను సూచించే సైట్లను Chrome ఆటోమేటిక్గా తొలగిస్తుంది. లేదా మీకు నచ్చని నిర్ధిష్టమైన టాపిక్లు, సైట్లను మీరు బ్లాక్ చేయవచ్చు.</translation> <translation id="8891727572606052622">చెల్లని ప్రాక్సీ మోడ్.</translation> <translation id="8894794286471754040">పేజీని సాధారణంగా ప్రింట్ చేయి</translation> <translation id="8897428486789851669">ఈత</translation> @@ -3203,6 +3238,7 @@ <translation id="91108059142052966">గోప్యమైన కంటెంట్ కనిపించినప్పుడు <ph name="APPLICATION_TITLE" />తో స్క్రీన్ షేర్ చేయడాన్ని అడ్మినిస్ట్రేటర్ పాలసీ డిజేబుల్ చేస్తుంది</translation> <translation id="9114524666733003316">కార్డ్ నిర్ధారించబడుతోంది...</translation> <translation id="9114581008513152754">ఈ బ్రౌజర్ ఒక కంపెనీ లేదా ఇతర సంస్థ ద్వారా మేనేజ్ చేయబడదు. ఈ పరికరంలోని యాక్టివిటీని Chrome వెలుపల మేనేజ్ చేస్తుండవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> +<translation id="9116548361133462832">Chromeలో యాడ్లకు సంబంధించిన మరింత సమాచారం</translation> <translation id="9117930699067497412">తాజా</translation> <translation id="9118692854637641831"><ph name="HISTORY_CLUSTERS_SEARCH_FOCUSED_FRIENDLY_MATCH_TEXT" />, వెతకడాన్ని కొనసాగించడానికి 'Tab'ను నొక్కి, తర్వాత 'Enter'ను నొక్కండి, మీ Chrome హిస్టరీలో సందర్భోచితమైన యాక్టివిటీని చూడండి</translation> <translation id="9119042192571987207">అప్లోడ్ చేయబడింది</translation> @@ -3226,6 +3262,8 @@ <translation id="9155211586651734179">ఆడియో పెరిఫెరల్స్ జోడించబడ్డాయి</translation> <translation id="9157595877708044936">అమర్చుతోంది...</translation> <translation id="9164742147345933553">os://flags</translation> +<translation id="9165305804774426672">మీరు చూసే సైట్లు, సైట్లోని మీ యాక్టివిటీ ఆధారంగా మీకు ఏం నచ్చుతాయో కూడా నిర్ణయించగలవు. ఉదాహరణకు, ఎక్కువ దూరం నడవడానికి ఉపయోగించే రన్నింగ్ షూస్ అమ్మే సైట్ను మీరు చూస్తే, మారథాన్లలో రన్నింగ్ చేయడంపై మీకు ఆసక్తి ఉందని సైట్ నిర్ణయించవచ్చు.</translation> +<translation id="9166851138617700776">సైట్ సూచించిన యాడ్లు, యాడ్ల అంచనా గురించి మరింత సమాచారం</translation> <translation id="9168814207360376865">ఏవైనా పేమెంట్ ఆప్షన్లను మీరు సేవ్ చేశారో లేదో చెక్ చేసేందుకు వెబ్సైట్లను అనుమతించండి</translation> <translation id="9169664750068251925">ఈ సైట్లో ఎప్పుడూ బ్లాక్ చేయండి</translation> <translation id="9169931577761441333"><ph name="APP_NAME" />ను హోమ్ స్క్రీన్కు జోడించండి</translation> @@ -3270,6 +3308,7 @@ <translation id="975560348586398090">{COUNT,plural, =0{ఏమీ లేవు}=1{1 అంశం}other{# అంశాలు}}</translation> <translation id="976522784004777030">5 x 8 అంగుళాలు</translation> <translation id="977502174772294970">వివాహాలు</translation> +<translation id="979503328401807348">మరింత ఉపయోగకరమైన యాడ్లు</translation> <translation id="981121421437150478">ఆఫ్లైన్</translation> <translation id="982885543310356857">క్లాసిక్ వాహనాలు</translation> <translation id="984275831282074731">పేమెంట్ ఆప్షన్లు</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index b82fd2b..6872fb299 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">วิทยาศาสตร์</translation> <translation id="3875783148670536197">แสดงวิธีการ</translation> <translation id="3881478300875776315">แสดงบรรทัดน้อยลง</translation> +<translation id="3883500545751229739">โฆษณาที่รบกวน</translation> <translation id="3884278016824448484">ตัวชี้อุปกรณ์ขัดแย้งกัน</translation> <translation id="388632593194507180">ตรวจพบการตรวจสอบ</translation> <translation id="3886948180919384617">สแต็กเกอร์ 3</translation> @@ -3117,6 +3118,7 @@ <translation id="8891727572606052622">โหมดพร็อกซีไม่ถูกต้อง</translation> <translation id="8894794286471754040">ด้านขอบยาวก่อน</translation> <translation id="8897428486789851669">ว่ายน้ำ</translation> +<translation id="8899807382908246773">โฆษณาที่รบกวน</translation> <translation id="8903921497873541725">ขยาย</translation> <translation id="890493561996401738">ปุ่ม "นำคำแนะนำออก" กด Enter เพื่อนำออก <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">บัญชี Google</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index b0460753..19a2d1d 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -1153,6 +1153,7 @@ <translation id="3872834068356954457">Bilim</translation> <translation id="3875783148670536197">Nasıl Yapıldığını Göster</translation> <translation id="3881478300875776315">Daha az satır göster</translation> +<translation id="3883500545751229739">araya giren reklamlar</translation> <translation id="3884278016824448484">Çakışan cihaz tanımlayıcısı</translation> <translation id="388632593194507180">İzleme Tespit Edildi</translation> <translation id="3886948180919384617">Yığınlayıcı 3</translation> @@ -3118,6 +3119,7 @@ <translation id="8891727572606052622">Geçersiz proxy modu.</translation> <translation id="8894794286471754040">Önce uzun kenar</translation> <translation id="8897428486789851669">Yüzme</translation> +<translation id="8899807382908246773">Araya giren reklamlar</translation> <translation id="8903921497873541725">Yakınlaştır</translation> <translation id="890493561996401738">Öneriyi Kaldır düğmesi, kaldırmak için Enter tuşuna basın, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8912362522468806198">Google Hesabı</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 95d85f7..107a0db 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -1149,6 +1149,7 @@ <translation id="3872834068356954457">科学</translation> <translation id="3875783148670536197">操作步骤</translation> <translation id="3881478300875776315">隐藏部分行</translation> +<translation id="3883500545751229739">侵扰性广告</translation> <translation id="3884278016824448484">设备标识符存在冲突</translation> <translation id="388632593194507180">检测到正被监控</translation> <translation id="3886948180919384617">堆叠出纸器 3</translation> @@ -3113,6 +3114,7 @@ <translation id="8891727572606052622">代理模式无效。</translation> <translation id="8894794286471754040">长边先入</translation> <translation id="8897428486789851669">游泳</translation> +<translation id="8899807382908246773">侵扰性广告</translation> <translation id="8903921497873541725">放大</translation> <translation id="890493561996401738">“移除建议”按钮,按 Enter 键即可移除“<ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />”</translation> <translation id="8912362522468806198">Google 帐号</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index 25e86203..6aa4991 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">科學</translation> <translation id="3875783148670536197">顯示方法</translation> <translation id="3881478300875776315">顯示較少行</translation> +<translation id="3883500545751229739">滋擾性廣告</translation> <translation id="3884278016824448484">裝置識別碼發生衝突</translation> <translation id="388632593194507180">偵測到監控</translation> <translation id="3886948180919384617">堆疊器 3</translation> @@ -3116,6 +3117,7 @@ <translation id="8891727572606052622">Proxy 模式無效。</translation> <translation id="8894794286471754040">先從長邊開始</translation> <translation id="8897428486789851669">游泳</translation> +<translation id="8899807382908246773">滋擾性廣告</translation> <translation id="8903921497873541725">放大</translation> <translation id="890493561996401738">移除建議按鈕,㩒一下 Enter 鍵就可以移除「<ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />」</translation> <translation id="8912362522468806198">Google 帳戶</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index c32f171..a05819f 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -1152,6 +1152,7 @@ <translation id="3872834068356954457">科學</translation> <translation id="3875783148670536197">顯示操作說明</translation> <translation id="3881478300875776315">顯示較少行</translation> +<translation id="3883500545751229739">侵入式廣告</translation> <translation id="3884278016824448484">裝置 ID 發生衝突</translation> <translation id="388632593194507180">偵測到你正遭到監控</translation> <translation id="3886948180919384617">堆疊出紙器 3</translation> @@ -3116,6 +3117,7 @@ <translation id="8891727572606052622">Proxy 模式無效。</translation> <translation id="8894794286471754040">先從長邊開始</translation> <translation id="8897428486789851669">游泳</translation> +<translation id="8899807382908246773">侵入式廣告</translation> <translation id="8903921497873541725">放大</translation> <translation id="890493561996401738">移除建議按鈕,按一下 Enter 鍵即可移除「<ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />」</translation> <translation id="8912362522468806198">Google 帳戶</translation>
diff --git a/components/sync/protocol/password_specifics.proto b/components/sync/protocol/password_specifics.proto index dbc3dd86..8a777dc 100644 --- a/components/sync/protocol/password_specifics.proto +++ b/components/sync/protocol/password_specifics.proto
@@ -199,8 +199,8 @@ // kImported(4), the credential was imported using the import flow. optional int32 type = 13; - // Number of times this login was used for logging in. Chrome uses this field - // to distinguish log-in and sign-up forms. + // Number of times this login was used for logging in using an HTML form. + // Chrome uses this field to distinguish log-in and sign-up forms. optional int32 times_used = 14; // A human readable name of the account holder. Set by CredentialManager API
diff --git a/components/translate/ios/browser/translate_controller.mm b/components/translate/ios/browser/translate_controller.mm index c0ede8a..7823ae8 100644 --- a/components/translate/ios/browser/translate_controller.mm +++ b/components/translate/ios/browser/translate_controller.mm
@@ -338,7 +338,7 @@ web::WebFramesManager* web_frames_manager, const std::string frame_id) { DCHECK_EQ(web_state_->GetWebFramesManager(), web_frames_manager); - if (web_frames_manager->GetMainWebFrame() == main_web_frame_) { + if (web_frames_manager->GetFrameWithId(frame_id) == main_web_frame_) { main_web_frame_ = nullptr; } }
diff --git a/components/webapps/browser/android/java/src/org/chromium/components/webapps/AddToHomescreenDialogView.java b/components/webapps/browser/android/java/src/org/chromium/components/webapps/AddToHomescreenDialogView.java index e06ea82..1c4df36 100644 --- a/components/webapps/browser/android/java/src/org/chromium/components/webapps/AddToHomescreenDialogView.java +++ b/components/webapps/browser/android/java/src/org/chromium/components/webapps/AddToHomescreenDialogView.java
@@ -130,7 +130,7 @@ .with(ModalDialogProperties.CUSTOM_VIEW, mParentView) .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true) .build(); - mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.APP); + mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.TAB); } // @VisibleForTests implies that a method should only be accessed from tests or within private
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index f72f60e..8b9bc2b1 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1550,6 +1550,8 @@ "renderer_host/back_forward_cache_metrics.h", "renderer_host/blocked_scheme_navigation_throttle.cc", "renderer_host/blocked_scheme_navigation_throttle.h", + "renderer_host/browsing_context_group_swap.cc", + "renderer_host/browsing_context_group_swap.h", "renderer_host/browsing_context_state.cc", "renderer_host/browsing_context_state.h", "renderer_host/clipboard_host_impl.cc",
diff --git a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc index 355b6b174..9156d3c 100644 --- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc +++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
@@ -2509,7 +2509,7 @@ EXPECT_EQ(RenderFrameDevToolsAgentHost::GetFor(child), main_frame_agent); // Resume navigation. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // Target for OOPIF should get attached. auto notification = WaitForNotification("Target.attachedToTarget", true);
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc index ac4a5f15..e8800a36 100644 --- a/content/browser/download/download_browsertest.cc +++ b/content/browser/download/download_browsertest.cc
@@ -1525,7 +1525,7 @@ TestNavigationManager navigation(shell()->web_contents(), url); EXPECT_EQ(url.spec(), EvalJs(rfh, JsReplace(kNavigateInFencedFrameScript, url))); - navigation.WaitForNavigationFinished(); + EXPECT_TRUE(navigation.WaitForNavigationFinished()); EXPECT_FALSE(target_node->current_frame_host()->IsErrorDocument()); return target_node->current_frame_host(); @@ -4196,8 +4196,8 @@ content::TestNavigationManager navigation_document(content, document_url); content::TestNavigationManager navigation_download(content, server_url); shell()->LoadURL(document_url); - navigation_document.WaitForNavigationFinished(); - navigation_download.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_document.WaitForNavigationFinished()); + ASSERT_TRUE(navigation_download.WaitForNavigationFinished()); EXPECT_TRUE(navigation_document.was_successful()); EXPECT_FALSE(navigation_download.was_successful());
diff --git a/content/browser/renderer_host/browsing_context_group_swap.cc b/content/browser/renderer_host/browsing_context_group_swap.cc new file mode 100644 index 0000000..2544731 --- /dev/null +++ b/content/browser/renderer_host/browsing_context_group_swap.cc
@@ -0,0 +1,83 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/browsing_context_group_swap.h" + +#include "base/memory/ptr_util.h" +#include "base/notreached.h" + +namespace content { + +BrowsingContextGroupSwap BrowsingContextGroupSwap::CreateDefault() { + return {BrowsingContextGroupSwapType::kNoSwap, absl::nullopt}; +} + +BrowsingContextGroupSwap BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance no_swap_reason) { + return {BrowsingContextGroupSwapType::kNoSwap, no_swap_reason}; +} + +BrowsingContextGroupSwap BrowsingContextGroupSwap::CreateCoopSwap() { + return {BrowsingContextGroupSwapType::kCoopSwap, + ShouldSwapBrowsingInstance::kYes_ForceSwap}; +} + +BrowsingContextGroupSwap BrowsingContextGroupSwap::CreateSecuritySwap() { + return {BrowsingContextGroupSwapType::kSecuritySwap, + ShouldSwapBrowsingInstance::kYes_ForceSwap}; +} + +BrowsingContextGroupSwap BrowsingContextGroupSwap::CreateProactiveSwap( + ShouldSwapBrowsingInstance should_swap_reason) { + return {BrowsingContextGroupSwapType::kProactiveSwap, should_swap_reason}; +} + +bool BrowsingContextGroupSwap::ShouldSwap() const { + switch (type_) { + case BrowsingContextGroupSwapType::kNoSwap: + return false; + + case BrowsingContextGroupSwapType::kCoopSwap: + case BrowsingContextGroupSwapType::kSecuritySwap: + case BrowsingContextGroupSwapType::kProactiveSwap: + return true; + } + NOTREACHED(); + return false; +} + +bool BrowsingContextGroupSwap::ShouldClearProxiesOnCommit() const { + switch (type_) { + case BrowsingContextGroupSwapType::kNoSwap: + case BrowsingContextGroupSwapType::kSecuritySwap: + case BrowsingContextGroupSwapType::kProactiveSwap: + return false; + + case BrowsingContextGroupSwapType::kCoopSwap: + return true; + } + NOTREACHED(); + return false; +} + +bool BrowsingContextGroupSwap::ShouldClearWindowName() const { + switch (type_) { + case BrowsingContextGroupSwapType::kNoSwap: + case BrowsingContextGroupSwapType::kSecuritySwap: + case BrowsingContextGroupSwapType::kProactiveSwap: + return false; + + case BrowsingContextGroupSwapType::kCoopSwap: + return true; + } + NOTREACHED(); + return false; +} + +BrowsingContextGroupSwap::BrowsingContextGroupSwap( + BrowsingContextGroupSwapType type, + const absl::optional<ShouldSwapBrowsingInstance>& reason) + : type_(type), reason_(reason) {} + +} // namespace content
diff --git a/content/browser/renderer_host/browsing_context_group_swap.h b/content/browser/renderer_host/browsing_context_group_swap.h new file mode 100644 index 0000000..e407897 --- /dev/null +++ b/content/browser/renderer_host/browsing_context_group_swap.h
@@ -0,0 +1,65 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_RENDERER_HOST_BROWSING_CONTEXT_GROUP_SWAP_H_ +#define CONTENT_BROWSER_RENDERER_HOST_BROWSING_CONTEXT_GROUP_SWAP_H_ + +#include "content/browser/renderer_host/should_swap_browsing_instance.h" +#include "content/common/content_export.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace content { + +// This enum describes the different type of decisions we can take regarding +// swapping BrowsingContext group during a navigation. +enum class BrowsingContextGroupSwapType { + // Used when no swap is required. + kNoSwap, + // Used for swaps forced by a non matching COOP policy. + kCoopSwap, + // Used for swaps forced by a non-COOP security reason. This could be a + // navigation from a WebUI page to a normal page for example. + kSecuritySwap, + // Used for swaps that occur when not strictly required, to support the + // BackForwardCache. + kProactiveSwap +}; + +// This class represents the decision taken regarding a BrowsingContext group +// swap. It is created via one of the static members depending on the actual +// case. The underlying consequences of that decision can be computed via +// simple getters. +class CONTENT_EXPORT BrowsingContextGroupSwap { + public: + static BrowsingContextGroupSwap CreateDefault(); + static BrowsingContextGroupSwap CreateNoSwap( + ShouldSwapBrowsingInstance reason); + static BrowsingContextGroupSwap CreateCoopSwap(); + static BrowsingContextGroupSwap CreateSecuritySwap(); + static BrowsingContextGroupSwap CreateProactiveSwap( + ShouldSwapBrowsingInstance reason); + + BrowsingContextGroupSwapType type() const { return type_; } + ShouldSwapBrowsingInstance reason() const { return reason_.value(); } + bool ShouldSwap() const; + bool ShouldClearProxiesOnCommit() const; + bool ShouldClearWindowName() const; + + private: + BrowsingContextGroupSwap( + BrowsingContextGroupSwapType type, + const absl::optional<ShouldSwapBrowsingInstance>& reason); + + // Describes the type of BrowsingContext group swap we've decided to make. + BrowsingContextGroupSwapType type_; + + // Describes the reason why we've taken that decision in terms understandable + // by the BackForwardCache metrics. This is null if created using the + // `CreateDefault()` method. + absl::optional<ShouldSwapBrowsingInstance> reason_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_RENDERER_HOST_BROWSING_CONTEXT_GROUP_SWAP_H_
diff --git a/content/browser/renderer_host/browsing_context_group_swap_browsertest.cc b/content/browser/renderer_host/browsing_context_group_swap_browsertest.cc new file mode 100644 index 0000000..f3bd1fa --- /dev/null +++ b/content/browser/renderer_host/browsing_context_group_swap_browsertest.cc
@@ -0,0 +1,168 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/browsing_context_group_swap.h" + +#include "base/test/scoped_feature_list.h" +#include "content/browser/renderer_host/navigation_request.h" +#include "content/public/browser/web_contents_observer.h" +#include "content/public/common/content_features.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" +#include "content/public/test/content_browser_test.h" +#include "content/public/test/content_browser_test_utils.h" +#include "content/public/test/content_mock_cert_verifier.h" +#include "content/shell/browser/shell.h" +#include "content/test/render_document_feature.h" +#include "net/dns/mock_host_resolver.h" +#include "net/test/embedded_test_server/default_handlers.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace content { + +namespace { + +class BrowsingContextGroupSwapBrowserTest + : public ContentBrowserTest, + public ::testing::WithParamInterface<std::tuple<std::string, bool>> { + public: + BrowsingContextGroupSwapBrowserTest() + : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) { + // Enable RenderDocument: + InitAndEnableRenderDocumentFeature(&feature_list_for_render_document_, + std::get<0>(GetParam())); + // Enable BackForwardCache: + if (IsBackForwardCacheEnabled()) { + feature_list_for_back_forward_cache_.InitWithFeaturesAndParameters( + {{features::kBackForwardCache, + {{"TimeToLiveInBackForwardCacheInSeconds", "3600"}}}}, + // Allow BackForwardCache for all devices regardless of their memory. + {features::kBackForwardCacheMemoryControls}); + } else { + feature_list_for_back_forward_cache_.InitWithFeatures( + {}, {features::kBackForwardCache}); + } + } + + // Provides meaningful param names instead of /0, /1, ... + static std::string DescribeParams( + const testing::TestParamInfo<ParamType>& info) { + auto [render_document_level, enable_back_forward_cache] = info.param; + return base::StringPrintf( + "%s_%s", + GetRenderDocumentLevelNameForTestParams(render_document_level).c_str(), + enable_back_forward_cache ? "BFCacheEnabled" : "BFCacheDisabled"); + } + + bool IsBackForwardCacheEnabled() { return std::get<1>(GetParam()); } + + net::EmbeddedTestServer* https_server() { return &https_server_; } + + protected: + void SetUpOnMainThread() override { + ContentBrowserTest::SetUpOnMainThread(); + mock_cert_verifier_.mock_cert_verifier()->set_default_result(net::OK); + host_resolver()->AddRule("*", "127.0.0.1"); + https_server()->ServeFilesFromSourceDirectory(GetTestDataFilePath()); + SetupCrossSiteRedirector(https_server()); + net::test_server::RegisterDefaultHandlers(&https_server_); + ASSERT_TRUE(https_server()->Start()); + } + + private: + void SetUpCommandLine(base::CommandLine* command_line) override { + ContentBrowserTest::SetUpCommandLine(command_line); + mock_cert_verifier_.SetUpCommandLine(command_line); + } + + void SetUpInProcessBrowserTestFixture() override { + ContentBrowserTest::SetUpInProcessBrowserTestFixture(); + mock_cert_verifier_.SetUpInProcessBrowserTestFixture(); + } + + void TearDownInProcessBrowserTestFixture() override { + ContentBrowserTest::TearDownInProcessBrowserTestFixture(); + mock_cert_verifier_.TearDownInProcessBrowserTestFixture(); + } + + content::ContentMockCertVerifier mock_cert_verifier_; + base::test::ScopedFeatureList feature_list_for_render_document_; + base::test::ScopedFeatureList feature_list_for_back_forward_cache_; + net::EmbeddedTestServer https_server_; +}; + +class BrowsingContextGroupSwapObserver : public WebContentsObserver { + public: + explicit BrowsingContextGroupSwapObserver(WebContents* web_contents) + : WebContentsObserver(web_contents), latest_swap_(absl::nullopt) {} + + void DidFinishNavigation(NavigationHandle* navigation_handle) override { + latest_swap_ = NavigationRequest::From(navigation_handle) + ->browsing_context_group_swap(); + } + + BrowsingContextGroupSwap GetLatestBrowsingContextGroupSwap() { + return latest_swap_.value(); + } + + private: + absl::optional<BrowsingContextGroupSwap> latest_swap_; +}; + +IN_PROC_BROWSER_TEST_P(BrowsingContextGroupSwapBrowserTest, Basic_Navigation) { + GURL regular_page_1(https_server()->GetURL("a.test", "/title1.html")); + GURL regular_page_2(https_server()->GetURL("a.test", "/title2.html")); + + BrowsingContextGroupSwapObserver swap_observer(shell()->web_contents()); + ASSERT_TRUE(NavigateToURL(shell(), regular_page_1)); + ASSERT_TRUE(NavigateToURL(shell(), regular_page_2)); + + BrowsingContextGroupSwap observed_swap = + swap_observer.GetLatestBrowsingContextGroupSwap(); + EXPECT_EQ(observed_swap.type(), + IsBackForwardCacheEnabled() + ? BrowsingContextGroupSwapType::kProactiveSwap + : BrowsingContextGroupSwapType::kNoSwap); +} + +IN_PROC_BROWSER_TEST_P(BrowsingContextGroupSwapBrowserTest, Coop_Navigation) { + GURL regular_page(https_server()->GetURL("a.test", "/title1.html")); + GURL coop_page(https_server()->GetURL( + "a.test", "/set-header?Cross-Origin-Opener-Policy: same-origin")); + + BrowsingContextGroupSwapObserver swap_observer(shell()->web_contents()); + ASSERT_TRUE(NavigateToURL(shell(), regular_page)); + ASSERT_TRUE(NavigateToURL(shell(), coop_page)); + + BrowsingContextGroupSwap observed_swap = + swap_observer.GetLatestBrowsingContextGroupSwap(); + EXPECT_EQ(observed_swap.type(), BrowsingContextGroupSwapType::kCoopSwap); +} + +IN_PROC_BROWSER_TEST_P(BrowsingContextGroupSwapBrowserTest, + Security_Navigation) { + GURL regular_page(https_server()->GetURL("a.test", "/title1.html")); + GURL webui_page("chrome://ukm"); + + BrowsingContextGroupSwapObserver swap_observer(shell()->web_contents()); + ASSERT_TRUE(NavigateToURL(shell(), regular_page)); + ASSERT_TRUE(NavigateToURL(shell(), webui_page)); + + BrowsingContextGroupSwap observed_swap = + swap_observer.GetLatestBrowsingContextGroupSwap(); + EXPECT_EQ(observed_swap.type(), BrowsingContextGroupSwapType::kSecuritySwap); +} + +static auto kTestParams = + testing::Combine(testing::ValuesIn(RenderDocumentFeatureLevelValues()), + testing::Bool()); +INSTANTIATE_TEST_SUITE_P(All, + BrowsingContextGroupSwapBrowserTest, + kTestParams, + BrowsingContextGroupSwapBrowserTest::DescribeParams); + +} // namespace + +} // namespace content
diff --git a/content/browser/renderer_host/browsing_context_group_swap_unittest.cc b/content/browser/renderer_host/browsing_context_group_swap_unittest.cc new file mode 100644 index 0000000..e22c4af --- /dev/null +++ b/content/browser/renderer_host/browsing_context_group_swap_unittest.cc
@@ -0,0 +1,72 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/browsing_context_group_swap.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace content { + +namespace { + +TEST(BrowsingContextGroupSwap, CreateDefault) { + BrowsingContextGroupSwap default_swap = + BrowsingContextGroupSwap::CreateDefault(); + + EXPECT_EQ(BrowsingContextGroupSwapType::kNoSwap, default_swap.type()); + EXPECT_FALSE(default_swap.ShouldSwap()); + EXPECT_FALSE(default_swap.ShouldClearProxiesOnCommit()); + EXPECT_FALSE(default_swap.ShouldClearWindowName()); +} + +TEST(BrowsingContextGroupSwap, CreateNoSwap) { + BrowsingContextGroupSwap no_swap = BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_NotMainFrame); + + EXPECT_EQ(BrowsingContextGroupSwapType::kNoSwap, no_swap.type()); + EXPECT_FALSE(no_swap.ShouldSwap()); + EXPECT_FALSE(no_swap.ShouldClearProxiesOnCommit()); + EXPECT_FALSE(no_swap.ShouldClearWindowName()); + EXPECT_EQ(ShouldSwapBrowsingInstance::kNo_NotMainFrame, no_swap.reason()); +} + +TEST(BrowsingContextGroupSwap, CreateCoopSwap) { + BrowsingContextGroupSwap coop_swap = + BrowsingContextGroupSwap::CreateCoopSwap(); + + EXPECT_EQ(BrowsingContextGroupSwapType::kCoopSwap, coop_swap.type()); + EXPECT_TRUE(coop_swap.ShouldSwap()); + EXPECT_TRUE(coop_swap.ShouldClearProxiesOnCommit()); + EXPECT_TRUE(coop_swap.ShouldClearWindowName()); + EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_ForceSwap, coop_swap.reason()); +} + +TEST(BrowsingContextGroupSwap, CreateSecuritySwap) { + BrowsingContextGroupSwap security_swap = + BrowsingContextGroupSwap::CreateSecuritySwap(); + + EXPECT_EQ(BrowsingContextGroupSwapType::kSecuritySwap, security_swap.type()); + EXPECT_TRUE(security_swap.ShouldSwap()); + EXPECT_FALSE(security_swap.ShouldClearProxiesOnCommit()); + EXPECT_FALSE(security_swap.ShouldClearWindowName()); + EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_ForceSwap, security_swap.reason()); +} + +TEST(BrowsingContextGroupSwap, CreateProactiveSwap) { + BrowsingContextGroupSwap proactive_swap = + BrowsingContextGroupSwap::CreateProactiveSwap( + ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap); + + EXPECT_EQ(BrowsingContextGroupSwapType::kProactiveSwap, + proactive_swap.type()); + EXPECT_TRUE(proactive_swap.ShouldSwap()); + EXPECT_FALSE(proactive_swap.ShouldClearProxiesOnCommit()); + EXPECT_FALSE(proactive_swap.ShouldClearWindowName()); + EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap, + proactive_swap.reason()); +} + +} // namespace + +} // namespace content
diff --git a/content/browser/renderer_host/document_token_browsertest.cc b/content/browser/renderer_host/document_token_browsertest.cc index 9fab23c..ad28c555 100644 --- a/content/browser/renderer_host/document_token_browsertest.cc +++ b/content/browser/renderer_host/document_token_browsertest.cc
@@ -140,7 +140,7 @@ // Once a cross-document navigation completes, the document token should be // updated though. - nav_manager.WaitForNavigationFinished(); + EXPECT_TRUE(nav_manager.WaitForNavigationFinished()); // The RenderFrameHost may have changed; use the FrameTreeNode captured // above instead. RenderFrameHostImpl* const new_render_frame_host = @@ -293,7 +293,7 @@ // Once a cross-document navigation completes, the document token should be // updated though. - nav_manager.WaitForNavigationFinished(); + ASSERT_TRUE(nav_manager.WaitForNavigationFinished()); // The RenderFrameHost may have changed; use the FrameTreeNode captured // above instead. RenderFrameHostImpl* const new_render_frame_host = @@ -498,7 +498,7 @@ // DocumentToken, since no new DocumentAssociatedData was created. The latter // is indirectly tested by checking if the WeakDocumentPtr is still valid // after the navigation commits. - nav_manager.WaitForNavigationFinished(); + ASSERT_TRUE(nav_manager.WaitForNavigationFinished()); EXPECT_TRUE(VerifyMatchingTokens(web_contents())); const blink::DocumentToken token_after_navigation_finished = GetBrowserSideToken(web_contents());
diff --git a/content/browser/renderer_host/document_user_data_browsertest.cc b/content/browser/renderer_host/document_user_data_browsertest.cc index f42f599..f929e8a 100644 --- a/content/browser/renderer_host/document_user_data_browsertest.cc +++ b/content/browser/renderer_host/document_user_data_browsertest.cc
@@ -327,7 +327,7 @@ EXPECT_TRUE(data); // 6) Let the navigation finish and make sure it has succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL()); @@ -392,7 +392,7 @@ EXPECT_TRUE(data); // 5) Let the navigation finish and make sure it has succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL()); @@ -486,7 +486,7 @@ EXPECT_TRUE(data_before_commit); // 4) Let the navigation finish and make sure it is succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL());
diff --git a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc index 7a8b470..b968784 100644 --- a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc +++ b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
@@ -1890,7 +1890,7 @@ ->common_params() .should_replace_current_entry); } - navigation_manager.WaitForNavigationFinished(); + EXPECT_TRUE(navigation_manager.WaitForNavigationFinished()); if (!IsLastCommittedEntryOfPageType(web_contents, PAGE_TYPE_NORMAL)) return false; return web_contents->GetLastCommittedURL() == url; @@ -8529,7 +8529,7 @@ EXPECT_TRUE(new_entry1->IsRestored()); // Allow the back navigation to complete, clearing the restore status. - back_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(back_navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(new_entry1->IsRestored()); EXPECT_EQ(new_entry1, new_controller.GetLastCommittedEntry()); EXPECT_EQ(2, new_controller.GetEntryCount()); @@ -8649,8 +8649,10 @@ shell()->LoadURL(url1); - navigation_manager_1.WaitForNavigationFinished(); // Initial navigation. - navigation_manager_2.WaitForNavigationFinished(); // Client-side redirect. + ASSERT_TRUE(navigation_manager_1 + .WaitForNavigationFinished()); // Initial navigation. + ASSERT_TRUE(navigation_manager_2 + .WaitForNavigationFinished()); // Client-side redirect. ASSERT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry1 = controller.GetEntryAtIndex(0); @@ -9476,7 +9478,7 @@ // be treated as a client-side redirect. TestNavigationManager navigation_manager(contents(), fragment_url); EXPECT_TRUE(ExecJs(contents(), "location.replace('#foo')")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -9508,7 +9510,7 @@ TestNavigationManager navigation_manager(contents(), replace_state_url); EXPECT_TRUE( ExecJs(shell(), "history.replaceState({}, '', '/title1.html#bar')")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -9577,7 +9579,7 @@ "a.href = 'title1.html#click';" "document.body.appendChild(a);" "a.click();")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(3, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -9651,7 +9653,7 @@ EXPECT_TRUE(ExecJs( contents(), JsReplace("document.getElementById('test_iframe').src = $1", fragment_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(2, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -9683,7 +9685,7 @@ "a.target = 'test_iframe';" "document.body.appendChild(a);" "a.click();")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(3, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -9712,7 +9714,7 @@ "a.target = 'test_iframe';" "document.body.appendChild(a);" "a.click();")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(4, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -9901,7 +9903,7 @@ "document.body.appendChild(a);" "a.click();", url_3))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(2, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -9972,7 +9974,7 @@ TestNavigationManager navigation_manager(contents(), target_url); EXPECT_TRUE( ExecJs(contents(), JsReplace("location.replace($1);", target_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // The last committed NavigationEntry's redirect chain will contain the // client-side redirector URL, then the target URL. @@ -10019,7 +10021,7 @@ TestNavigationManager navigation_manager(contents(), redirecting_url); EXPECT_TRUE( ExecJs(contents(), JsReplace("location.replace($1);", redirecting_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // The last committed NavigationEntry's redirect chain will contain the // client-side redirector URL, server-side redirecting URL, then the final @@ -10071,7 +10073,7 @@ "document.body.appendChild(a);" "a.click();", redirecting_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // The last committed NavigationEntry's redirect chain will contain the // server-side redirecting URL and the final URL. @@ -10122,7 +10124,7 @@ "document.body.appendChild(a);" "a.click();", redirecting_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // The last committed NavigationEntry's redirect chain will contain the // server-side redirecting URL and the final URL. @@ -10176,7 +10178,7 @@ // Browser-initiated tab reload. TestNavigationManager navigation_manager(contents(), start_url); shell()->Reload(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10206,7 +10208,7 @@ // Renderer-initiated reload. TestNavigationManager navigation_manager(contents(), start_url); EXPECT_TRUE(ExecJs(contents(), "location.reload();")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10236,7 +10238,7 @@ // Browser-initiated tab reload after a renderer-initiated reload. TestNavigationManager navigation_manager(contents(), start_url); shell()->Reload(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10269,7 +10271,7 @@ // instead of NavigationControllerImpl::Reload(). TestNavigationManager navigation_manager(contents(), start_url); contents()->GetPrimaryMainFrame()->Reload(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10352,7 +10354,7 @@ // Browser-initiated reload. TestNavigationManager navigation_manager(contents(), iframe_url); root->child_at(0)->current_frame_host()->Reload(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -10376,7 +10378,7 @@ // Renderer-initiated reload on the iframe. TestNavigationManager navigation_manager(contents(), iframe_url); EXPECT_TRUE(ExecJs(iframe, "location.reload();")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -10397,7 +10399,7 @@ // Browser-initiated reload after a renderer-initiated reload. TestNavigationManager navigation_manager(contents(), iframe_url); root->child_at(0)->current_frame_host()->Reload(); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); scoped_refptr<FrameNavigationEntry> frame_entry = @@ -10662,8 +10664,10 @@ TestNavigationManager navigation_manager_2(contents(), client_redirect_target_url); shell()->LoadURL(client_redirecting_url); - navigation_manager_1.WaitForNavigationFinished(); // Initial navigation. - navigation_manager_2.WaitForNavigationFinished(); // Client-side redirect. + ASSERT_TRUE(navigation_manager_1 + .WaitForNavigationFinished()); // Initial navigation. + ASSERT_TRUE(navigation_manager_2 + .WaitForNavigationFinished()); // Client-side redirect. ASSERT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetEntryAtIndex(0); @@ -10695,7 +10699,7 @@ "/navigation_controller/simple_page_1.html#foo")); TestNavigationManager navigation_manager(contents(), fragment_url); EXPECT_TRUE(ExecJs(contents(), "location.replace('#foo');")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10753,8 +10757,10 @@ TestNavigationManager navigation_manager_2(contents(), client_redirect_target_url); shell()->LoadURL(client_redirecting_url); - navigation_manager_1.WaitForNavigationFinished(); // Initial navigation. - navigation_manager_2.WaitForNavigationFinished(); // Client-side redirect. + ASSERT_TRUE(navigation_manager_1 + .WaitForNavigationFinished()); // Initial navigation. + ASSERT_TRUE(navigation_manager_2 + .WaitForNavigationFinished()); // Client-side redirect. ASSERT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetEntryAtIndex(0); @@ -10788,7 +10794,7 @@ "/navigation_controller/client_redirect_fragment.html#bar")); TestNavigationManager navigation_manager(contents(), fragment_url); EXPECT_TRUE(ExecJs(contents(), "location.replace('#bar');")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetLastCommittedEntry(); @@ -10843,8 +10849,10 @@ shell()->LoadURL(server_redirecting_url); - navigation_manager_1.WaitForNavigationFinished(); // Initial navigation. - navigation_manager_2.WaitForNavigationFinished(); // Client-side redirect. + ASSERT_TRUE(navigation_manager_1 + .WaitForNavigationFinished()); // Initial navigation. + ASSERT_TRUE(navigation_manager_2 + .WaitForNavigationFinished()); // Client-side redirect. ASSERT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetEntryAtIndex(0); @@ -10894,9 +10902,11 @@ shell()->LoadURL(client_redirecting_url); - navigation_manager_1.WaitForNavigationFinished(); // Initial navigation + - // client-side redirect. - navigation_manager_2.WaitForNavigationFinished(); // Server-side redirect. + ASSERT_TRUE(navigation_manager_1 + .WaitForNavigationFinished()); // Initial navigation + + // client-side redirect. + ASSERT_TRUE(navigation_manager_2 + .WaitForNavigationFinished()); // Server-side redirect. ASSERT_EQ(1, controller.GetEntryCount()); NavigationEntry* entry = controller.GetEntryAtIndex(0); @@ -12477,13 +12487,13 @@ EXPECT_EQ(2, controller.GetPendingEntryIndex()); // Let the subframe commit. - subframe_delayer.WaitForNavigationFinished(); + ASSERT_TRUE(subframe_delayer.WaitForNavigationFinished()); EXPECT_EQ(1, controller.GetLastCommittedEntryIndex()); EXPECT_EQ(url_a, root->current_url()); EXPECT_EQ(frame_url_a2, root->child_at(0)->current_url()); // Let the main frame commit. - mainframe_delayer.WaitForNavigationFinished(); + ASSERT_TRUE(mainframe_delayer.WaitForNavigationFinished()); EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); EXPECT_EQ(2, controller.GetLastCommittedEntryIndex()); EXPECT_EQ(url_b, root->current_url()); @@ -13949,7 +13959,7 @@ EXPECT_EQ(request, root->navigation_request()); // Let the navigation finish. It should commit successfully. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); last_committed = shell()->web_contents()->GetController().GetLastCommittedEntry(); ASSERT_TRUE(last_committed); @@ -18478,7 +18488,7 @@ "window.location.replace('#a');" "window.location='/title3.html';" "</script></html>"); - observer.WaitForNavigationFinished(); + ASSERT_TRUE(observer.WaitForNavigationFinished()); EXPECT_EQ(last_url, controller.GetLastCommittedEntry()->GetURL()); EXPECT_EQ(2, controller.GetEntryCount()); @@ -20319,7 +20329,7 @@ EXPECT_TRUE(navigation_1->IsPost()); // Check the FrameNavigationEntry (initial navigation). - observer_1.WaitForNavigationFinished(); + ASSERT_TRUE(observer_1.WaitForNavigationFinished()); EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); NavigationEntryImpl* entry_1 = controller.GetLastCommittedEntry(); ASSERT_EQ(1U, entry_1->root_node()->children.size()); @@ -20353,7 +20363,7 @@ EXPECT_TRUE(navigation_2->IsPost()); // Check the FrameNavigationEntry (reload). - observer_2.WaitForNavigationFinished(); + ASSERT_TRUE(observer_2.WaitForNavigationFinished()); EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); NavigationEntryImpl* entry_2 = controller.GetLastCommittedEntry(); ASSERT_EQ(1U, entry_1->root_node()->children.size()); @@ -20526,7 +20536,7 @@ // Commit navigation and ensure that the weak ptr to NavigationHandle was // invalidated. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(navigation); } @@ -21122,8 +21132,8 @@ FrameTestNavigationManager c_delayer(ftn_c->frame_tree_node_id(), shell()->web_contents(), url_c); controller.GoToOffset(-3); - b_delayer.WaitForNavigationFinished(); - c_delayer.WaitForNavigationFinished(); + ASSERT_TRUE(b_delayer.WaitForNavigationFinished()); + ASSERT_TRUE(c_delayer.WaitForNavigationFinished()); EXPECT_TRUE(WaitForLoadStop(contents())); EXPECT_EQ(4, controller.GetEntryCount()); @@ -21291,7 +21301,7 @@ fetch_response.Done(); // The navigation got canceled without committing. - nav_manager.WaitForNavigationFinished(); + ASSERT_TRUE(nav_manager.WaitForNavigationFinished()); EXPECT_FALSE(nav_manager.was_successful()); EXPECT_EQ(child_url, child->current_url()); EXPECT_EQ(true, EvalJs(child, "fetch_success")); @@ -21360,7 +21370,7 @@ crash_observer.Wait(); // The navigation got canceled without committing. - nav_manager.WaitForNavigationFinished(); + ASSERT_TRUE(nav_manager.WaitForNavigationFinished()); EXPECT_FALSE(nav_manager.was_successful()); // If the process is not shared with the main frame, the current URL of the // child frame is empty after the process crashed. If the process is shared, @@ -21863,7 +21873,7 @@ // Close the window. This should trigger the deletion of the // speculative RenderFrameHost. EXPECT_TRUE(ExecJs(original_root, "w.close()")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(navigation_manager.was_committed()); } @@ -21894,7 +21904,7 @@ // Close the window. This should trigger the deletion of the // speculative RenderFrameHost. EXPECT_TRUE(ExecJs(original_root, "w.close()")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(navigation_manager.was_committed()); } } @@ -21933,7 +21943,7 @@ // speculative RenderFrameHost. EXPECT_TRUE( ExecJs(root, "document.getElementsByTagName('iframe')[0].remove()")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(navigation_manager.was_committed()); } @@ -21961,7 +21971,7 @@ // speculative RenderFrameHost. EXPECT_TRUE( ExecJs(root, "document.getElementsByTagName('iframe')[0].remove()")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_FALSE(navigation_manager.was_committed()); } } @@ -22006,7 +22016,7 @@ EXPECT_EQ(root->navigation_request(), b1_navigation.GetNavigationHandle()); // Assert that the navigation to A2 gets cancelled. - a2_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(a2_navigation.WaitForNavigationFinished()); EXPECT_FALSE(a2_navigation.was_committed()); // 4) Start another same-RFH navigation to A3, which will cancel the @@ -22018,7 +22028,7 @@ EXPECT_EQ(root->navigation_request(), a3_navigation.GetNavigationHandle()); // Assert that the navigation to B1 gets cancelled. - b1_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(b1_navigation.WaitForNavigationFinished()); EXPECT_FALSE(b1_navigation.was_committed()); } @@ -22079,11 +22089,11 @@ EXPECT_EQ(root->navigation_request(), a1_navigation.GetNavigationHandle()); // Assert that the navigation to B1 gets cancelled. - b1_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(b1_navigation.WaitForNavigationFinished()); EXPECT_FALSE(b1_navigation.was_committed()); // Assert that the navigation to A1 succesfully commits. - a1_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(a1_navigation.WaitForNavigationFinished()); EXPECT_TRUE(a1_navigation.was_successful()); // Assert that the correct NavigationEntry is used, and no entry gets // corrupted. @@ -22154,7 +22164,7 @@ // Assert that the navigation to A2 didn't get cancelled, and finish // committing A2. This shouldn't cancel the navigation to B1. - a2_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(a2_navigation.WaitForNavigationFinished()); EXPECT_TRUE(a2_navigation.was_successful()); // A2's navigation commit didn't cancel B1's navigation. @@ -22169,13 +22179,13 @@ // Assert that the navigation to B1 didn't get cancelled, and finish // committing B1. This shouldn't cancel the navigation to A3. - b1_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(b1_navigation.WaitForNavigationFinished()); EXPECT_TRUE(b1_navigation.was_successful()); // B1's navigation commit didn't cancel A3's navigation. EXPECT_TRUE(a3_navigation.WaitForResponse()); EXPECT_TRUE(a3_navigation.GetNavigationHandle()); - a3_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(a3_navigation.WaitForNavigationFinished()); EXPECT_TRUE(a3_navigation.was_successful()); } @@ -22224,7 +22234,7 @@ // Cancel the navigation to `url_b2` by calling ResetNavigationRequest(). // This shouldn't cancel the navigation to `url_b1`. root->ResetNavigationRequest(NavigationDiscardReason::kCancelled); - b2_nav.WaitForNavigationFinished(); + ASSERT_TRUE(b2_nav.WaitForNavigationFinished()); EXPECT_FALSE(b2_nav.was_committed()); EXPECT_FALSE(b2_nav.GetNavigationHandle()); @@ -22274,7 +22284,7 @@ EXPECT_EQ(b2_nav.GetNavigationHandle(), root->navigation_request()); // Wait for the `url_b1` navigation to finish. - b1_nav.WaitForNavigationFinished(); + ASSERT_TRUE(b1_nav.WaitForNavigationFinished()); EXPECT_TRUE(b1_nav.was_successful()); // The RenderFrameHost had changed, which means we have started to unload the @@ -22305,7 +22315,7 @@ } // Assert that the `url_b2` navigation committed successfully. - b2_nav.WaitForNavigationFinished(); + ASSERT_TRUE(b2_nav.WaitForNavigationFinished()); EXPECT_TRUE(b2_nav.was_successful()); }
diff --git a/content/browser/renderer_host/navigation_handle_user_data_browsertest.cc b/content/browser/renderer_host/navigation_handle_user_data_browsertest.cc index cd2ed1cd..22da3e6 100644 --- a/content/browser/renderer_host/navigation_handle_user_data_browsertest.cc +++ b/content/browser/renderer_host/navigation_handle_user_data_browsertest.cc
@@ -95,7 +95,7 @@ EXPECT_EQ(data->value(), "data"); did_finish_navigation = true; })); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_TRUE(did_finish_navigation); // Ensure that the data is deleted after navigation finished. @@ -191,7 +191,7 @@ EXPECT_EQ(data->value(), "data"); // Wait for the navigation to finish. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_TRUE(did_start_navigation); EXPECT_TRUE(did_finish_navigation);
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index 01db1739..9e3ffeb 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -2476,7 +2476,7 @@ if (auto result = frame_tree_node_->render_manager()->GetFrameHostForNavigation( - this); + this, &browsing_context_group_swap_); result.has_value()) { render_frame_host_ = result.value(); } else { @@ -3077,7 +3077,7 @@ // before the navigation is ready to commit. scoped_refptr<SiteInstance> site_instance = frame_tree_node_->render_manager()->GetSiteInstanceForNavigationRequest( - this); + this, &browsing_context_group_swap_); speculative_site_instance_ = site_instance->HasProcess() ? site_instance : nullptr; @@ -3942,7 +3942,8 @@ // cancelled and RFH is destroyed while NavigationRequest is alive. } else if (response_should_be_rendered_) { if (auto result = - frame_tree_node_->render_manager()->GetFrameHostForNavigation(this); + frame_tree_node_->render_manager()->GetFrameHostForNavigation( + this, &browsing_context_group_swap_); result.has_value()) { render_frame_host_ = result.value(); } else { @@ -4184,8 +4185,8 @@ // The CrossOriginRedirectAfterEarlyHints variant of // Navigation.MainFrame.TimeToReadyToCommit2 histogram tracks the performance // impacts. - auto result = - frame_tree_node_->render_manager()->GetFrameHostForNavigation(this); + auto result = frame_tree_node_->render_manager()->GetFrameHostForNavigation( + this, &browsing_context_group_swap_); // Early hints is an optimization; if it is not possible to get a suitable // RenderFrameHost for any reason, just bail out. @@ -4310,7 +4311,7 @@ ConvertToCrossDocumentType(common_params_->navigation_type); if (auto result = frame_tree_node_->render_manager()->GetFrameHostForNavigation( - this); + this, &browsing_context_group_swap_); result.has_value()) { render_frame_host = result.value(); } else { @@ -6501,7 +6502,7 @@ // time. The renderer has now committed the page and we can safely enforce the // empty name on the browser side. bool should_clear_browsing_instance_name = - coop_status().require_browsing_instance_swap() || + browsing_context_group_swap().ShouldClearWindowName() || (commit_params().is_cross_site_cross_browsing_context_group && base::FeatureList::IsEnabled( features::kClearCrossSiteCrossBrowsingContextGroupWindowName));
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h index bbd0cb9..fdc4bd3 100644 --- a/content/browser/renderer_host/navigation_request.h +++ b/content/browser/renderer_host/navigation_request.h
@@ -35,6 +35,7 @@ #include "content/browser/renderer_host/policy_container_host.h" #include "content/browser/renderer_host/render_frame_host_csp_context.h" #include "content/browser/renderer_host/render_frame_host_impl.h" +#include "content/browser/renderer_host/should_swap_browsing_instance.h" #include "content/browser/site_instance_impl.h" #include "content/browser/web_package/web_bundle_handle.h" #include "content/common/content_export.h" @@ -1096,6 +1097,10 @@ // access to the RFSC, but read access is still available. const blink::RuntimeFeatureStateContext& GetRuntimeFeatureStateContext(); + BrowsingContextGroupSwap browsing_context_group_swap() const { + return browsing_context_group_swap_; + } + private: friend class NavigationRequestTest; @@ -2338,6 +2343,20 @@ // comments in the implementation of `ResumeCommitIfNeeded()`. base::OnceClosure resume_commit_closure_; + // Records whether the new document will commit inside another BrowsingContext + // group as a result of this navigation, and for what reason. Deciding whether + // to clear the window name and to clear the proxies are based on this value. + // + // It is created with a default no-swap value, and is set within + // RenderFrameHostManager::GetSiteInstanceForNavigation(). It is generally set + // more than once, first for a speculative computation before receiving + // headers, then for each redirect, and finally once a definitve response has + // been received. It might also never be set if the navigation does not go + // through SiteInstance selection, such as for a renderer initiated + // same-document navigation. + BrowsingContextGroupSwap browsing_context_group_swap_ = + BrowsingContextGroupSwap::CreateDefault(); + base::WeakPtrFactory<NavigationRequest> weak_factory_{this}; };
diff --git a/content/browser/renderer_host/navigation_request_browsertest.cc b/content/browser/renderer_host/navigation_request_browsertest.cc index 8c7ac1a..bbed242 100644 --- a/content/browser/renderer_host/navigation_request_browsertest.cc +++ b/content/browser/renderer_host/navigation_request_browsertest.cc
@@ -658,7 +658,7 @@ !is_test_feature_enabled); // Continue with the navigation until completion. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_TRUE(manager.was_successful()); // Check that the changes were saved to the RenderFrameHost. @@ -703,7 +703,7 @@ is_test_feature_enabled); // Continue with the navigation until completion. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_TRUE(manager.was_successful()); // Check that the changes were saved to the RenderFrameHost's feature @@ -748,7 +748,7 @@ EXPECT_TRUE(new_context.GetFeatureOverrides().empty()); // Continue with the navigation until completion. - redirect_manager.WaitForNavigationFinished(); + ASSERT_TRUE(redirect_manager.WaitForNavigationFinished()); EXPECT_TRUE(redirect_manager.was_successful()); // Ensure that the changes made to the features before redirect do not @@ -1352,7 +1352,7 @@ installer.navigation_throttle()->request_context_type()); // Ditto for frame b navigation. - main_manager.WaitForNavigationFinished(); + ASSERT_TRUE(main_manager.WaitForNavigationFinished()); EXPECT_TRUE(b_manager.WaitForRequestStart()); EXPECT_EQ(2, installer.install_count()); EXPECT_EQ(b_url, url_recorder.urls().back()); @@ -1361,7 +1361,7 @@ installer.navigation_throttle()->request_context_type()); // Ditto for frame c navigation. - b_manager.WaitForNavigationFinished(); + ASSERT_TRUE(b_manager.WaitForNavigationFinished()); EXPECT_TRUE(c_manager.WaitForRequestStart()); EXPECT_EQ(3, installer.install_count()); EXPECT_EQ(c_url, url_recorder.urls().back()); @@ -1371,7 +1371,7 @@ // Lets the final navigation finish so that we conclude running the // RequestContextType checks that happen in TestNavigationThrottle. - c_manager.WaitForNavigationFinished(); + ASSERT_TRUE(c_manager.WaitForNavigationFinished()); // Confirms the last navigation did finish. EXPECT_FALSE(installer.navigation_throttle()); } @@ -1404,7 +1404,7 @@ installer.navigation_throttle()->request_context_type()); // Finishes the last navigation. - link_manager.WaitForNavigationFinished(); + ASSERT_TRUE(link_manager.WaitForNavigationFinished()); EXPECT_FALSE(installer.navigation_throttle()); } @@ -1438,7 +1438,7 @@ installer.navigation_throttle()->request_context_type()); // Finishes the last navigation. - post_manager.WaitForNavigationFinished(); + ASSERT_TRUE(post_manager.WaitForNavigationFinished()); EXPECT_FALSE(installer.navigation_throttle()); } @@ -1604,7 +1604,7 @@ RenderProcessHost* rph_2 = site_instance_a->GetProcess(); RenderProcessHostWatcher process_exit_observer_2( rph_2, content::RenderProcessHostWatcher::WATCH_FOR_HOST_DESTRUCTION); - navigation_b.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_b.WaitForNavigationFinished()); // Ensure RPH 1 is destroyed, which happens at commit time even before the fix // for the bug. @@ -2192,7 +2192,7 @@ EXPECT_TRUE(observer.ReadyToCommitNavigationWasCalled()); EXPECT_TRUE(manager.GetNavigationHandle()->IsWaitingToCommit()); - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); } // Ensure asynchronously deferring conditions block the navigation when it's @@ -2240,7 +2240,7 @@ EXPECT_TRUE(observer.ReadyToCommitNavigationWasCalled()); EXPECT_EQ(request->state(), NavigationRequest::READY_TO_COMMIT); EXPECT_FALSE(request->IsCommitDeferringConditionDeferredForTesting()); - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); } // Ensure a navigation can be cancelled while an asynchronously deferring @@ -2277,7 +2277,7 @@ // the navigation request. EXPECT_FALSE(installer1.condition().IsDestroyed()); web_contents->Stop(); - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(manager.GetNavigationHandle(), nullptr); EXPECT_TRUE(installer1.condition().IsDestroyed()); EXPECT_TRUE(installer2.condition().IsDestroyed()); @@ -2349,7 +2349,7 @@ // Finish the navigation. test_throttle_installer.navigation_throttle()->ResumeNavigation(); - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); } // Tests the case where a browser-initiated navigation to a normal webpage is @@ -3001,7 +3001,7 @@ .download_policy.IsDownloadAllowed()); // The response is not handled as a download. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_FALSE(handle_observer.is_download()); } @@ -3025,7 +3025,7 @@ .download_policy.IsDownloadAllowed()); // The response is handled as a download. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_TRUE(handle_observer.is_download()); } @@ -3055,7 +3055,7 @@ .download_policy.IsDownloadAllowed()); // The response is not handled as a download. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_FALSE(handle_observer.is_download()); } @@ -3354,7 +3354,7 @@ EXPECT_TRUE(navigation_handle->GetRenderFrameHost()); })); EXPECT_TRUE(ExecJs(web_contents, "location.href = '#foo';")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); } EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL))); @@ -3379,7 +3379,7 @@ TestNavigationManager navigation_manager(popup, GURL("about:blank#foo")); EXPECT_TRUE( ExecJs(web_contents, "w.history.replaceState({}, '', '#foo');")); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); } } @@ -3704,7 +3704,7 @@ )", test.required_csp, frame_url))); - observer.WaitForNavigationFinished(); + ASSERT_TRUE(observer.WaitForNavigationFinished()); EXPECT_EQ(test.expect_allow, observer.was_successful()); } }
diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc index a226538e..f4b46f5f 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc
@@ -525,8 +525,8 @@ frame_tree_node->render_manager()->DidNavigateFrame( render_frame_host, navigation_request->common_params().has_user_gesture, was_within_same_document, - navigation_request->coop_status() - .require_browsing_instance_swap() /* clear_proxies_on_commit */, + navigation_request->browsing_context_group_swap() + .ShouldClearProxiesOnCommit(), navigation_request->commit_params().frame_policy); // Save the new page's origin and other properties, and replicate them to
diff --git a/content/browser/renderer_host/page_impl_browsertest.cc b/content/browser/renderer_host/page_impl_browsertest.cc index c3ac5b3..506a57b4 100644 --- a/content/browser/renderer_host/page_impl_browsertest.cc +++ b/content/browser/renderer_host/page_impl_browsertest.cc
@@ -332,7 +332,7 @@ EXPECT_NE(data_before_commit.get()->unique_id(), data_a.get()->unique_id()); // 4) Let the navigation finish and make sure it has succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL());
diff --git a/content/browser/renderer_host/policy_container_host_browsertest.cc b/content/browser/renderer_host/policy_container_host_browsertest.cc index 17696eb1..0ba0b88 100644 --- a/content/browser/renderer_host/policy_container_host_browsertest.cc +++ b/content/browser/renderer_host/policy_container_host_browsertest.cc
@@ -869,7 +869,7 @@ } // Let the navigation finish. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL());
diff --git a/content/browser/renderer_host/private_network_access_browsertest.cc b/content/browser/renderer_host/private_network_access_browsertest.cc index 4e77fdc..742db66 100644 --- a/content/browser/renderer_host/private_network_access_browsertest.cc +++ b/content/browser/renderer_host/private_network_access_browsertest.cc
@@ -4035,7 +4035,7 @@ document.body.appendChild(iframe); )")); - child_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(child_navigation_manager.WaitForNavigationFinished()); // Check that the child iframe failed to fetch. EXPECT_FALSE(child_navigation_manager.was_successful()); @@ -4071,7 +4071,7 @@ document.body.appendChild(iframe); )")); - child_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(child_navigation_manager.WaitForNavigationFinished()); // Check that the child iframe navigated successfully. EXPECT_TRUE(child_navigation_manager.was_successful()); @@ -4101,7 +4101,7 @@ document.body.appendChild(iframe); )")); - child_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(child_navigation_manager.WaitForNavigationFinished()); // Check that the child iframe failed to fetch. EXPECT_FALSE(child_navigation_manager.was_successful()); @@ -4147,7 +4147,7 @@ EXPECT_TRUE(ExecJs(root_frame_host(), JsReplace(kIframeScript, url))); - child_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(child_navigation_manager.WaitForNavigationFinished()); // Check that the child iframe navigated successfully. EXPECT_TRUE(child_navigation_manager.was_successful()); @@ -4182,7 +4182,7 @@ document.body.appendChild(iframe); )")); - child_navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(child_navigation_manager.WaitForNavigationFinished()); // Check that the child iframe was not blocked. EXPECT_TRUE(child_navigation_manager.was_successful()); @@ -4213,7 +4213,7 @@ EXPECT_TRUE(ExecJs(root_frame_host(), JsReplace(script_template, url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // Check that the child iframe was not blocked. EXPECT_TRUE(navigation_manager.was_successful()); @@ -4245,7 +4245,7 @@ EXPECT_TRUE(ExecJs(root_frame_host(), JsReplace(script_template, url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // Check that the child iframe was blocked. EXPECT_FALSE(navigation_manager.was_successful()); @@ -4291,7 +4291,7 @@ EXPECT_TRUE( ExecJs(root_frame_host(), JsReplace(script_template, target_url))); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); // Check that the child iframe was blocked. EXPECT_FALSE(navigation_manager.was_successful());
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 75cb757d..3018acd 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -3257,7 +3257,7 @@ bool should_clear_browsing_instance_name = navigation_request && - (navigation_request->coop_status().require_browsing_instance_swap() || + (navigation_request->browsing_context_group_swap().ShouldSwap() || (navigation_request->commit_params() .is_cross_site_cross_browsing_context_group && base::FeatureList::IsEnabled( @@ -13009,10 +13009,13 @@ // Recompute the target SiteInstance to see if it matches the current // one at commit time. + BrowsingContextGroupSwap ignored_bcg_swap_info = + BrowsingContextGroupSwap::CreateDefault(); scoped_refptr<SiteInstance> dest_instance = navigation_request->frame_tree_node() ->render_manager() - ->GetSiteInstanceForNavigationRequest(navigation_request); + ->GetSiteInstanceForNavigationRequest(navigation_request, + &ignored_bcg_swap_info); static auto* const does_recomputed_site_instance_match_key = base::debug::AllocateCrashKeyString( "does_recomputed_site_instance_match",
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc index bea1b4a..1c91262 100644 --- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -298,7 +298,7 @@ bool NavigateToURLAndDoNotWaitForLoadStop(Shell* window, const GURL& url) { TestNavigationManager observer(window->web_contents(), url); window->LoadURL(url); - observer.WaitForNavigationFinished(); + EXPECT_TRUE(observer.WaitForNavigationFinished()); return url == window->web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL(); } @@ -1106,7 +1106,7 @@ CloseDialogAndProceed(); // Wait for navigation to end. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(new_url, web_contents()->GetLastCommittedURL()); // We should have received two pings from two a.com frames. If we receive @@ -1142,7 +1142,7 @@ // execution completion notification and confuse our expectations. ExecuteScriptAsync(root->child_at(0), "location.href = '" + new_url.spec() + "';"); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(new_url, root->child_at(0)->current_frame_host()->GetLastCommittedURL()); @@ -1691,7 +1691,7 @@ GURL("customprotocol:aborted")); EXPECT_TRUE(ExecJs(shell(), "window.location = 'customprotocol:aborted'")); EXPECT_FALSE(observer.WaitForResponse()); - observer.WaitForNavigationFinished(); + ASSERT_TRUE(observer.WaitForNavigationFinished()); // 3) Send the response for the XHR requests. xhr_response.Send( @@ -1820,7 +1820,7 @@ TestNavigationManager observer_same_document(shell()->web_contents(), anchor_url); shell()->LoadURL(anchor_url); - observer_same_document.WaitForNavigationFinished(); + ASSERT_TRUE(observer_same_document.WaitForNavigationFinished()); // 3) The last part of the response is received. response.Send( @@ -2011,7 +2011,7 @@ })); // Finish the navigation. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_EQ(second_url, injector.url_of_last_commit()); EXPECT_TRUE(injector.original_receiver_of_last_commit().is_valid()); @@ -4497,7 +4497,7 @@ EXPECT_FALSE(pending_rfh->IsInPrimaryMainFrame()); // 5) Let the navigation finish and make sure it is succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL()); RenderFrameHostImpl* rfh_b = root_frame_host(); @@ -4616,7 +4616,7 @@ CheckLifecycleStateImpl check_pending_commit(web_contents()); // 5) Let the navigation finish and make sure it is succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL()); RenderFrameHostImpl* rfh_b = root_frame_host(); @@ -4686,7 +4686,7 @@ EXPECT_EQ(LifecycleStateImpl::kActive, current_rfh->lifecycle_state()); // 5) Let the navigation finish and make sure it is succeeded. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); EXPECT_EQ(url_b, web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL()); // The RenderFrameHost has been replaced after the crash, so get it again. @@ -4901,7 +4901,7 @@ "HTTP/1.1 204 No Content\r\n" "Content-Type: text/html; charset=utf-8\r\n" "\r\n"); - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_TRUE(rfhi->IsDOMContentLoaded()); EXPECT_TRUE(web_contents->IsDocumentOnLoadCompletedInPrimaryMainFrame()); @@ -5775,7 +5775,7 @@ ReadyToCommitObserver ready_to_commit_observer(web_contents(), test_expectations); - nav_manager.WaitForNavigationFinished(); + ASSERT_TRUE(nav_manager.WaitForNavigationFinished()); } // Like ForEachRenderFrameHostSpeculative, but for a speculative RFH for a @@ -6582,7 +6582,7 @@ main_url, net::ERR_BLOCKED_BY_CLIENT); TestNavigationManager manager(web_contents(), main_url); shell()->LoadURL(main_url); - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); } EXPECT_TRUE(web_contents()->GetPrimaryMainFrame()->IsErrorDocument());
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc index c6c6b4a..0416c908 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -1126,7 +1126,9 @@ DiscardSpeculativeRFH(NavigationDiscardReason::kNewNavigation); } } else { - auto result = GetFrameHostForNavigation(request); + BrowsingContextGroupSwap ignored_bcg_swap_info = + BrowsingContextGroupSwap::CreateDefault(); + auto result = GetFrameHostForNavigation(request, &ignored_bcg_swap_info); if (result.has_value()) { DCHECK(result.value()); } @@ -1134,8 +1136,10 @@ } base::expected<RenderFrameHostImpl*, GetFrameHostForNavigationFailed> -RenderFrameHostManager::GetFrameHostForNavigation(NavigationRequest* request, - std::string* reason) { +RenderFrameHostManager::GetFrameHostForNavigation( + NavigationRequest* request, + BrowsingContextGroupSwap* browsing_context_group_swap, + std::string* reason) { // GetFrameHostForNavigation will be called more than once during a navigation // (currently twice, on request and when it's about to commit in the // renderer). @@ -1196,7 +1200,8 @@ IsSameSiteGetter is_same_site_getter(is_same_site); scoped_refptr<SiteInstanceImpl> dest_site_instance = - GetSiteInstanceForNavigationRequest(request, is_same_site_getter, reason); + GetSiteInstanceForNavigationRequest(request, is_same_site_getter, + browsing_context_group_swap, reason); // A subframe should always be in the same BrowsingInstance as the parent // (see also https://crbug.com/1107269). @@ -1413,8 +1418,9 @@ navigation_rfh->SetPolicyContainerForEarlyCommitAfterCrash( current_frame_host()->policy_container_host()->Clone()); - CommitPending(std::move(speculative_render_frame_host_), nullptr, - request->coop_status().require_browsing_instance_swap()); + CommitPending( + std::move(speculative_render_frame_host_), nullptr, + request->browsing_context_group_swap().ShouldClearProxiesOnCommit()); request->SetAssociatedRFHType( NavigationRequest::AssociatedRenderFrameHostType::CURRENT); } @@ -1747,7 +1753,7 @@ } } -ShouldSwapBrowsingInstance +BrowsingContextGroupSwap RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( const GURL& current_effective_url, bool current_is_view_source_mode, @@ -1767,11 +1773,15 @@ const GURL& destination_url = destination_url_info.url; // A subframe must stay in the same BrowsingInstance as its parent. bool is_main_frame = frame_tree_node_->IsMainFrame(); - if (!is_main_frame) - return ShouldSwapBrowsingInstance::kNo_NotMainFrame; + if (!is_main_frame) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_NotMainFrame); + } - if (is_same_document) - return ShouldSwapBrowsingInstance::kNo_SameDocumentNavigation; + if (is_same_document) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_SameDocumentNavigation); + } // Check for reasons to swap processes even if we are in a process model that // doesn't usually swap (e.g., process-per-tab). Any time we return true, @@ -1782,11 +1792,13 @@ SiteInstanceImpl::GetEffectiveURL(browser_context, destination_url); // Don't force a new BrowsingInstance for URLs that are handled in the // renderer process, like javascript: or debug URLs like chrome://crash. - if (blink::IsRendererDebugURL(destination_effective_url)) - return ShouldSwapBrowsingInstance::kNo_RendererDebugURL; + if (blink::IsRendererDebugURL(destination_effective_url)) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_RendererDebugURL); + } if (cross_origin_opener_policy_mismatch) - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateCoopSwap(); // Transitions across BrowserContexts should always require a // BrowsingInstance swap. For example, this can happen if an extension in a @@ -1800,7 +1812,7 @@ render_frame_host_->GetSiteInstance()->GetBrowserContext()); if (browser_context != render_frame_host_->GetSiteInstance()->GetBrowserContext()) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // For security, we should transition between processes when one is a Web UI @@ -1813,7 +1825,7 @@ // Here, data URLs are never allowed. if (!WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI( browser_context, destination_effective_url)) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // Force swap if the current WebUI type differs from the one for the @@ -1822,13 +1834,13 @@ browser_context, current_effective_url) != WebUIControllerFactoryRegistry::GetInstance()->GetWebUIType( browser_context, destination_effective_url)) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } } else { // Force a swap if it's a Web UI URL. if (WebUIControllerFactoryRegistry::GetInstance()->UseWebUIForURL( browser_context, destination_effective_url)) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } } @@ -1838,7 +1850,7 @@ if (GetContentClient()->browser()->ShouldSwapBrowsingInstancesForNavigation( render_frame_host_->GetSiteInstance(), current_effective_url, destination_effective_url)) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // We can't switch a `blink::WebView` between view source and non-view source @@ -1846,13 +1858,13 @@ // between "view-source:http://foo.com/" and "http://foo.com/", Blink doesn't // treat it as a new navigation). So require a BrowsingInstance switch. if (current_is_view_source_mode != destination_is_view_source_mode) - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); // If we haven't used the current SiteInstance but the destination is a // view-source URL, we should force a BrowsingInstance swap so that we won't // reuse the current SiteInstance. if (!current_instance->HasSite() && destination_is_view_source_mode) - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); // If the target URL's origin was dynamically isolated, and the isolation // wouldn't apply in the current BrowsingInstance, see if this navigation can @@ -1868,7 +1880,7 @@ destination_url_info.origin_isolation_request) .WithWebExposedIsolationInfo( destination_url_info.web_exposed_isolation_info)))) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // If the navigation should end up in a different StoragePartition, create a @@ -1884,7 +1896,7 @@ !current_instance ->IsNavigationAllowedToStayInSameProcessDueToEffectiveURLs( browser_context, is_main_frame, destination_url_info.url)) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // When doing a history navigation, we cannot assume that the page will behave @@ -1905,9 +1917,10 @@ bool should_swap = !destination_instance->IsRelatedSiteInstance(current_instance); if (should_swap) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } else { - return ShouldSwapBrowsingInstance::kNo_AlreadyHasMatchingBrowsingInstance; + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_AlreadyHasMatchingBrowsingInstance); } } @@ -1931,7 +1944,7 @@ IsBrowsingInstanceSwapAllowedForPageTransition(transition, destination_url) && render_frame_host_->has_committed_any_navigation()) { - return ShouldSwapBrowsingInstance::kYes_ForceSwap; + return BrowsingContextGroupSwap::CreateSecuritySwap(); } // Experimental mode to swap BrowsingInstances on most navigations when there @@ -1941,7 +1954,7 @@ should_replace_current_entry); } -ShouldSwapBrowsingInstance +BrowsingContextGroupSwap RenderFrameHostManager::ShouldProactivelySwapBrowsingInstance( const UrlInfo& destination_url_info, bool is_reload, @@ -1950,53 +1963,70 @@ // If we've disabled proactive BrowsingInstance swap for this RenderFrameHost, // we should not try to do a proactive swap. if (render_frame_host_->HasTestDisabledProactiveBrowsingInstanceSwap()) - return ShouldSwapBrowsingInstance::kNo_ProactiveSwapDisabled; + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_ProactiveSwapDisabled); // We should only do proactive swap when either the flag is enabled, or if // it's needed for the back-forward cache (and the bfcache flag is enabled). if (!IsProactivelySwapBrowsingInstanceEnabled() && - !IsBackForwardCacheEnabled()) - return ShouldSwapBrowsingInstance::kNo_ProactiveSwapDisabled; + !IsBackForwardCacheEnabled()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_ProactiveSwapDisabled); + } // Only primary main frames are eligible to swap BrowsingInstances. - if (frame_tree_node_->GetFrameType() != FrameType::kPrimaryMainFrame) - return ShouldSwapBrowsingInstance::kNo_NotPrimaryMainFrame; + if (frame_tree_node_->GetFrameType() != FrameType::kPrimaryMainFrame) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_NotPrimaryMainFrame); + } // If the frame has not committed any navigation yet, we should not try to do // a proactive swap. - if (!render_frame_host_->has_committed_any_navigation()) - return ShouldSwapBrowsingInstance::kNo_HasNotComittedAnyNavigation; + if (!render_frame_host_->has_committed_any_navigation()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_HasNotComittedAnyNavigation); + } // Skip cases when there are other windows that might script this one. SiteInstanceImpl* current_instance = render_frame_host_->GetSiteInstance(); - if (current_instance->GetRelatedActiveContentsCount() > 1u) - return ShouldSwapBrowsingInstance::kNo_HasRelatedActiveContents; + if (current_instance->GetRelatedActiveContentsCount() > 1u) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_HasRelatedActiveContents); + } // "about:blank" and chrome-native-URL do not "use" a SiteInstance. This // allows the SiteInstance to be reused cross-site. Starting a new // BrowsingInstance would prevent the SiteInstance to be reused, that's why // this case is excluded here. - if (!current_instance->HasSite()) - return ShouldSwapBrowsingInstance::kNo_DoesNotHaveSite; + if (!current_instance->HasSite()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_DoesNotHaveSite); + } // Do not do a proactive BrowsingInstance swap when the previous document's // scheme is not HTTP/HTTPS, since only HTTP/HTTPS documents are eligible for // back-forward cache. const GURL& current_url = render_frame_host_->GetLastCommittedURL(); - if (!current_url.SchemeIsHTTPOrHTTPS()) - return ShouldSwapBrowsingInstance::kNo_SourceURLSchemeIsNotHTTPOrHTTPS; + if (!current_url.SchemeIsHTTPOrHTTPS()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_SourceURLSchemeIsNotHTTPOrHTTPS); + } // WebView guests currently need to stay in the same SiteInstance and // BrowsingInstance. - if (current_instance->IsGuest()) - return ShouldSwapBrowsingInstance::kNo_Guest; + if (current_instance->IsGuest()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_Guest); + } // We should check whether the new page will result in adding a new history // entry or not. If not, we should not do a proactive BrowsingInstance swap, // because these navigations are not interesting for bfcache (the old page // will not get into the bfcache). Cases include: // 1) When we know we're going to replace the history entry. - if (should_replace_current_entry) - return ShouldSwapBrowsingInstance::kNo_WillReplaceEntry; + if (should_replace_current_entry) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_WillReplaceEntry); + } // Navigations where we will reuse the history entry: // 2) Different-document but same URL navigations. These navigations are // not classified as same-document (which got filtered earlier) so they will @@ -2005,15 +2035,19 @@ // reload (and would be handled below), but not always (e.g., POSTs to the // same URL use the same entry but aren't considered reloads). bool is_same_url = current_url.EqualsIgnoringRef(destination_url_info.url); - if (is_same_url) - return ShouldSwapBrowsingInstance::kNo_SameUrlNavigation; + if (is_same_url) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_SameUrlNavigation); + } // 3) Reloads. Note that most reloads will not actually reach this part, as // ShouldSwapBrowsingInstancesForNavigation will return early if the reload // has a destination SiteInstance. Reloads that don't have a destination // SiteInstance include: doing reload after a replaceState call, reloading a // URL for which we've just installed a hosted app, and duplicating a tab. - if (is_reload) - return ShouldSwapBrowsingInstance::kNo_Reload; + if (is_reload) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_Reload); + } bool same_site = is_same_site.Get(*render_frame_host_, destination_url_info); if (same_site) { @@ -2022,14 +2056,19 @@ // is enabled and the current RFH is eligible for back/forward cache // (checked later). if (IsProactivelySwapBrowsingInstanceOnSameSiteNavigationEnabled()) { - return ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap; + return BrowsingContextGroupSwap::CreateProactiveSwap( + ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap); } - if (!IsBackForwardCacheEnabled()) - return ShouldSwapBrowsingInstance::kNo_SameSiteNavigation; + if (!IsBackForwardCacheEnabled()) { + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_SameSiteNavigation); + } } - if (IsProactivelySwapBrowsingInstanceEnabled()) - return ShouldSwapBrowsingInstance::kYes_CrossSiteProactiveSwap; + if (IsProactivelySwapBrowsingInstanceEnabled()) { + return BrowsingContextGroupSwap::CreateProactiveSwap( + ShouldSwapBrowsingInstance::kYes_CrossSiteProactiveSwap); + } // If BackForwardCache is enabled, swap BrowsingInstances only when the // previous page can be stored in the back-forward cache. @@ -2040,11 +2079,9 @@ .GetFutureBackForwardCacheEligibilityPotential( render_frame_host_.get()); if (bfcache_eligibility.CanStore()) { - if (same_site) { - return ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap; - } else { - return ShouldSwapBrowsingInstance::kYes_CrossSiteProactiveSwap; - } + return BrowsingContextGroupSwap::CreateProactiveSwap( + same_site ? ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap + : ShouldSwapBrowsingInstance::kYes_CrossSiteProactiveSwap); } else { // As GetFutureBackForwardCacheEligibilityPotential is used instead of // GetCurrentBackForwardCacheEligibility, non- sticky reasons are not @@ -2055,7 +2092,8 @@ if (back_forward_cache_metrics) { back_forward_cache_metrics->SetNotRestoredReasons(bfcache_eligibility); } - return ShouldSwapBrowsingInstance::kNo_NotNeededForBackForwardCache; + return BrowsingContextGroupSwap::CreateNoSwap( + ShouldSwapBrowsingInstance::kNo_NotNeededForBackForwardCache); } } @@ -2076,6 +2114,7 @@ bool cross_origin_opener_policy_mismatch, bool should_replace_current_entry, bool force_new_browsing_instance, + BrowsingContextGroupSwap* should_swap_result, std::string* reason) { // On renderer-initiated navigations, when the frame initiating the navigation // and the frame being navigated differ, |source_instance| is set to the @@ -2128,9 +2167,10 @@ ? current_entry->IsViewSourceMode() : dest_is_view_source_mode; - ShouldSwapBrowsingInstance should_swap_result = + *should_swap_result = force_new_browsing_instance - ? ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap + ? BrowsingContextGroupSwap::CreateProactiveSwap( + ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap) : ShouldSwapBrowsingInstancesForNavigation( current_effective_url, current_is_view_source_mode, source_instance, current_instance, dest_instance, dest_url_info, @@ -2140,40 +2180,33 @@ should_replace_current_entry); TraceShouldSwapBrowsingInstanceResult(frame_tree_node_->frame_tree_node_id(), - should_swap_result); + should_swap_result->reason()); - bool proactive_swap = - (should_swap_result == - ShouldSwapBrowsingInstance::kYes_CrossSiteProactiveSwap || - should_swap_result == - ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap); - bool should_swap = - (should_swap_result == ShouldSwapBrowsingInstance::kYes_ForceSwap) || - proactive_swap; if (frame_tree_node_->IsMainFrame()) { if (BackForwardCacheMetrics* back_forward_cache_metrics = render_frame_host_->GetBackForwardCacheMetrics()) { back_forward_cache_metrics->SetBrowsingInstanceSwapResult( - should_swap_result); + should_swap_result->reason()); } } SiteInstanceDescriptor new_instance_descriptor = DetermineSiteInstanceForURL( dest_url_info, source_instance, current_instance, dest_instance, transition, is_failure, is_same_site, dest_is_restore, - dest_is_view_source_mode, should_swap, was_server_redirect, reason); + dest_is_view_source_mode, should_swap_result->ShouldSwap(), + was_server_redirect, reason); scoped_refptr<SiteInstanceImpl> new_instance = ConvertToSiteInstance(new_instance_descriptor, candidate_instance); DCHECK(IsSiteInstanceCompatibleWithWebExposedIsolation( new_instance.get(), dest_url_info.web_exposed_isolation_info)); - // If |should_swap| is true, we must use a different SiteInstance than the - // current one. If we didn't, we would have two RenderFrameHosts in the same - // SiteInstance and the same frame, breaking lookup of RenderFrameHosts by - // SiteInstance. - if (should_swap) + // If `should_swap_result.ShouldSwap()` is true, we must use a different + // SiteInstance than the current one. If we didn't, we would have the same + // SiteInstance belong to two BrowsingInstances, which is not possible. + if (should_swap_result->ShouldSwap()) { CHECK_NE(new_instance, current_instance); + } if (new_instance == current_instance) { // If we're navigating to the same site instance, we won't need to use the @@ -2213,8 +2246,10 @@ } } + bool is_proactive_swap = (should_swap_result->type() == + BrowsingContextGroupSwapType::kProactiveSwap); bool is_same_site_proactive_swap = - (should_swap_result == + (should_swap_result->reason() == ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap); bool reuse_current_process_if_possible = false; // With proactive BrowsingInstance swap, we should try to reuse the current @@ -2229,7 +2264,7 @@ // enabled. In this case, we will try to reuse process on both cross-site and // same-site navigations. if (IsProactivelySwapBrowsingInstanceWithProcessReuseEnabled() && - proactive_swap && + is_proactive_swap && (!current_instance->RequiresDedicatedProcess() || is_same_site_proactive_swap)) { reuse_current_process_if_possible = true; @@ -3373,15 +3408,18 @@ scoped_refptr<SiteInstanceImpl> RenderFrameHostManager::GetSiteInstanceForNavigationRequest( NavigationRequest* request, + BrowsingContextGroupSwap* browsing_context_group_swap, std::string* reason) { IsSameSiteGetter is_same_site = IsSameSiteGetter(); - return GetSiteInstanceForNavigationRequest(request, is_same_site, reason); + return GetSiteInstanceForNavigationRequest( + request, is_same_site, browsing_context_group_swap, reason); } scoped_refptr<SiteInstanceImpl> RenderFrameHostManager::GetSiteInstanceForNavigationRequest( NavigationRequest* request, IsSameSiteGetter& is_same_site, + BrowsingContextGroupSwap* browsing_context_group_swap, std::string* reason) { SiteInstanceImpl* current_site_instance = render_frame_host_->GetSiteInstance(); @@ -3455,7 +3493,8 @@ request->commit_params().is_view_source, request->WasServerRedirect(), request->coop_status().require_browsing_instance_swap(), request->common_params().should_replace_current_entry, - request->force_new_browsing_instance(), reason); + request->force_new_browsing_instance(), browsing_context_group_swap, + reason); // If the NavigationRequest's dest_site_instance was present but incorrect, // then ensure no sensitive state is kept on the request. This can happen for
diff --git a/content/browser/renderer_host/render_frame_host_manager.h b/content/browser/renderer_host/render_frame_host_manager.h index cf2d9ec..01afb46 100644 --- a/content/browser/renderer_host/render_frame_host_manager.h +++ b/content/browser/renderer_host/render_frame_host_manager.h
@@ -17,6 +17,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/types/expected.h" +#include "content/browser/renderer_host/browsing_context_group_swap.h" #include "content/browser/renderer_host/browsing_context_state.h" #include "content/browser/renderer_host/navigation_discard_reason.h" #include "content/browser/renderer_host/render_frame_host_impl.h" @@ -418,8 +419,10 @@ // behavior. The returned `reason` should fit into // base::debug::CrashKeySize::Size256. base::expected<RenderFrameHostImpl*, GetFrameHostForNavigationFailed> - GetFrameHostForNavigation(NavigationRequest* request, - std::string* reason = nullptr); + GetFrameHostForNavigation( + NavigationRequest* request, + BrowsingContextGroupSwap* browsing_context_group_swap, + std::string* reason = nullptr); // Discards `speculative_render_frame_host_` if it exists, even if there are // NavigationRequests associated with it, including pending commit @@ -568,12 +571,14 @@ scoped_refptr<SiteInstanceImpl> GetSiteInstanceForNavigationRequest( NavigationRequest* navigation_request, IsSameSiteGetter& is_same_site, + BrowsingContextGroupSwap* browsing_context_group_swap, std::string* reason = nullptr); // Calls GetSiteInstanceForNavigationRequest with an IsSameSiteGetter that // does not have a cached value. scoped_refptr<SiteInstanceImpl> GetSiteInstanceForNavigationRequest( NavigationRequest* navigation_request, + BrowsingContextGroupSwap* browsing_context_group_swap, std::string* reason = nullptr); // Helper to initialize the main RenderFrame if it's not initialized. @@ -664,12 +669,13 @@ SiteInstanceRelation relation; }; - // Returns kYes_* if for the navigation from `current_effective_url` to - // `destination_url_info`, a new SiteInstance and BrowsingInstance should be - // created (even if we are in a process model that doesn't usually swap). - // This forces a process swap and severs script connections with existing - // tabs. Cases where this can happen include transitions between WebUI and - // regular web pages. + // Returns a BrowsingContextGroupSwap describing if we need to change + // BrowsingInstance for the navigation from `current_effective_url` to + // `destination_url_info`. This can happen for a variety of reasons, including + // differences in security level (WebUI pages to regular pages), COOP headers, + // or to accommodate for the BackForwardCache. The structure also contains + // extra information about the consequences of such a swap, including the need + // to clear proxies or the window's name. // // `source_instance` is the SiteInstance of the frame that initiated the // navigation. `current_instance` is the SiteInstance of the frame that is @@ -688,7 +694,7 @@ // pass the effective URL for destination URL here and instead calculate the // destination's effective URL within the function because some methods called // in the function like IsNavigationSameSite expects a non-effective URL. - ShouldSwapBrowsingInstance ShouldSwapBrowsingInstancesForNavigation( + BrowsingContextGroupSwap ShouldSwapBrowsingInstancesForNavigation( const GURL& current_effective_url, bool current_is_view_source_mode, SiteInstanceImpl* source_instance, @@ -705,7 +711,7 @@ bool was_server_redirect, bool should_replace_current_entry); - ShouldSwapBrowsingInstance ShouldProactivelySwapBrowsingInstance( + BrowsingContextGroupSwap ShouldProactivelySwapBrowsingInstance( const UrlInfo& destination_url_info, bool is_reload, IsSameSiteGetter& is_same_site, @@ -730,6 +736,7 @@ bool cross_origin_opener_policy_mismatch, bool should_replace_current_entry, bool force_new_browsing_instance, + BrowsingContextGroupSwap* browsing_context_group_swap, std::string* reason); // Returns a descriptor of the appropriate SiteInstance object for the given
diff --git a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc index 3a78d83..db571e7 100644 --- a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc
@@ -1746,7 +1746,7 @@ GURL second_url(embedded_test_server()->GetURL("b.com", "/title1.html")); TestNavigationManager second_navigation(shell()->web_contents(), second_url); shell()->LoadURL(second_url); - second_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(second_navigation.WaitForNavigationFinished()); const char kDiscardedStateJS[] = "window.domAutomationController.send(window.document.wasDiscarded);"; bool discarded_result; @@ -1842,7 +1842,7 @@ "HTTP/1.1 204 OK\r\n" "Connection: close\r\n" "\r\n"); - attack_navigation.WaitForNavigationFinished(); + ASSERT_TRUE(attack_navigation.WaitForNavigationFinished()); speculative_rfh = static_cast<WebContentsImpl*>(shell()->web_contents()) ->GetPrimaryFrameTree() .root() @@ -1971,7 +1971,7 @@ "HTTP/1.1 204 OK\r\n" "Connection: close\r\n" "\r\n"); - second_reload.WaitForNavigationFinished(); + ASSERT_TRUE(second_reload.WaitForNavigationFinished()); speculative_rfh = static_cast<WebContentsImpl*>(shell()->web_contents()) ->GetPrimaryFrameTree() .root() @@ -6267,7 +6267,7 @@ // The process should be foreground priority before commit because it is // pending, and foreground after commit because it has a visible widget. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_NE(start_rph, web_contents->GetPrimaryMainFrame()->GetProcess()); EXPECT_EQ(speculative_rph, web_contents->GetPrimaryMainFrame()->GetProcess()); } @@ -6353,7 +6353,7 @@ // The process should be foreground priority before commit because it is // pending, and foreground after commit because it has a visible widget. - navigation_manager.WaitForNavigationFinished(); + ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); EXPECT_NE(start_rph, web_contents->GetPrimaryMainFrame()->GetProcess()); EXPECT_EQ(speculative_rph, web_contents->GetPrimaryMainFrame()->GetProcess()); }
diff --git a/content/browser/renderer_host/render_frame_host_manager_unittest.cc b/content/browser/renderer_host/render_frame_host_manager_unittest.cc index ee74c53..53d6f7b 100644 --- a/content/browser/renderer_host/render_frame_host_manager_unittest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
@@ -417,8 +417,13 @@ // And also simulates the 2nd and final call to GetFrameHostForNavigation // that determines the final frame that will commit the navigation. + BrowsingContextGroupSwap ignored_bcg_swap_info = + BrowsingContextGroupSwap::CreateDefault(); TestRenderFrameHost* frame_host = static_cast<TestRenderFrameHost*>( - manager->GetFrameHostForNavigation(navigation_request.get()).value()); + manager + ->GetFrameHostForNavigation(navigation_request.get(), + &ignored_bcg_swap_info) + .value()); CHECK(frame_host); frame_host->SetPolicyContainerHost( @@ -3203,7 +3208,12 @@ EXPECT_FALSE(GetPendingFrameHost(manager)); // Prepare to commit, update the navigating RenderFrameHost. - EXPECT_EQ(host, manager->GetFrameHostForNavigation(navigation_request.get())); + BrowsingContextGroupSwap ignored_bcg_swap_info = + BrowsingContextGroupSwap::CreateDefault(); + EXPECT_EQ(host, manager + ->GetFrameHostForNavigation(navigation_request.get(), + &ignored_bcg_swap_info) + .value()); // No pending RenderFrameHost as the current one should be reused. EXPECT_FALSE(GetPendingFrameHost(manager));
diff --git a/content/browser/renderer_host/render_process_host_browsertest.cc b/content/browser/renderer_host/render_process_host_browsertest.cc index e8979cc..fec3b215 100644 --- a/content/browser/renderer_host/render_process_host_browsertest.cc +++ b/content/browser/renderer_host/render_process_host_browsertest.cc
@@ -1476,7 +1476,7 @@ EXPECT_EQ(same_process_rfhs.size(), 0u); // 7. Resume the blocked navigation. - manager.WaitForNavigationFinished(); + ASSERT_TRUE(manager.WaitForNavigationFinished()); // 8. Check that `RenderProcessHost::ForEachRenderFrameHost` does not filter // `rfh_b` out, because its lifecycle has changed to kActive.
diff --git a/content/browser/renderer_host/unassigned_site_instance_browsertest.cc b/content/browser/renderer_host/unassigned_site_instance_browsertest.cc index 922cd74..2b96b09 100644 --- a/content/browser/renderer_host/unassigned_site_instance_browsertest.cc +++ b/content/browser/renderer_host/unassigned_site_instance_browsertest.cc
@@ -1095,7 +1095,7 @@ EXPECT_TRUE(process1_lock.allows_any_site()); // Now wait for second navigation to finish and ensure it also succeeds. - regular_manager.WaitForNavigationFinished(); + ASSERT_TRUE(regular_manager.WaitForNavigationFinished()); EXPECT_TRUE(regular_manager.was_successful()); EXPECT_TRUE(web_contents->GetPrimaryMainFrame()->IsRenderFrameLive()); EXPECT_EQ(regular_url(),
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc index 7f96713..2933ca661 100644 --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -543,6 +543,30 @@ return; } case ServiceWorkerVersion::FetchHandlerType::kNotSkippable: { + // When FetchHandlerType::kNotSkippable, then check if the fetch handler + // should bypassed or not. First, check the origin trial token. If there + // is no valid origin trial token, then check the eligibility based on the + // feature flag and the url. + if (ShouldBypassFetchHandlerForMainResourceByOriginTrial( + registration->active_version()) || + ShouldBypassFetchHandlerForMainResource(stripped_url_)) { + // If true, the main resource request bypasses ServiceWorker and starts + // the worker in parallel for subsequent subresources. + CompleteWithoutLoader(); + if (registration->active_version()->running_status() == + EmbeddedWorkerStatus::STARTING || + registration->active_version()->running_status() == + EmbeddedWorkerStatus::RUNNING) { + return; + } + registration->active_version()->StartWorker( + ServiceWorkerMetrics::EventType::BYPASS_MAIN_RESOURCE, + base::BindOnce(&ServiceWorkerControlleeRequestHandler:: + DidStartWorkerForSubresources, + weak_factory_.GetWeakPtr())); + return; + } + // Otherwise, record the skip reason as kNotSkipped. RecordSkipReason(FetchHandlerSkipReason::kNotSkipped); TRACE_EVENT_WITH_FLOW1( "ServiceWorker", @@ -554,29 +578,6 @@ } } - // Check if the fetch handler should bypassed or not. - // First, check the origin trial token. If there is no valid origin trial - // token, then check the eligibility based on the feature flag and the url. - if (ShouldBypassFetchHandlerForMainResourceByOriginTrial( - registration->active_version()) || - ShouldBypassFetchHandlerForMainResource(stripped_url_)) { - // If true, the main resource request bypasses ServiceWorker and starts the - // worker in parallel for subsequent subresources. - CompleteWithoutLoader(); - if (registration->active_version()->running_status() == - EmbeddedWorkerStatus::STARTING || - registration->active_version()->running_status() == - EmbeddedWorkerStatus::RUNNING) { - return; - } - registration->active_version()->StartWorker( - ServiceWorkerMetrics::EventType::BYPASS_MAIN_RESOURCE, - base::BindOnce(&ServiceWorkerControlleeRequestHandler:: - DidStartWorkerForSubresources, - weak_factory_.GetWeakPtr())); - return; - } - // Finally, we want to forward to the service worker! Make a // ServiceWorkerMainResourceLoader which does that work. loader_wrapper_ = std::make_unique<ServiceWorkerMainResourceLoaderWrapper>(
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index d716629..d5b94ba7 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1373,6 +1373,7 @@ "../browser/renderer_host/ancestor_throttle_browsertest.cc", "../browser/renderer_host/back_forward_cache_metrics_browsertest.cc", "../browser/renderer_host/blocked_scheme_navigation_browsertest.cc", + "../browser/renderer_host/browsing_context_group_swap_browsertest.cc", "../browser/renderer_host/close_listener_host_browsertest.cc", "../browser/renderer_host/cookie_browsertest.cc", "../browser/renderer_host/document_service_browsertest.cc", @@ -2371,6 +2372,7 @@ "../browser/renderer_host/ancestor_throttle_unittest.cc", "../browser/renderer_host/back_forward_cache_impl_unittest.cc", "../browser/renderer_host/back_forward_cache_metrics_unittest.cc", + "../browser/renderer_host/browsing_context_group_swap_unittest.cc", "../browser/renderer_host/clipboard_host_impl_unittest.cc", "../browser/renderer_host/commit_deferring_condition_runner_unittest.cc", "../browser/renderer_host/cross_origin_opener_policy_status_unittest.cc",
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc index e00bed2..c4a6a7b 100644 --- a/gpu/command_buffer/service/raster_decoder.cc +++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -2532,6 +2532,7 @@ namespace { struct YUVReadbackResult { std::unique_ptr<const SkImage::AsyncReadResult> async_result; + bool finished = false; }; void OnReadYUVImagePixelsDone( @@ -2539,6 +2540,7 @@ std::unique_ptr<const SkImage::AsyncReadResult> async_result) { YUVReadbackResult* context = reinterpret_cast<YUVReadbackResult*>(raw_ctx); context->async_result = std::move(async_result); + context->finished = true; } } // namespace @@ -2736,6 +2738,10 @@ // asynchronous by removing this flush and implementing a query that can // signal back to client process. gr_context()->flushAndSubmit(true); + + // The call above will sync up gpu and CPU, resulting in callback being run + // during flushAndSubmit. To prevent UAF make sure it indeed happened. + CHECK(yuv_result.finished); if (!yuv_result.async_result) { LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels", "Failed to read pixels from SkImage");
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb index af9f7cff..b4d9c8b 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
@@ -1,7 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es"> -<translation id="1143896152279775643">Tu contraseña se guardará en el gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> +<translation id="1143896152279775643">Tu contraseña se guardará en el Gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> <translation id="1282031177488366470">Ayudar a mejorar las funciones y el rendimiento de Chrome</translation> <translation id="1462727070346936664">Inicia sesión para sacarle el máximo partido a Chrome.</translation> <translation id="1479202195792305274">Chrome puede comprobar tus contraseñas cuando inicias sesión con tu cuenta de Google.</translation> @@ -27,7 +27,7 @@ <translation id="2574249610672786438">Inicia sesión en todos tus dispositivos para ver tus pestañas dondequiera que uses Chrome</translation> <translation id="2576431527583832481">Chrome sigue mejorando. Hay una nueva versión disponible.</translation> <translation id="257708665678654955">¿Quieres que Google Chrome te ofrezca la posibilidad de traducir las páginas en <ph name="LANGUAGE_NAME" /> de este sitio web la próxima vez?</translation> -<translation id="2671426118752779020">Puedes usar las contraseñas que has guardado en el gestor de contraseñas de Google en otras aplicaciones de tu iPhone.</translation> +<translation id="2671426118752779020">Puedes usar las contraseñas que has guardado en el Gestor de contraseñas de Google en otras aplicaciones de tu iPhone.</translation> <translation id="2689064829982324496">Para cerrar sesión con tu cuenta de Google en todos los sitios web, <ph name="BEGIN_LINK" />cierra sesión en Chrome<ph name="END_LINK" />.</translation> <translation id="2695886661449553974">Chrome no ha podido comprobar si hay actualizaciones. Prueba de nuevo más tarde.</translation> <translation id="2732745070297234559">Chrome no ha podido comprobar todas las contraseñas. Vuelve a intentarlo mañana.</translation> @@ -50,7 +50,7 @@ <translation id="3984746313391923992">Tu organización requiere que mantengas tu sesión cerrada en Chrome.</translation> <translation id="3988789688219830639">Google Chrome no puede acceder a tus fotos y vídeos (para permitirlo, ve a Ajustes de iOS > Privacidad > Fotos).</translation> <translation id="417201473131094001">No compatible con Chrome Canary</translation> -<translation id="4192781968753717021">Esta contraseña se ha encontrado en una quiebra de seguridad de datos. El gestor de contraseñas de Google te recomienda que cambies tu contraseña ahora.</translation> +<translation id="4192781968753717021">Esta contraseña se ha encontrado en una quiebra de seguridad de datos. El Gestor de contraseñas de Google te recomienda que cambies tu contraseña ahora.</translation> <translation id="4233521129555661685"><ph name="USER_EMAIL1" /> ha usado Chrome y ha dejado marcadores, contraseñas y otras configuraciones en este dispositivo.</translation> <translation id="424864128008805179">¿Quieres cerrar sesión en Chrome?</translation> <translation id="4249068189593983585">Consejo sobre Chrome: Para ver más opciones de pestañas, mantén pulsado el botón Mostrar pestañas en la barra de herramientas, que se encuentra en la parte inferior o superior de la pantalla.</translation> @@ -95,7 +95,7 @@ <translation id="7165736900384873061">Empezar a usar el escáner de QR de Google Chrome</translation> <translation id="7173660919484573146">Chrome usa Face ID para garantizar el acceso autorizado a tus contraseñas.</translation> <translation id="7187993566681480880">Te protege en Chrome y puede usarse para mejorar tu seguridad en otras aplicaciones de Google cuando has iniciado sesión.</translation> -<translation id="72119412072970160">Puedes usar las contraseñas que has guardado en el gestor de contraseñas de Google en otras aplicaciones de tu iPad.</translation> +<translation id="72119412072970160">Puedes usar las contraseñas que has guardado en el Gestor de contraseñas de Google en otras aplicaciones de tu iPad.</translation> <translation id="7261678641327190792">Chrome no puede comprobar tus contraseñas</translation> <translation id="7272930098487145294">Para guardar imágenes, toca Ajustes y permite que Chrome añada fotos</translation> <translation id="7275945473750112644"><ph name="HOSTED_DOMAIN" /> gestiona tu cuenta, así que se borrarán tus datos de Chrome en este dispositivo</translation> @@ -124,8 +124,8 @@ <translation id="8540666473246803645">Google Chrome</translation> <translation id="8736550665979974340">Protégete con Google Chrome</translation> <translation id="8772179140489533211">Muestra solicitudes para iniciar sesión en Chrome.</translation> -<translation id="8788269841521769222">No tendrás que recordar esta contraseña. Se guardará en el gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> -<translation id="8897749957032330183">Las contraseñas se guardan en el gestor de contraseñas de Google en este dispositivo.</translation> +<translation id="8788269841521769222">No tendrás que recordar esta contraseña. Se guardará en el Gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> +<translation id="8897749957032330183">Las contraseñas se guardan en el Gestor de contraseñas de Google en este dispositivo.</translation> <translation id="8969290730818637510">Si esta opción está activada: <ph name="BEGIN_INDENT" /> • Ayuda a mejorar Chrome para las personas que lo usan de la misma manera que tú.<ph name="END_INDENT" />
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index cc1ce1e..b35d767a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -807,7 +807,7 @@ <translation id="6801927553864092214">للتصفُّح بخصوصية تامّة، افتَح علامة تبويب للتصفُّح المتخفي</translation> <translation id="6807889908376551050">إظهار الكل...</translation> <translation id="681368974849482173">تم إنشاء العنصر</translation> -<translation id="683022620450280906">يمكنك استخدام كلمات المرور المحفوظة على أي جهاز، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور" من Google على عنوان البريد الإلكتروني <ph name="EMAIL" />.</translation> +<translation id="683022620450280906">يمكنك استخدام كلمات المرور المحفوظة على أي جهاز، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور في Google" على عنوان البريد الإلكتروني <ph name="EMAIL" />.</translation> <translation id="6831043979455480757">ترجمة</translation> <translation id="6842136130964845393">لضمان إمكانية الوصول دائمًا إلى كلمات المرور المحفوظة، عليك إثبات هويتك.</translation> <translation id="6851516051005285358">طلب موقع سطح المكتب</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 8f68b90..5ea3a51 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -172,7 +172,7 @@ <translation id="2268044343513325586">Restringir</translation> <translation id="2273327106802955778">Menú más</translation> <translation id="2286505070150039482">Texto resaltado</translation> -<translation id="2299218006564889602">Tus contraseñas se cifran en tu dispositivo antes de que se guarden en el gestor de contraseñas de Google.</translation> +<translation id="2299218006564889602">Tus contraseñas se cifran en tu dispositivo antes de que se guarden en el Gestor de contraseñas de Google.</translation> <translation id="2302742851632557585">Cambiar contraseña en el sitio web</translation> <translation id="2316709634732130529">Usar contraseña sugerida</translation> <translation id="2320166752086256636">Ocultar teclado</translation> @@ -216,7 +216,7 @@ <translation id="2648803196158606475">Eliminar entradas leídas</translation> <translation id="2653659639078652383">Enviar</translation> <translation id="2664621323652615289">Detener</translation> -<translation id="2671426118752779020">Puedes usar las contraseñas que has guardado en el gestor de contraseñas de Google en otras aplicaciones de tu iPhone.</translation> +<translation id="2671426118752779020">Puedes usar las contraseñas que has guardado en el Gestor de contraseñas de Google en otras aplicaciones de tu iPhone.</translation> <translation id="2690858294534178585">La cámara se está utilizando</translation> <translation id="2691653761409724435">No disponible sin conexión</translation> <translation id="2695507686909505111">Página traducida</translation> @@ -727,7 +727,7 @@ <translation id="6377118281273296434">Seguridad del sitio web</translation> <translation id="6380866119319257197">Si has olvidado tu frase de contraseña o quieres cambiar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /></translation> <translation id="6383719166112032471">Abrir ubicación…</translation> -<translation id="6387994324662817823">Las contraseñas se guardan en el gestor de contraseñas de Google solo en este dispositivo.</translation> +<translation id="6387994324662817823">Las contraseñas se guardan en el Gestor de contraseñas de Google solo en este dispositivo.</translation> <translation id="6389470377220713856">Nombre de la tarjeta</translation> <translation id="6406506848690869874">Sincronización</translation> <translation id="6410390304316730527">La función Navegación segura te protege frente a atacantes que pueden intentar engañarte para que realices alguna acción peligrosa, como instalar malware o revelar información personal, incluidas contraseñas, números de teléfono o tarjetas de crédito. Si desactivas esta función, debes tener cuidado al navegar por sitios desconocidos o que no sean de confianza.</translation> @@ -804,7 +804,7 @@ <translation id="6801927553864092214">Para navegar en privado, abre una pestaña de Incógnito</translation> <translation id="6807889908376551050">Mostrar todo...</translation> <translation id="681368974849482173">Elemento creado</translation> -<translation id="683022620450280906">Puedes usar las contraseñas guardadas en cualquier dispositivo. Se guardan en el gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> +<translation id="683022620450280906">Puedes usar las contraseñas guardadas en cualquier dispositivo. Se guardan en el Gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> <translation id="6831043979455480757">Traducir</translation> <translation id="6842136130964845393">Verifica tu identidad para asegurarte de que siempre tengas acceso a tus contraseñas guardadas</translation> <translation id="6851516051005285358">Solicitar sitio para ordenadores</translation> @@ -859,7 +859,7 @@ <translation id="7265758999917665941">Jamás para este sitio web</translation> <translation id="7272437679830969316">No se puede verificar tu identidad. No se ha copiado la contraseña.</translation> <translation id="7291368939935408496">Preparando contraseñas...</translation> -<translation id="730958329302570991">Añade contraseñas de sitios web al gestor de contraseñas de Google fácilmente y en cualquier momento.</translation> +<translation id="730958329302570991">Añade contraseñas de sitios web al Gestor de contraseñas de Google fácilmente y en cualquier momento.</translation> <translation id="7313347584264171202">Aquí verás tus pestañas de incógnito</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% descargado</translation> <translation id="7340958967809483333">Opciones de Discover</translation> @@ -948,7 +948,7 @@ <translation id="7978018860671536736">3. Toca Autorrellenar contraseñas</translation> <translation id="7981908678811807838">El seguimiento de precios no está disponible para este sitio.</translation> <translation id="7982789257301363584">Red</translation> -<translation id="7987685713885608670">Para una mayor seguridad, cifra las contraseñas en tu dispositivo antes de que se guarden en el gestor de contraseñas de Google.</translation> +<translation id="7987685713885608670">Para una mayor seguridad, cifra las contraseñas en tu dispositivo antes de que se guarden en el Gestor de contraseñas de Google.</translation> <translation id="7993619969781047893">Es posible que las funciones de algunos sitios no funcionen correctamente</translation> <translation id="800361585186029508">Abre las URL introducidas en Google Chrome.</translation> <translation id="8016714545083187120">Usar siempre conexiones seguras</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index 8b9c2a9..7e17b6f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -107,7 +107,7 @@ <translation id="1657011748321897393">Échec du partage, car vous n'êtes pas connecté au réseau.</translation> <translation id="1657641691196698092">Cookies bloqués</translation> <translation id="165877110639533037">Aucun onglet ouvert</translation> -<translation id="1674504678466460478"><ph name="SOURCE_LANGUAGE" /> à <ph name="TARGET_LANGUAGE" /></translation> +<translation id="1674504678466460478"><ph name="SOURCE_LANGUAGE" /> vers <ph name="TARGET_LANGUAGE" /></translation> <translation id="1683483432843341018">Demander le site mobile</translation> <translation id="168715261339224929">Activez la synchronisation pour accéder à vos favoris sur tous vos appareils.</translation> <translation id="1687475363370981210">Tout marquer comme lu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index abaa838..cefa055 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -145,6 +145,7 @@ <translation id="2015722694326466240">За да ги видите лозинките, прво мора да поставите лозинка на вашиот уред.</translation> <translation id="2021670401941426298">Погледнете го упатството на пребарувачот за бришење на историјата на пребарување доколку е применливо.</translation> <translation id="202292859882676807">Дозволен е пристап до „Микрофонот“</translation> +<translation id="20485545164632846">нова ставка</translation> <translation id="2050196510205866090">{count,plural, =1{{count} зачуван начин на плаќање достапен над тастатурата.}one{{count} зачуван начин на плаќање достапни над тастатурата.}other{{count} зачувани начини на плаќање достапни над тастатурата.}}</translation> <translation id="2073572773299281212">Активен пред <ph name="DAYS" /> дена</translation> <translation id="2074131957428911366">Секогаш може да изберете што да синхронизирате во <ph name="BEGIN_LINK" />Поставки<ph name="END_LINK" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index cd3604c..7d4b189b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -145,6 +145,7 @@ <translation id="2015722694326466240">పాస్వర్డ్లను చూడటానికి, మీరు ముందుగా తప్పక మీ పరికరంలో పాస్కోడ్ను సెట్ చేయాలి.</translation> <translation id="2021670401941426298">వర్తిస్తే, మీ సెర్చ్ హిస్టరీని తొలగించడానికి మీ సెర్చ్ ఇంజిన్ సూచనలను చూడండి.</translation> <translation id="202292859882676807">మైక్రోఫోన్ యాక్సెస్ అనుమతించబడింది</translation> +<translation id="20485545164632846">కొత్త ఐటెమ్</translation> <translation id="2050196510205866090">{count,plural, =1{సేవ్ చేసిన {count} పేమెంట్ ఆప్షన్ మీ కీబోర్డ్ పైన అందుబాటులో ఉంది.}other{సేవ్ చేసిన {count} పేమెంట్ ఆప్షన్లు మీ కీబోర్డ్ పైన అందుబాటులో ఉన్నాయి.}}</translation> <translation id="2073572773299281212"><ph name="DAYS" /> రోజుల క్రితం యాక్టివ్గా ఉంది</translation> <translation id="2074131957428911366">మీరు ఎప్పుడైనా <ph name="BEGIN_LINK" />సెట్టింగ్ల<ph name="END_LINK" /> ద్వారా వేటిని సింక్ చేయాలో ఎంచుకోవచ్చు.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 901681b..7dfc3b6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -145,6 +145,7 @@ <translation id="2015722694326466240">หากต้องการดูรหัสผ่าน คุณต้องตั้งพาสโค้ดในอุปกรณ์ก่อน</translation> <translation id="2021670401941426298">ดูวิธีลบประวัติการค้นหา (หากมี) ของเครื่องมือค้นหาที่คุณใช้</translation> <translation id="202292859882676807">อนุญาตให้เข้าถึงไมโครโฟน</translation> +<translation id="20485545164632846">รายการใหม่</translation> <translation id="2050196510205866090">{count,plural, =1{วิธีการชำระเงินที่บันทึกไว้ {count} รายการพร้อมให้ใช้งานอยู่เหนือแป้นพิมพ์}other{วิธีการชำระเงินที่บันทึกไว้ {count} รายการพร้อมให้ใช้งานอยู่เหนือแป้นพิมพ์}}</translation> <translation id="2073572773299281212">ใช้งานเมื่อ <ph name="DAYS" /> วันที่ผ่านมา</translation> <translation id="2074131957428911366">คุณเลือกสิ่งที่ต้องการซิงค์ได้เสมอใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" /></translation> @@ -804,7 +805,7 @@ <translation id="6801927553864092214">หากต้องการท่องเว็บแบบส่วนตัว ให้เปิดแท็บที่ไม่ระบุตัวตน</translation> <translation id="6807889908376551050">แสดงทั้งหมด...</translation> <translation id="681368974849482173">สร้างรายการแล้ว</translation> -<translation id="683022620450280906">คุณใช้รหัสผ่านที่บันทึกไว้ในอุปกรณ์ใดก็ได้ โดยจะบันทึกอยู่ในเครื่องมือจัดการรหัสผ่านของ Google สำหรับ <ph name="EMAIL" /></translation> +<translation id="683022620450280906">คุณใช้รหัสผ่านที่บันทึกไว้ในอุปกรณ์ใดก็ได้ โดยจะบันทึกอยู่ใน Google เครื่องมือจัดการรหัสผ่านสำหรับ <ph name="EMAIL" /></translation> <translation id="6831043979455480757">แปลภาษา</translation> <translation id="6842136130964845393">โปรดยืนยันว่าเป็นคุณเพื่อให้เข้าถึงรหัสผ่านที่บันทึกไว้ได้ทุกเมื่อ</translation> <translation id="6851516051005285358">ขอเว็บไซต์สำหรับเดสก์ท็อป</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 36063ff..df24b017 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -145,6 +145,7 @@ <translation id="2015722694326466240">Để xem mật khẩu, trước tiên bạn phải đặt mật mã trên thiết bị của mình.</translation> <translation id="2021670401941426298">Để xóa nhật ký tìm kiếm, hãy xem hướng dẫn (nếu có) của công cụ tìm kiếm bạn đang dùng.</translation> <translation id="202292859882676807">Đã cho phép truy cập micrô</translation> +<translation id="20485545164632846">mục mới</translation> <translation id="2050196510205866090">{count,plural, =1{Có {count} phương thức thanh toán đã lưu xuất hiện phía trên bàn phím.}other{Có {count} phương thức thanh toán đã lưu phía trên bàn phím.}}</translation> <translation id="2073572773299281212">Hoạt động <ph name="DAYS" /> ngày trước</translation> <translation id="2074131957428911366">Bạn luôn có thể chọn nội dung muốn đồng bộ hóa trong phần <ph name="BEGIN_LINK" />cài đặt<ph name="END_LINK" />.</translation>
diff --git a/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm b/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm index 6c5abdf..956c548 100644 --- a/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm +++ b/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm
@@ -37,7 +37,7 @@ form.signon_realm = form.url.DeprecatedGetOriginAsURL().spec(); form.username_value = SysNSStringToUTF16(credential.user); form.encrypted_password = SysNSStringToUTF8(credential.keychainIdentifier); - form.times_used = credential.rank; + form.times_used_in_html_form = credential.rank; return form; } @@ -90,7 +90,7 @@ return [self initWithFavicon:favicon keychainIdentifier:keychainIdentifier - rank:passwordForm.times_used + rank:passwordForm.times_used_in_html_form recordIdentifier:RecordIdentifierForPasswordForm(passwordForm) serviceIdentifier:serviceIdentifier serviceName:serviceName
diff --git a/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm b/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm index 10e83ec..20b343c 100644 --- a/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm +++ b/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm
@@ -29,7 +29,7 @@ NSString* url = @"http://www.alpha.example.com/path/and?args=8"; PasswordForm passwordForm; - passwordForm.times_used = 10; + passwordForm.times_used_in_html_form = 10; passwordForm.username_element = u"username_element"; passwordForm.password_element = u"password_element"; passwordForm.username_value = base::SysNSStringToUTF16(username); @@ -41,7 +41,7 @@ validationIdentifier:validationIdentifier]; EXPECT_TRUE(credential); - EXPECT_EQ(passwordForm.times_used, credential.rank); + EXPECT_EQ(passwordForm.times_used_in_html_form, credential.rank); EXPECT_NSEQ(username, credential.user); EXPECT_NSEQ(favicon, credential.favicon); EXPECT_NSEQ(validationIdentifier, credential.validationIdentifier); @@ -128,7 +128,7 @@ EXPECT_TRUE(credential); PasswordForm passwordForm = PasswordFormFromCredential(credential); - EXPECT_EQ(passwordForm.times_used, credential.rank); + EXPECT_EQ(passwordForm.times_used_in_html_form, credential.rank); EXPECT_EQ(passwordForm.username_value, base::SysNSStringToUTF16(username)); EXPECT_EQ(passwordForm.encrypted_password, base::SysNSStringToUTF8(keychainIdentifier)); @@ -146,7 +146,7 @@ NSString* url = @"http://m.alpha.example.com/path/and?args=8"; PasswordForm passwordForm; - passwordForm.times_used = 10; + passwordForm.times_used_in_html_form = 10; passwordForm.username_element = u"username_element"; passwordForm.password_element = u"password_element"; passwordForm.username_value = base::SysNSStringToUTF16(username); @@ -158,7 +158,7 @@ validationIdentifier:validationIdentifier]; EXPECT_TRUE(credential); - EXPECT_EQ(passwordForm.times_used, credential.rank); + EXPECT_EQ(passwordForm.times_used_in_html_form, credential.rank); EXPECT_NSEQ(username, credential.user); EXPECT_NSEQ(favicon, credential.favicon); EXPECT_NSEQ(validationIdentifier, credential.validationIdentifier);
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index ffc3a4d..a59a88e 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -1257,6 +1257,10 @@ {"ios-password-checkup", flag_descriptions::kIOSPasswordCheckupName, flag_descriptions::kIOSPasswordCheckupDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(password_manager::features::kIOSPasswordCheckup)}, + {"multiline-fade-truncating-label", + flag_descriptions::kMultilineFadeTruncatingLabelName, + flag_descriptions::kMultilineFadeTruncatingLabelDescription, + flags_ui::kOsIos, FEATURE_VALUE_TYPE(kMultilineFadeTruncatingLabel)}, }; bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index f5c9a3896e..98ec740 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -502,6 +502,12 @@ "websites in a tile format when the user focuses the omnibox on a search " "result page (SRP) or on web."; +const char kMultilineFadeTruncatingLabelName[] = + "Multiline Fade Truncating Label"; +const char kMultilineFadeTruncatingLabelDescription[] = + "Enable gradient support on FadeTruncatingLabel with multiple lines, the " + "gradient only will be applied to the last line instead of all lines."; + const char kNativeFindInPageName[] = "Native Find in Page"; const char kNativeFindInPageDescription[] = "When enabled, the JavaScript implementation of the Find in Page feature "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index 4e42f68..b8eef38 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -453,6 +453,11 @@ extern const char kMostVisitedTilesName[]; extern const char kMostVisitedTilesDescription[]; +// Title and description of the flag to enable multiline gradient support in +// FadeTruncatingLabel. +extern const char kMultilineFadeTruncatingLabelName[]; +extern const char kMultilineFadeTruncatingLabelDescription[]; + // Title and description of the flag to enable the native Find in Page API // for iOS 16 and later. extern const char kNativeFindInPageName[];
diff --git a/ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.mm b/ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.mm index 0a9549e1..0b9bac9a 100644 --- a/ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.mm +++ b/ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.mm
@@ -295,11 +295,24 @@ } + (void)verifyWebSigninIsVisible:(BOOL)isVisible { - id<GREYMatcher> visibilityMatcher = + NSString* conditionDescription = isVisible + ? @"Web sign-in should be visible" + : @"Web sign-in should not be visible"; + id<GREYMatcher> matcher = isVisible ? grey_sufficientlyVisible() : grey_notVisible(); - [[EarlGrey selectElementWithMatcher:grey_accessibilityID( - kWebSigninAccessibilityIdentifier)] - assertWithMatcher:visibilityMatcher]; + GREYCondition* condition = [GREYCondition + conditionWithName:conditionDescription + block:^BOOL { + NSError* error; + [[EarlGrey selectElementWithMatcher: + grey_accessibilityID( + kWebSigninAccessibilityIdentifier)] + assertWithMatcher:matcher + error:&error]; + return error == nil; + }]; + GREYAssertTrue([condition waitWithTimeout:10 pollInterval:0.1], + conditionDescription); } + (void)submitSyncPassphrase:(NSString*)passphrase {
diff --git a/ios/chrome/browser/ui/settings/sync/utils/sync_fake_server_egtest.mm b/ios/chrome/browser/ui/settings/sync/utils/sync_fake_server_egtest.mm index 03703ee5..1340769 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/sync_fake_server_egtest.mm +++ b/ios/chrome/browser/ui/settings/sync/utils/sync_fake_server_egtest.mm
@@ -237,7 +237,8 @@ // Test that update to autofill profile injected in FakeServer gets synced to // client. -- (void)testSyncUpdateAutofillProfile { +// TODO(crbug.com/1407620): Reenable the test +- (void)DISABLED_testSyncUpdateAutofillProfile { const std::string kGuid = "2340E83B-5BEE-4560-8F95-5914EF7F539E"; const std::string kFullName = "Peter Pan"; const std::string kUpdatedFullName = "Roger Rabbit"; @@ -286,8 +287,8 @@ // Test that autofill profile deleted from FakeServer gets deleted from client // as well. -// TODO(crbug.com/1340545): This test is flaky. -- (void)testSyncDeleteAutofillProfile { +// TODO(crbug.com/1407620): Reenable the test +- (void)DISABLED_testSyncDeleteAutofillProfile { const std::string kGuid = "2340E83B-5BEE-4560-8F95-5914EF7F539E"; const std::string kFullName = "Peter Pan"; GREYAssertFalse([ChromeEarlGrey isAutofillProfilePresentWithGUID:kGuid
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.h index b611a880..22bf558 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.h +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.h
@@ -67,6 +67,10 @@ - (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout*)layout NS_UNAVAILABLE; +// Notifies the ViewController that its content is being displayed or hidden. +- (void)contentWillAppearAnimated:(BOOL)animated; +- (void)contentWillDisappear; + @end #endif // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_PINNED_TABS_PINNED_TABS_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm index 8f405c9..2e1dd6d5 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm
@@ -106,6 +106,19 @@ #pragma mark - Public +- (void)contentWillAppearAnimated:(BOOL)animated { + [self.collectionView reloadData]; + [self updateEmptyCollectionViewLabelVisibility]; + + [self scrollCollectionViewToSelectedItem]; + + // Update the delegate, in case it wasn't set when `items` was populated. + [self.delegate pinnedTabsViewController:self didChangeItemCount:_items.count]; +} + +- (void)contentWillDisappear { +} + - (void)dragSessionEnabled:(BOOL)enabled { _isDragActionInProgress = enabled; @@ -510,13 +523,17 @@ [self.delegate pinnedTabsViewController:self didChangeItemCount:_items.count]; } -// Notifies the ViewController that its content is being displayed. -- (void)contentWillAppearAnimated:(BOOL)animated { - [self.collectionView reloadData]; - [self updateEmptyCollectionViewLabelVisibility]; +// Scrolls collection view to make the selected item visible. +- (void)scrollCollectionViewToSelectedItem { + NSUInteger selectedIndex = self.selectedIndex; - // Update the delegate, in case it wasn't set when `items` was populated. - [self.delegate pinnedTabsViewController:self didChangeItemCount:_items.count]; + if (selectedIndex != NSNotFound && selectedIndex < _items.count) { + [self.collectionView + selectItemAtIndexPath:CreateIndexPath(selectedIndex) + animated:NO + scrollPosition: + UICollectionViewScrollPositionCenteredHorizontally]; + } } // Configures the collectionView. @@ -587,8 +604,8 @@ } // Configures `cell`'s title synchronously, and favicon asynchronously with -// information from `item`. Updates the `cell`'s theme to this view controller's -// theme. +// information from `item`. Updates the `cell`'s theme to this view +// controller's theme. - (void)configureCell:(PinnedCell*)cell withItem:(TabSwitcherItem*)item { if (item) { cell.itemIdentifier = item.identifier;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm index 53affaf..e91e0fab3 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
@@ -507,8 +507,8 @@ [self broadcastIncognitoContentVisibility]; [self.incognitoTabsViewController contentWillAppearAnimated:animated]; - [self.regularTabsViewController contentWillAppearAnimated:animated]; + [self.pinnedTabsViewController contentWillAppearAnimated:animated]; self.remoteTabsViewController.session = self.view.window.windowScene.session; @@ -547,6 +547,7 @@ [self.incognitoTabsViewController contentWillDisappear]; [self.regularTabsViewController contentWillDisappear]; + [self.pinnedTabsViewController contentWillDisappear]; self.remoteTabsViewController.preventUpdates = YES; } @@ -1501,7 +1502,9 @@ pinnedTabsViewController.delegate = self; pinnedTabsViewController.dragDropHandler = self.pinnedTabsDragDropHandler; + [self addChildViewController:pinnedTabsViewController]; [self.view addSubview:pinnedTabsViewController.view]; + [pinnedTabsViewController didMoveToParentViewController:self]; NSMutableArray* pinnedTabsConstraints = [[NSMutableArray alloc] initWithArray:@[
diff --git a/ios/chrome/browser/ui/ui_feature_flags.cc b/ios/chrome/browser/ui/ui_feature_flags.cc index b82fd85..786fc912 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.cc +++ b/ios/chrome/browser/ui/ui_feature_flags.cc
@@ -134,6 +134,10 @@ "EnableNewBookmarksImplementation", base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kMultilineFadeTruncatingLabel, + "MultilineFadeTruncatingLabel", + base::FEATURE_DISABLED_BY_DEFAULT); + bool IsTabGridSortedByRecency() { return base::FeatureList::IsEnabled(kTabGridRecencySort); }
diff --git a/ios/chrome/browser/ui/ui_feature_flags.h b/ios/chrome/browser/ui/ui_feature_flags.h index e831351..a7c6b51 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.h +++ b/ios/chrome/browser/ui/ui_feature_flags.h
@@ -122,6 +122,9 @@ // Feature to enable the new bookmarks implementation. BASE_DECLARE_FEATURE(kEnableNewBookmarksImplementation); +// Feature to enable multiline gradient support in fade truncating label. +BASE_DECLARE_FEATURE(kMultilineFadeTruncatingLabel); + // Whether the tab grid tabs should be sorted by recency. bool IsTabGridSortedByRecency();
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ar.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ar.xtb index 644e712..6a98399 100644 --- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ar.xtb +++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ar.xtb
@@ -11,7 +11,7 @@ <translation id="1977167321677356409">كلمة المرور</translation> <translation id="2211969839027957773">"مدير كلمات المرور" من Google</translation> <translation id="2320166752086256636">إخفاء لوحة المفاتيح</translation> -<translation id="2489483078139081050">يمكنك استخدام كلمات المرور المحفوظة في التطبيقات الأخرى على جهازك، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور" من Google على هذا الجهاز فقط.</translation> +<translation id="2489483078139081050">يمكنك استخدام كلمات المرور المحفوظة في التطبيقات الأخرى على جهازك، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور في Google" على هذا الجهاز فقط.</translation> <translation id="2677128368066534822">للوصول إلى كلمات المرور بشكل أسرع، ألغِ اختيار سلسلة مفاتيح iCloud.</translation> <translation id="2712586044587587728">ستتوفَّر كلمات المرور في متصفِّح Chrome لاستخدامها في تطبيقات أخرى. ويمكنك إيقاف هذه الميزة في تطبيق "الإعدادات" في أي وقت.</translation> <translation id="2747003861858887689">الحقل السابق</translation> @@ -28,7 +28,7 @@ <translation id="5118084770294029567">جميع كلمات المرور</translation> <translation id="5148402015874782921">إلغاء</translation> <translation id="5824290706342306555">للبدء، يجب حفظ بعض كلمات المرور في متصفِّح Chrome أو تسجيل الدخول باستخدام حسابك على Google.</translation> -<translation id="6002340317268558779">يمكنك استخدام كلمات المرور المحفوظة في التطبيقات الأخرى على جهازك، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور" من Google على عنوان البريد الإلكتروني <ph name="EMAIL" />.</translation> +<translation id="6002340317268558779">يمكنك استخدام كلمات المرور المحفوظة في التطبيقات الأخرى على جهازك، حيث تُحفظ كلمات المرور هذه في "مدير كلمات المرور في Google" على عنوان البريد الإلكتروني <ph name="EMAIL" />.</translation> <translation id="6159839020698489198">اختياري</translation> <translation id="6216401132953873625">إضافة كلمة مرور جديدة</translation> <translation id="6387994324662817823">يتم حفظ كلمات المرور في "مدير كلمات المرور" من Google على هذا الجهاز فقط.</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_es.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_es.xtb index 4e2d57a..6ce99c2 100644 --- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_es.xtb +++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_es.xtb
@@ -11,27 +11,27 @@ <translation id="1977167321677356409">Contraseña</translation> <translation id="2211969839027957773">Gestor de contraseñas de Google</translation> <translation id="2320166752086256636">Ocultar teclado</translation> -<translation id="2489483078139081050">Puedes usar las contraseñas guardadas en otras aplicaciones de tu dispositivo. Se guardan en el gestor de contraseñas de Google solo en este dispositivo.</translation> +<translation id="2489483078139081050">Puedes usar las contraseñas guardadas en otras aplicaciones de tu dispositivo. Se guardan en el Gestor de contraseñas de Google solo en este dispositivo.</translation> <translation id="2677128368066534822">Para acceder a tus contraseñas más rápido, desmarca el llavero de iCloud</translation> <translation id="2712586044587587728">Podrás usar tus contraseñas de Chrome en otras aplicaciones. Puedes desactivar esta función en cualquier momento desde la aplicación Ajustes.</translation> <translation id="2747003861858887689">Campo anterior</translation> <translation id="3280734926621805458">Usar</translation> <translation id="3580107423202590938">No hay contraseñas de Chrome</translation> <translation id="368844171100841558">Sustituir</translation> -<translation id="3739920431472254679">Las contraseñas se guardan en el gestor de contraseñas de Google y puedes usarlas en cualquier dispositivo.</translation> +<translation id="3739920431472254679">Las contraseñas se guardan en el Gestor de contraseñas de Google y puedes usarlas en cualquier dispositivo.</translation> <translation id="3753678329684433031">Autocompletar contraseña de Chrome</translation> <translation id="3789385946721385622">Nombre de usuario</translation> -<translation id="3830647155781949426">Tu contraseña se guardará en el gestor de contraseñas de Google de <ph name="EMAIL" /> cuando vuelvas a Chrome.</translation> +<translation id="3830647155781949426">Tu contraseña se guardará en el Gestor de contraseñas de Google de <ph name="EMAIL" /> cuando vuelvas a Chrome.</translation> <translation id="4241076354893135477">No hay contraseñas de Chrome</translation> <translation id="4452240207605337349">No se puede guardar la contraseña</translation> <translation id="4818780572497527258">Entendido</translation> <translation id="5118084770294029567">Todas las contraseñas</translation> <translation id="5148402015874782921">Cancelar</translation> <translation id="5824290706342306555">Para empezar, guarda algunas contraseñas en Chrome o inicia sesión en tu cuenta de Google.</translation> -<translation id="6002340317268558779">Puedes usar las contraseñas guardadas en otras aplicaciones de tu dispositivo. Se guardan en el gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> +<translation id="6002340317268558779">Puedes usar las contraseñas guardadas en otras aplicaciones de tu dispositivo. Se guardan en el Gestor de contraseñas de Google de <ph name="EMAIL" />.</translation> <translation id="6159839020698489198">opcional</translation> <translation id="6216401132953873625">Añadir nueva contraseña</translation> -<translation id="6387994324662817823">Las contraseñas se guardan en el gestor de contraseñas de Google solo en este dispositivo.</translation> +<translation id="6387994324662817823">Las contraseñas se guardan en el Gestor de contraseñas de Google solo en este dispositivo.</translation> <translation id="6539092367496845964">Se ha producido un error. Vuelve a intentarlo más tarde.</translation> <translation id="6657585470893396449">Contraseña</translation> <translation id="666236282349601348">Autorrelleno está activado</translation> @@ -56,5 +56,5 @@ <translation id="8730621377337864115">Hecho</translation> <translation id="8877181643142698531">URL</translation> <translation id="9069288651897538648">De <ph name="URL" /></translation> -<translation id="9168839987494597225">Las contraseñas se guardan en el gestor de contraseñas de Google solo en este dispositivo.</translation> +<translation id="9168839987494597225">Las contraseñas se guardan en el Gestor de contraseñas de Google solo en este dispositivo.</translation> </translationbundle> \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index a8c1e51..2d82ea5 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -5dcc57a99f741460125731fd0a27b6b37dbb9b27 \ No newline at end of file +e7f435645b139671c6e3cfb3cb5492200fff301a \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index 11edfce..ebe3005 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -f4e0b074353a28e4a747aae052153e763da15b00 \ No newline at end of file +d72b9ac47806c28bade0fda9e21b6f3c6f31abb5 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 1544ebe..0a3b51bd 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -5964a3559994ecf8366bd495268e6b56eef1594a \ No newline at end of file +29fcc1dc4604bbea6a11a856820731dc0db8f074 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index 56fda82..bcdd6fe2 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -da9ceefcaf083eeac83b2d739acdf9cac50b59f0 \ No newline at end of file +61596b7c0ff025a4fb05effdca9710ce2475cbd4 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index 6d5247b..f65ccc2 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -99bc9ae240e158964c530a69c504c86598468001 \ No newline at end of file +5a6de7b57ac9e3922c3374ad087f884fee0b811e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index bae304fb..30499fa4 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -1f9fdf25d3e3904faa00e8ebfc619a85f834f722 \ No newline at end of file +3804c7fdcb60f4a8e6e70edc28c140247f0663e7 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index 7819e7bf..a478eb8 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -af41cf6293a59b3b6cca69672aecb061bc74de6c \ No newline at end of file +52c5feea54cfa648db819eda19ff04744f547271 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index d602414..e8ad5ef 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -fcf694de6f6dde7482c4c5ac7209bbb6fc09a831 \ No newline at end of file +6c11866a4c51e36e2f947cf07e1603ac65803f4d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 985b316..9568bd7 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -e301d828a0cd2ae032158ef8e6f1516490e5ce59 \ No newline at end of file +fc38f4eef50cfb8b6bf08788e3c7c73be4aaa9c1 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 4cf1105a7..d6e55a6d 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -faf06dbaaea16c154ab0d77606d070120c594627 \ No newline at end of file +d2d5f4046b83479b77590b747b87082ff39dea87 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index 9e8b19fb..9038945 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -92c819ff143920d3748627d643f893d4b83e7d33 \ No newline at end of file +c1845539252ae4b94a40d10887e863372014d6df \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 0ead1245..8338945 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -f5aca1e79baf01e5521876c3919ba4b3fe400947 \ No newline at end of file +d65983ac768bf96f2fce6e2b08d7306985ca4440 \ No newline at end of file
diff --git a/media/gpu/chromeos/gl_image_processor_backend.cc b/media/gpu/chromeos/gl_image_processor_backend.cc index 45d4da70..a67b0b8 100644 --- a/media/gpu/chromeos/gl_image_processor_backend.cc +++ b/media/gpu/chromeos/gl_image_processor_backend.cc
@@ -9,6 +9,7 @@ #include "base/stl_util.h" #include "base/synchronization/waitable_event.h" #include "base/task/sequenced_task_runner.h" +#include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" #include "media/base/format_utils.h" #include "media/base/video_frame.h" @@ -105,14 +106,18 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner) - : ImageProcessorBackend(input_config, - output_config, - output_mode, - relative_rotation, - std::move(error_cb), - std::move(backend_task_runner)) {} + ErrorCB error_cb) + : ImageProcessorBackend( + input_config, + output_config, + output_mode, + relative_rotation, + std::move(error_cb), + // Note: we use a single thread task runner because the GL context is + // thread local, so we need to make sure we run the + // GLImageProcessorBackend on the same thread always. + base::ThreadPool::CreateSingleThreadTaskRunner( + {base::TaskPriority::USER_VISIBLE})) {} bool GLImageProcessorBackend::IsSupported(const PortConfig& input_config, const PortConfig& output_config, @@ -172,8 +177,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner) { + ErrorCB error_cb) { DCHECK_EQ(output_mode, OutputMode::IMPORT); if (!IsSupported(input_config, output_config, relative_rotation)) @@ -184,8 +188,7 @@ std::default_delete<ImageProcessorBackend>>( new GLImageProcessorBackend(input_config, output_config, OutputMode::IMPORT, relative_rotation, - std::move(error_cb), - std::move(backend_task_runner))); + std::move(error_cb))); // Initialize GLImageProcessorBackend on the |backend_task_runner_| so that // the GL context is bound to the right thread and all the shaders are
diff --git a/media/gpu/chromeos/gl_image_processor_backend.h b/media/gpu/chromeos/gl_image_processor_backend.h index 03d9a48..29f4f6c 100644 --- a/media/gpu/chromeos/gl_image_processor_backend.h +++ b/media/gpu/chromeos/gl_image_processor_backend.h
@@ -27,13 +27,15 @@ // An image processor which uses GL to perform scaling. class MEDIA_GPU_EXPORT GLImageProcessorBackend : public ImageProcessorBackend { public: + GLImageProcessorBackend(const GLImageProcessorBackend&) = delete; + GLImageProcessorBackend& operator=(const GLImageProcessorBackend&) = delete; + static std::unique_ptr<ImageProcessorBackend> Create( const PortConfig& input_config, const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner); + ErrorCB error_cb); // ImageProcessorBackend implementation. void Process(scoped_refptr<VideoFrame> input_frame, @@ -48,16 +50,12 @@ // Callback for initialization. using InitCB = base::OnceCallback<void(bool)>; - GLImageProcessorBackend( - const PortConfig& input_config, - const PortConfig& output_config, - OutputMode output_mode, - VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner); - GLImageProcessorBackend(const GLImageProcessorBackend&) = delete; + GLImageProcessorBackend(const PortConfig& input_config, + const PortConfig& output_config, + OutputMode output_mode, + VideoRotation relative_rotation, + ErrorCB error_cb); ~GLImageProcessorBackend() override; - GLImageProcessorBackend& operator=(const GLImageProcessorBackend&) = delete; void InitializeTask(base::WaitableEvent* done, bool* success); void DestroyTask();
diff --git a/media/gpu/chromeos/image_processor.cc b/media/gpu/chromeos/image_processor.cc index 0130ee4..07ec32d 100644 --- a/media/gpu/chromeos/image_processor.cc +++ b/media/gpu/chromeos/image_processor.cc
@@ -69,20 +69,17 @@ VideoRotation relative_rotation, ErrorCB error_cb, scoped_refptr<base::SequencedTaskRunner> client_task_runner) { - // Note: we use a single thread task runner because the GL context is thread - // local, so we need to make sure we run the GLImageProcessorBackend on the - // same thread each time. - scoped_refptr<base::SequencedTaskRunner> backend_task_runner = - base::ThreadPool::CreateSingleThreadTaskRunner({}); auto wrapped_error_cb = base::BindRepeating( base::IgnoreResult(&base::SequencedTaskRunner::PostTask), client_task_runner, FROM_HERE, std::move(error_cb)); - std::unique_ptr<ImageProcessorBackend> backend = create_backend_cb.Run( - input_config, output_config, output_mode, relative_rotation, - std::move(wrapped_error_cb), backend_task_runner); + std::unique_ptr<ImageProcessorBackend> backend = + create_backend_cb.Run(input_config, output_config, output_mode, + relative_rotation, std::move(wrapped_error_cb)); if (!backend) return nullptr; + scoped_refptr<base::SequencedTaskRunner> backend_task_runner = + backend->task_runner(); return base::WrapUnique(new ImageProcessor(std::move(backend), std::move(client_task_runner), std::move(backend_task_runner)));
diff --git a/media/gpu/chromeos/image_processor.h b/media/gpu/chromeos/image_processor.h index aac11f0..2295927 100644 --- a/media/gpu/chromeos/image_processor.h +++ b/media/gpu/chromeos/image_processor.h
@@ -57,8 +57,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner)>; + ErrorCB error_cb)>; static std::unique_ptr<ImageProcessor> Create( CreateBackendCB create_backend_cb,
diff --git a/media/gpu/chromeos/image_processor_backend.h b/media/gpu/chromeos/image_processor_backend.h index d79921bd..b4e0102e 100644 --- a/media/gpu/chromeos/image_processor_backend.h +++ b/media/gpu/chromeos/image_processor_backend.h
@@ -116,6 +116,10 @@ virtual bool supports_incoherent_buffers() const; + const scoped_refptr<base::SequencedTaskRunner>& task_runner() const { + return backend_task_runner_; + } + protected: friend struct std::default_delete<ImageProcessorBackend>; @@ -144,8 +148,9 @@ const ErrorCB error_cb_; // The main sequence and its checker. Except getter methods, all public - // methods and callbacks are called on this sequence. - scoped_refptr<base::SequencedTaskRunner> backend_task_runner_; + // methods and callbacks are called on this sequence. The proper + // SequencedTaskRunner is created by ImageProcessorBackend. + const scoped_refptr<base::SequencedTaskRunner> backend_task_runner_; SEQUENCE_CHECKER(backend_sequence_checker_); };
diff --git a/media/gpu/chromeos/libyuv_image_processor_backend.cc b/media/gpu/chromeos/libyuv_image_processor_backend.cc index 2a58fbd..9459ee1 100644 --- a/media/gpu/chromeos/libyuv_image_processor_backend.cc +++ b/media/gpu/chromeos/libyuv_image_processor_backend.cc
@@ -11,6 +11,7 @@ #include "base/metrics/histogram_macros.h" #include "base/numerics/checked_math.h" #include "base/task/sequenced_task_runner.h" +#include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" #include "media/gpu/chromeos/fourcc.h" #include "media/gpu/macros.h" @@ -169,6 +170,20 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, + ErrorCB error_cb) { + return CreateWithTaskRunner(input_config, output_config, output_mode, + relative_rotation, error_cb, + base::ThreadPool::CreateSequencedTaskRunner( + {base::TaskPriority::USER_VISIBLE})); +} + +// static +std::unique_ptr<ImageProcessorBackend> +LibYUVImageProcessorBackend::CreateWithTaskRunner( + const PortConfig& input_config, + const PortConfig& output_config, + OutputMode output_mode, + VideoRotation relative_rotation, ErrorCB error_cb, scoped_refptr<base::SequencedTaskRunner> backend_task_runner) { VLOGF(2);
diff --git a/media/gpu/chromeos/libyuv_image_processor_backend.h b/media/gpu/chromeos/libyuv_image_processor_backend.h index c97f38f..3e3c251 100644 --- a/media/gpu/chromeos/libyuv_image_processor_backend.h +++ b/media/gpu/chromeos/libyuv_image_processor_backend.h
@@ -34,6 +34,16 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, + ErrorCB error_cb); + // This is the same as Create() but the caller can specify + // |backend_task_runner_|. + // This should be used when LibYUVImageProcessorBackend is used without + // ImageProcessor. + static std::unique_ptr<ImageProcessorBackend> CreateWithTaskRunner( + const PortConfig& input_config, + const PortConfig& output_config, + OutputMode output_mode, + VideoRotation relative_rotation, ErrorCB error_cb, scoped_refptr<base::SequencedTaskRunner> backend_task_runner);
diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc index d95d9ab006..dc72a4a 100644 --- a/media/gpu/v4l2/v4l2_image_processor_backend.cc +++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
@@ -113,7 +113,6 @@ V4L2ImageProcessorBackend::JobRecord::~JobRecord() = default; V4L2ImageProcessorBackend::V4L2ImageProcessorBackend( - scoped_refptr<base::SequencedTaskRunner> backend_task_runner, scoped_refptr<V4L2Device> device, const PortConfig& input_config, const PortConfig& output_config, @@ -128,7 +127,8 @@ output_mode, relative_rotation, std::move(error_cb), - std::move(backend_task_runner)), + base::ThreadPool::CreateSequencedTaskRunner( + {base::TaskPriority::USER_VISIBLE})), input_memory_type_(input_memory_type), output_memory_type_(output_memory_type), device_(device), @@ -229,8 +229,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner) { + ErrorCB error_cb) { VLOGF(2); DCHECK_GT(num_buffers, 0u); @@ -413,7 +412,7 @@ : InputStorageTypeToV4L2Memory(output_storage_type); std::unique_ptr<V4L2ImageProcessorBackend> image_processor( new V4L2ImageProcessorBackend( - backend_task_runner, std::move(device), + std::move(device), PortConfig(input_config.fourcc, negotiated_input_size, input_planes, input_config.visible_rect, {input_storage_type}), PortConfig(output_config.fourcc, negotiated_output_size, @@ -432,13 +431,14 @@ }, base::Unretained(&done), base::Unretained(&success)); // Using base::Unretained() is safe because it is blocking call. - backend_task_runner->PostTask( + image_processor->backend_task_runner_->PostTask( FROM_HERE, base::BindOnce(&V4L2ImageProcessorBackend::Initialize, base::Unretained(image_processor.get()), std::move(init_cb))); done.Wait(); if (!success) { // This needs to be destroyed on |backend_task_runner|. + auto backend_task_runner = image_processor->backend_task_runner_; backend_task_runner->DeleteSoon(FROM_HERE, std::move(image_processor)); return nullptr; }
diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.h b/media/gpu/v4l2/v4l2_image_processor_backend.h index b09d78d..282f90e 100644 --- a/media/gpu/v4l2/v4l2_image_processor_backend.h +++ b/media/gpu/v4l2/v4l2_image_processor_backend.h
@@ -51,8 +51,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner); + ErrorCB error_cb); V4L2ImageProcessorBackend(const V4L2ImageProcessorBackend&) = delete; V4L2ImageProcessorBackend& operator=(const V4L2ImageProcessorBackend&) = @@ -108,17 +107,15 @@ size_t output_buffer_id; }; - V4L2ImageProcessorBackend( - scoped_refptr<base::SequencedTaskRunner> backend_task_runner, - scoped_refptr<V4L2Device> device, - const PortConfig& input_config, - const PortConfig& output_config, - v4l2_memory input_memory_type, - v4l2_memory output_memory_type, - OutputMode output_mode, - VideoRotation relative_rotation, - size_t num_buffers, - ErrorCB error_cb); + V4L2ImageProcessorBackend(scoped_refptr<V4L2Device> device, + const PortConfig& input_config, + const PortConfig& output_config, + v4l2_memory input_memory_type, + v4l2_memory output_memory_type, + OutputMode output_mode, + VideoRotation relative_rotation, + size_t num_buffers, + ErrorCB error_cb); ~V4L2ImageProcessorBackend() override; void Destroy() override; // Stop all processing on |poll_task_runner_|.
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.cc b/media/gpu/vaapi/vaapi_image_processor_backend.cc index 1662a47..d3cd8052 100644 --- a/media/gpu/vaapi/vaapi_image_processor_backend.cc +++ b/media/gpu/vaapi/vaapi_image_processor_backend.cc
@@ -16,6 +16,7 @@ #include "base/metrics/histogram_functions.h" #include "base/stl_util.h" #include "base/task/sequenced_task_runner.h" +#include "base/task/thread_pool.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "media/gpu/chromeos/fourcc.h" @@ -65,8 +66,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner) { + ErrorCB error_cb) { DCHECK_EQ(output_mode, OutputMode::IMPORT) << "Only OutputMode::IMPORT supported"; // VaapiImageProcessorBackend supports ChromeOS only. @@ -123,7 +123,7 @@ // scenario. return base::WrapUnique<ImageProcessorBackend>(new VaapiImageProcessorBackend( input_config, output_config, OutputMode::IMPORT, relative_rotation, - std::move(error_cb), std::move(backend_task_runner))); + std::move(error_cb))); #endif } @@ -132,14 +132,14 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner) + ErrorCB error_cb) : ImageProcessorBackend(input_config, output_config, output_mode, relative_rotation, std::move(error_cb), - std::move(backend_task_runner)) {} + base::ThreadPool::CreateSequencedTaskRunner( + {base::TaskPriority::USER_VISIBLE})) {} VaapiImageProcessorBackend::~VaapiImageProcessorBackend() { DCHECK_CALLED_ON_VALID_SEQUENCE(backend_sequence_checker_);
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.h b/media/gpu/vaapi/vaapi_image_processor_backend.h index 5947960..7ac87f6 100644 --- a/media/gpu/vaapi/vaapi_image_processor_backend.h +++ b/media/gpu/vaapi/vaapi_image_processor_backend.h
@@ -37,8 +37,7 @@ const PortConfig& output_config, OutputMode output_mode, VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner); + ErrorCB error_cb); // ImageProcessor implementation. void Process(scoped_refptr<VideoFrame> input_frame, @@ -47,13 +46,11 @@ void Reset() override; private: - VaapiImageProcessorBackend( - const PortConfig& input_config, - const PortConfig& output_config, - OutputMode output_mode, - VideoRotation relative_rotation, - ErrorCB error_cb, - scoped_refptr<base::SequencedTaskRunner> backend_task_runner); + VaapiImageProcessorBackend(const PortConfig& input_config, + const PortConfig& output_config, + OutputMode output_mode, + VideoRotation relative_rotation, + ErrorCB error_cb); ~VaapiImageProcessorBackend() override; const VASurface* GetSurfaceForVideoFrame(scoped_refptr<VideoFrame> frame,
diff --git a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc index de9a647..cd35893b 100644 --- a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
@@ -23,6 +23,7 @@ #include "base/numerics/checked_math.h" #include "base/numerics/safe_conversions.h" #include "base/task/single_thread_task_runner.h" +#include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" #include "gpu/ipc/common/gpu_memory_buffer_impl.h" #include "media/base/bind_to_current_loop.h" @@ -377,7 +378,7 @@ // LibYUVImageProcessorBackend::Create() is called on // (i.e., |decoder_thread_|) and we control the lifetime of |decoder_thread_|. // Therefore, base::Unretained(this) is safe. - image_processor_ = LibYUVImageProcessorBackend::Create( + image_processor_ = LibYUVImageProcessorBackend::CreateWithTaskRunner( input_config, output_config, ImageProcessorBackend::OutputMode::IMPORT, VIDEO_ROTATION_0, base::BindRepeating( @@ -548,7 +549,6 @@ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) : io_task_runner_(io_task_runner), client_(nullptr), - decoder_thread_("VaapiMjpegDecoderThread"), weak_this_factory_(this) { DCHECK(io_task_runner_->BelongsToCurrentThread()); } @@ -561,7 +561,6 @@ if (decoder_task_runner_) { decoder_task_runner_->DeleteSoon(FROM_HERE, std::move(decoder_)); } - decoder_thread_.Stop(); } void VaapiMjpegDecodeAccelerator::InitializeAsync( @@ -571,14 +570,9 @@ DCHECK(io_task_runner_->BelongsToCurrentThread()); client_ = client; - // Bind to |io_task_runner| to guarantee |init_cb| is called asynchronously - init_cb = BindToCurrentLoop(std::move(init_cb)); - if (!decoder_thread_.Start()) { - VLOGF(1) << "Failed to start decoding thread."; - std::move(init_cb).Run(false); - return; - } - decoder_task_runner_ = decoder_thread_.task_runner(); + decoder_task_runner_ = base::ThreadPool::CreateSequencedTaskRunner( + {base::TaskPriority::USER_VISIBLE}); + DCHECK(decoder_task_runner_); auto video_frame_ready_cb = base::BindPostTask( io_task_runner_, @@ -595,7 +589,8 @@ decoder_task_runner_->PostTask( FROM_HERE, base::BindOnce(&VaapiMjpegDecodeAccelerator::Decoder::Initialize, - base::Unretained(decoder_.get()), std::move(init_cb))); + base::Unretained(decoder_.get()), + BindToCurrentLoop(std::move(init_cb)))); } void VaapiMjpegDecodeAccelerator::Decode(
diff --git a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.h b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.h index 934176cd..a6c275f 100644 --- a/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.h +++ b/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.h
@@ -21,6 +21,7 @@ namespace base { class SingleThreadTaskRunner; +class SequencedTaskRunner; } namespace media { @@ -79,11 +80,8 @@ std::unique_ptr<Decoder> decoder_; - base::Thread decoder_thread_; - // Use this to post tasks to |decoder_thread_| instead of - // |decoder_thread_.task_runner()| because the latter will be NULL once - // |decoder_thread_.Stop()| returns. - scoped_refptr<base::SingleThreadTaskRunner> decoder_task_runner_; + // The task runner on which the functions of |decoder_| are executed. + scoped_refptr<base::SequencedTaskRunner> decoder_task_runner_; // WeakPtr factory for use in posting tasks from |decoder_task_runner_| back // to |task_runner_|. Since |decoder_thread_| is a fully owned member of
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index bbca414..aab57c9 100644 --- a/net/http/transport_security_state_static.pins +++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2023-01-15 12:54 UTC +# Last updated: 2023-01-16 12:55 UTC PinsListTimestamp -1673787297 +1673873710 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/remoting/resources/remoting_strings_fil.xtb b/remoting/resources/remoting_strings_fil.xtb index 433ef9f..32cb534 100644 --- a/remoting/resources/remoting_strings_fil.xtb +++ b/remoting/resources/remoting_strings_fil.xtb
@@ -4,6 +4,7 @@ <translation id="1002108253973310084">Nakakita ng hindi tugmang bersyon ng protocol. Pakitiyak na na-install mo ang pinakabagong bersyon ng software sa parehong computer at subukan ulit.</translation> <translation id="1008557486741366299">Hindi Ngayon</translation> <translation id="1201402288615127009">Susunod</translation> +<translation id="1296511125400541222">Copyright 2023 Ang Mga May-akda ng Chromium. Nakalaan ang Lahat ng Karapatan.</translation> <translation id="1297009705180977556">Nagkaroon ng error sa pagkonekta sa <ph name="HOSTNAME" /></translation> <translation id="1450760146488584666">Hindi umiiral ang hiniling na bagay.</translation> <translation id="1480046233931937785">Mga Credit</translation> @@ -88,6 +89,7 @@ <translation id="4808503597364150972">Pakilagay ang iyong PIN para sa <ph name="HOSTNAME" />.</translation> <translation id="4812684235631257312">Host</translation> <translation id="4867841927763172006">Magpadala ng PrtScn</translation> +<translation id="4960795469833295568">Copyright 2023 Google LLC. Nakalaan ang Lahat ng Karapatan.</translation> <translation id="4974476491460646149">Isinara ang koneksyon para sa <ph name="HOSTNAME" /></translation> <translation id="4985296110227979402">Kailangan mo munang i-set up ang iyong computer para sa remote na access</translation> <translation id="4987330545941822761">Hindi matukoy ng Remote na Desktop ng Chrome ang browser para lokal na magbukas ng mga URL. Pakipili ito mula sa listahan sa ibaba.</translation>
diff --git a/remoting/resources/remoting_strings_sk.xtb b/remoting/resources/remoting_strings_sk.xtb index ca2e7c2d..ad5c207 100644 --- a/remoting/resources/remoting_strings_sk.xtb +++ b/remoting/resources/remoting_strings_sk.xtb
@@ -4,6 +4,7 @@ <translation id="1002108253973310084">Bola zistená nekompatibilná verzia protokolu. Uistite sa, že máte na oboch počítačoch nainštalovanú najnovšiu verziu príslušného softvéru a skúste to znova.</translation> <translation id="1008557486741366299">Teraz nie</translation> <translation id="1201402288615127009">Ďalej</translation> +<translation id="1296511125400541222">Copyright 2023 Autori prehliadača Chromium. Všetky práva vyhradené.</translation> <translation id="1297009705180977556">Pri pripájaní k zariadeniu <ph name="HOSTNAME" /> sa vyskytla chyba</translation> <translation id="1450760146488584666">Požadovaný objekt neexistuje</translation> <translation id="1480046233931937785">Poďakovanie</translation> @@ -88,6 +89,7 @@ <translation id="4808503597364150972">Zadajte kód PIN pre počítač <ph name="HOSTNAME" />.</translation> <translation id="4812684235631257312">Hostiteľ</translation> <translation id="4867841927763172006">Odoslať akciu PrtScn</translation> +<translation id="4960795469833295568">Copyright 2023 Google LLC. Všetky práva vyhradené.</translation> <translation id="4974476491460646149">Pripojenie k zariadeniu <ph name="HOSTNAME" /> bolo ukončené</translation> <translation id="4985296110227979402">Najprv musíte v počítači nastaviť vzdialený prístup</translation> <translation id="4987330545941822761">Vzdialená plocha Chrome nedokáže určiť prehliadač, v ktorom sa majú miestne otvárať webové adresy. Vyberte ho v zozname nižšie.</translation>
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 52f61ec..04858ba 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5839,9 +5839,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -5853,8 +5853,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -6010,9 +6010,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6024,8 +6024,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -6162,9 +6162,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6176,8 +6176,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 44485a9..888a6f2a 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -83297,9 +83297,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83311,8 +83311,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -83438,9 +83438,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83452,8 +83452,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -83565,9 +83565,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83579,8 +83579,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -84913,9 +84913,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -84926,8 +84926,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -85084,9 +85084,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -85097,8 +85097,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -85236,9 +85236,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -85249,8 +85249,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -86774,9 +86774,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -86787,8 +86787,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -86945,9 +86945,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -86958,8 +86958,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -87097,9 +87097,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87110,8 +87110,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -87883,9 +87883,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87896,8 +87896,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 482ff94..4825850 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -18653,12 +18653,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18670,8 +18670,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -18844,12 +18844,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18861,8 +18861,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [ @@ -19011,12 +19011,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5541.0", + "description": "Run with ash-chrome version 111.0.5542.0", "isolate_profile_data": true, "merge": { "args": [], @@ -19028,8 +19028,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5541.0", - "revision": "version:111.0.5541.0" + "location": "lacros_version_skew_tests_v111.0.5542.0", + "revision": "version:111.0.5542.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/filters/pixel_tests.filter b/testing/buildbot/filters/pixel_tests.filter index 5479de9..10a36729 100644 --- a/testing/buildbot/filters/pixel_tests.filter +++ b/testing/buildbot/filters/pixel_tests.filter
@@ -26,6 +26,7 @@ DeepScanningFailureModalDialogTest.* *DiceWebSigninInterceptionBubblePixelTest.InvokeUi_* *DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_* +EnterpriseWelcomeUIWindowPixelTest.* ExtensionInstallDialogViewInteractiveBrowserTest.* ExtensionUninstallDialogViewInteractiveBrowserTest.* *EyeDropperBrowserTest.*
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index ebe4820..507507bb 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,16 +22,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5541.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5542.0/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 111.0.5541.0', + 'description': 'Run with ash-chrome version 111.0.5542.0', 'identifier': 'Lacros version skew testing ash canary', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v111.0.5541.0', - 'revision': 'version:111.0.5541.0', + 'location': 'lacros_version_skew_tests_v111.0.5542.0', + 'revision': 'version:111.0.5542.0', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 51b41e70..f490a518 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -6232,28 +6232,6 @@ ] } ], - "InvalidationSetClassBloomFilter": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "InvalidationSetClassBloomFilter" - ] - } - ] - } - ], "IsVoiceSearchEnabledCache": [ { "platforms": [ @@ -9994,6 +9972,26 @@ ] } ], + "SafetyCheckUnusedSitePermissions": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafetyCheckUnusedSitePermissions" + ] + } + ] + } + ], "SaveUpdatePasswordEditDialogStudy": [ { "platforms": [ @@ -12755,6 +12753,26 @@ ] } ], + "WebProtectPrint": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnablePrintContentAnalysis" + ] + } + ] + } + ], "WebProtectReportOnlyUI": [ { "platforms": [
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index 9734845c..6672da0 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -542,7 +542,8 @@ // A server-side switch for the output device (sink) selection in Web Audio API. // This enables the selection via the AudioContext constructor and also via // AudioContext.setSinkId() method. -BASE_FEATURE(kWebAudioSinkSelection, "kWebAudioSinkSelection", +BASE_FEATURE(kWebAudioSinkSelection, + "kWebAudioSinkSelection", base::FEATURE_ENABLED_BY_DEFAULT); // A feature to reduce the set of resources fetched by No-State Prefetch. @@ -1419,10 +1420,6 @@ "WebRtc-ExposeNonStandardStats", base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kInvalidationSetClassBloomFilter, - "InvalidationSetClassBloomFilter", - base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kPendingBeaconAPI, "PendingBeaconAPI", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 7683b79c..d1f4c51 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -674,11 +674,6 @@ // If enabled, expose non-standard stats in the WebRTC getStats API. BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebRtcExposeNonStandardStats); -// If enabled, style invalidation will use a Bloom filter for storing -// CSS classes that need (only) self-invalidation, instead of having them -// in the main hash map. -BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInvalidationSetClassBloomFilter); - // Whether the pending beacon API is enabled or not. // https://github.com/WICG/pending-beacon/blob/main/README.md // - kPendingBeaconAPI = {true: {"requires_origin_trial": false}} to enable the
diff --git a/third_party/blink/renderer/bindings/generated_in_core.gni b/third_party/blink/renderer/bindings/generated_in_core.gni index 7c7eae2e..27fc0d24 100644 --- a/third_party/blink/renderer/bindings/generated_in_core.gni +++ b/third_party/blink/renderer/bindings/generated_in_core.gni
@@ -375,8 +375,8 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_format_update_event_init.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_update_event_init.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_update_event_init.h", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.h", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_touch_event_init.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_touch_event_init.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_touch_init.cc", @@ -570,10 +570,10 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_track_kind.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_track_mode.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_text_track_mode.h", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_phase.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_phase.h", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_range.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_timeline_range.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_url_pattern_component.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_url_pattern_component.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_visibility_state.cc", @@ -1725,8 +1725,6 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_double_string.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_double_string_stringsequence.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_double_string_stringsequence.h", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_double_timelineoffset.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_double_timelineoffset.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_element_htmlcollection.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_element_htmlcollection.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_element_nodelist.cc", @@ -1767,6 +1765,8 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_keyframeeffectoptions_unrestricteddouble.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_medialist_string.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_medialist_string.h", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_string_timelinerangeoffset.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_string_timelinerangeoffset.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_node_string_trustedscript.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_node_string_trustedscript.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_union_object_objectarray.cc",
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni index 8d226e70..810b8f9 100644 --- a/third_party/blink/renderer/bindings/generated_in_modules.gni +++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -101,6 +101,8 @@ ] generated_dictionary_sources_in_modules = [ + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_codec_specifics_vp_8.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_codec_specifics_vp_8.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_properties.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_properties.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_request_config.cc", @@ -1354,6 +1356,10 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_pressure_source.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_pressure_state.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_pressure_state.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_decode_target_indication.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_decode_target_indication.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_video_codec_type.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_video_codec_type.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_type.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_type.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_push_encryption_key_name.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index 1281c5b..21add190 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -455,6 +455,7 @@ "//third_party/blink/renderer/modules/ml/ml_tensor.idl", "//third_party/blink/renderer/modules/ml/ml_tensor_info.idl", "//third_party/blink/renderer/modules/ml/navigator_ml.idl", + "//third_party/blink/renderer/modules/ml/worker_navigator_ml.idl", "//third_party/blink/renderer/modules/ml/webnn/ml_graph.idl", "//third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl", "//third_party/blink/renderer/modules/ml/webnn/ml_operand.idl", @@ -537,6 +538,7 @@ "//third_party/blink/renderer/modules/peerconnection/rtc_dtls_fingerprint.idl", "//third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.idl", "//third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.idl", + "//third_party/blink/renderer/modules/peerconnection/rtc_codec_specifics.idl", "//third_party/blink/renderer/modules/peerconnection/rtc_dtmf_tone_change_event.idl", "//third_party/blink/renderer/modules/peerconnection/rtc_dtmf_tone_change_event_init.idl", "//third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl",
diff --git a/third_party/blink/renderer/core/animation/animation_effect.cc b/third_party/blink/renderer/core/animation/animation_effect.cc index b8b7ecf..21fbf6d 100644 --- a/third_party/blink/renderer/core/animation/animation_effect.cc +++ b/third_party/blink/renderer/core/animation/animation_effect.cc
@@ -78,10 +78,11 @@ // Normalize timings for progress based timelines normalized_->timeline_duration = TimelineDuration(); - bool has_timeline_offset = timing_.start_delay.IsTimelineOffset() || - timing_.end_delay.IsTimelineOffset(); - - if (timing_.iteration_duration && !has_timeline_offset) { + // TODO(crbug.com/1216527): Refactor for animation-range + delays. Still + // some details to sort out in the spec when mixing delays and range + // offsets. What happens if you have an animation range and time based + // delays? + if (timing_.iteration_duration) { // Scaling up iteration_duration allows animation effect to be able to // handle values produced by progress based timelines. At this point it // can be assumed that EndTimeInternal() will give us a good value. @@ -123,7 +124,8 @@ (1.0 / timing_.iteration_count) * normalized_->timeline_duration.value(); } else { - // convert to percentages then multiply by the timeline_duration + // End time is not 0 or infinite. + // Convert to percentages then multiply by the timeline_duration normalized_->start_delay = (timing_.start_delay.AsTimeValue() / end_time) * normalized_->timeline_duration.value(); @@ -136,9 +138,14 @@ normalized_->timeline_duration.value(); } } else { - // Handle iteration_duration value of "auto". Treat the duration as "auto" - // if the using timeline offsets for the start or end delay since in this - // case the duration is arbitrary. + // Default (auto) duration with a non-monotonic timeline case. + // TODO(crbug.com/1216527): Update timing once ratified in the spec. + // Normalized timing is purely used internally in order to keep the bulk + // of the animation code time-based. Range start and end is combined with + // delay and endDelay. At present, we do not support non-zero time delays + // with duration auto, and delays are purely set by range start and end. + // This will change when we support percent based delays, and possibly + // figure out how to mix percentages and time-based values. normalized_->iteration_duration = IntrinsicIterationDuration(); std::pair<AnimationTimeDelta, AnimationTimeDelta> delay_pair = TimelineOffsetsToTimeDelays();
diff --git a/third_party/blink/renderer/core/animation/animation_effect_test.cc b/third_party/blink/renderer/core/animation/animation_effect_test.cc index 0e925316..c766873 100644 --- a/third_party/blink/renderer/core/animation/animation_effect_test.cc +++ b/third_party/blink/renderer/core/animation/animation_effect_test.cc
@@ -34,50 +34,50 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/bindings/core/v8/v8_computed_effect_timing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_optional_effect_timing.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_string_unrestricteddouble.h" #include "third_party/blink/renderer/core/animation/animation_effect_owner.h" +#include "third_party/blink/renderer/core/animation/timing.h" #include "third_party/blink/renderer/core/css/cssom/css_unit_values.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" namespace blink { -V8UnionDoubleOrTimelineOffset* CreateTimelineOffsetDelay(String phase, - double percent) { - TimelineOffset* timeline_offset = TimelineOffset::Create(); - absl::optional<V8TimelineOffsetPhase> timeline_offset_phase = - V8TimelineOffsetPhase::Create(phase); - timeline_offset->setPhase(timeline_offset_phase.value()); - timeline_offset->setPercent(CSSUnitValues::percent(percent)); - return MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>(timeline_offset); +Timing::V8TimelineRangeOffset* CreateTimelineOffset(String range, + double percent) { + TimelineRangeOffset* timeline_range_offset = TimelineRangeOffset::Create(); + timeline_range_offset->setRangeName(range); + timeline_range_offset->setOffset(CSSUnitValues::percent(percent)); + return MakeGarbageCollected<Timing::V8TimelineRangeOffset>( + timeline_range_offset); } -V8UnionDoubleOrTimelineOffset* CreateTimeDelay(double delay_in_ms) { - return MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>(delay_in_ms); +Timing::V8Delay* CreateTimeDelay(double delay_in_ms) { + return MakeGarbageCollected<Timing::V8Delay>(delay_in_ms); } -bool TimelineOffsetEquals(const V8UnionDoubleOrTimelineOffset* delay, - String expected_phase, - double expected_percent) { - if (!delay->IsTimelineOffset()) +bool TimelineOffsetEquals(const Timing::V8TimelineRangeOffset* value, + String expected_range, + double expected_offset_as_percent) { + if (!value->IsTimelineRangeOffset()) { return false; + } - TimelineOffset* timeline_offset = delay->GetAsTimelineOffset(); - if (!timeline_offset->hasPhase() || !timeline_offset->hasPercent()) + TimelineRangeOffset* timeline_range_offset = + value->GetAsTimelineRangeOffset(); + if (!timeline_range_offset->hasRangeName() || + !timeline_range_offset->hasOffset()) { return false; + } - TimelineOffset* reference = - CreateTimelineOffsetDelay(expected_phase, expected_percent) - ->GetAsTimelineOffset(); - - if (timeline_offset->phase().AsEnum() != reference->phase().AsEnum()) + if (timeline_range_offset->rangeName() != expected_range) { return false; + } - double percent = timeline_offset->percent() + double percent = timeline_range_offset->offset() ->to(CSSPrimitiveValue::UnitType::kPercentage) ->value(); - return std::abs(percent - expected_percent) < 1e-6; + return std::abs(percent - expected_offset_as_percent) < 1e-6; } class MockAnimationEffectOwner @@ -801,19 +801,22 @@ effect->updateTiming(effect_timing); EXPECT_EQ(2, effect->getTiming()->delay()->GetAsDouble()); effect_timing = OptionalEffectTiming::Create(); - effect_timing->setDelay(CreateTimelineOffsetDelay("enter", 0)); + + effect_timing->setRangeStart(CreateTimelineOffset("enter", 0)); effect->updateTiming(effect_timing); - EXPECT_TRUE(TimelineOffsetEquals(effect->getTiming()->delay(), "enter", 0)); + EXPECT_TRUE( + TimelineOffsetEquals(effect->getTiming()->rangeStart(), "enter", 0)); EXPECT_EQ(0, effect->getTiming()->endDelay()->GetAsDouble()); + effect_timing = OptionalEffectTiming::Create(); effect_timing->setEndDelay(CreateTimeDelay(0.5)); effect->updateTiming(effect_timing); EXPECT_EQ(0.5, effect->getTiming()->endDelay()->GetAsDouble()); effect_timing = OptionalEffectTiming::Create(); - effect_timing->setEndDelay(CreateTimelineOffsetDelay("exit", 50)); + effect_timing->setRangeEnd(CreateTimelineOffset("exit", 50)); effect->updateTiming(effect_timing); EXPECT_TRUE( - TimelineOffsetEquals(effect->getTiming()->endDelay(), "exit", 50)); + TimelineOffsetEquals(effect->getTiming()->rangeEnd(), "exit", 50)); EXPECT_EQ("auto", effect->getTiming()->fill()); effect_timing = OptionalEffectTiming::Create(); effect_timing->setFill("backwards");
diff --git a/third_party/blink/renderer/core/animation/compositor_animations_test.cc b/third_party/blink/renderer/core/animation/compositor_animations_test.cc index aeeff6a..2850d0a 100644 --- a/third_party/blink/renderer/core/animation/compositor_animations_test.cc +++ b/third_party/blink/renderer/core/animation/compositor_animations_test.cc
@@ -269,11 +269,8 @@ // Currently, compositor animation tests are using document timelines // exclusively. In order to support scroll timelines, the algorithm would - // need to correct for the intrinsic iteration duration of the timeline as - // well as delays that are expressed as timeline offsets. + // need to correct for the intrinsic iteration duration of the timeline. EXPECT_TRUE(timeline_->IsDocumentTimeline()); - EXPECT_FALSE(timing.start_delay.IsTimelineOffset()); - EXPECT_FALSE(timing.end_delay.IsTimelineOffset()); normalized_timing.start_delay = timing.start_delay.AsTimeValue(); normalized_timing.end_delay = timing.end_delay.AsTimeValue();
diff --git a/third_party/blink/renderer/core/animation/css/css_animations.cc b/third_party/blink/renderer/core/animation/css/css_animations.cc index a4f068c..b5501f06 100644 --- a/third_party/blink/renderer/core/animation/css/css_animations.cc +++ b/third_party/blink/renderer/core/animation/css/css_animations.cc
@@ -118,20 +118,22 @@ auto* keyframe = MakeGarbageCollected<StringKeyframe>(); const Vector<KeyframeOffset>& offsets = style_keyframe->Keys(); DCHECK(!offsets.empty()); - bool drop_keyframe = false; // If keyframe doesn't have a named range offset, act as before, we don't // care if we have a timeline at this point or not in this case. - if (offsets[0].phase == Timing::TimelineNamedPhase::kNone) { + if (offsets[0].name == Timing::TimelineNamedRange::kNone) { keyframe->SetOffset(offsets[0].percent); } else { // No matter what the timeline is, we have named range keyframes. has_named_range_keyframes = true; if (timeline && timeline->IsViewTimeline()) { - auto fractional_offset = To<ViewTimeline>(timeline)->ToFractionalOffset( - Timing::Delay(offsets[0].phase, offsets[0].percent)); - keyframe->SetOffset(fractional_offset.value()); + Timing::TimelineOffset timeline_offset; + timeline_offset.name = offsets[0].name; + timeline_offset.relative_offset = offsets[0].percent; + double fractional_offset = + To<ViewTimeline>(timeline)->ToFractionalOffset(timeline_offset); + keyframe->SetOffset(fractional_offset); } else { // This happens when you have a DocumentTimeline/ScrollTimeline with // Named Range keyframes, and also sometimes when you have a @@ -175,17 +177,19 @@ } // The last keyframe specified at a given offset is used. for (wtf_size_t j = 1; j < offsets.size(); ++j) { - if (offsets[j].phase == Timing::TimelineNamedPhase::kNone) { + if (offsets[j].name == Timing::TimelineNamedRange::kNone) { keyframes.push_back( To<StringKeyframe>(keyframe->CloneWithOffset(offsets[j].percent))); } else { has_named_range_keyframes = true; if (timeline && timeline->IsViewTimeline()) { - auto fractional_offset = - To<ViewTimeline>(timeline)->ToFractionalOffset( - Timing::Delay(offsets[j].phase, offsets[j].percent)); - keyframes.push_back(To<StringKeyframe>( - keyframe->CloneWithOffset(fractional_offset.value()))); + Timing::TimelineOffset timeline_offset; + timeline_offset.name = offsets[j].name; + timeline_offset.relative_offset = offsets[j].percent; + double fractional_offset = + To<ViewTimeline>(timeline)->ToFractionalOffset(timeline_offset); + keyframes.push_back( + To<StringKeyframe>(keyframe->CloneWithOffset(fractional_offset))); } } }
diff --git a/third_party/blink/renderer/core/animation/effect_timing.idl b/third_party/blink/renderer/core/animation/effect_timing.idl index d0f3943b..dc304644 100644 --- a/third_party/blink/renderer/core/animation/effect_timing.idl +++ b/third_party/blink/renderer/core/animation/effect_timing.idl
@@ -6,21 +6,18 @@ enum FillMode { "none", "forwards", "backwards", "both", "auto" }; enum PlaybackDirection { "normal", "reverse", "alternate", "alternate-reverse" }; +enum TimelineRange { "none", "cover", "contain", "enter", "exit" }; -// TODO(https://github.com/w3c/csswg-drafts/issues/7701): Update enum name -// once resolved. -enum TimelineOffsetPhase { "cover", "contain", "enter", "exit" }; - -dictionary TimelineOffset { - // TODO(https://github.com/w3c/csswg-drafts/issues/7701): Update dictionary - // names once resolved. - TimelineOffsetPhase phase; - CSSNumericValue percent; +dictionary TimelineRangeOffset { + TimelineRange rangeName; + CSSNumericValue offset; }; dictionary EffectTiming { - (double or TimelineOffset) delay = 0; - (double or TimelineOffset) endDelay = 0; + (double or CSSNumericValue) delay = 0; + (double or CSSNumericValue) endDelay = 0; + (DOMString or TimelineRangeOffset) rangeStart = "auto"; + (DOMString or TimelineRangeOffset) rangeEnd = "auto"; FillMode fill = "auto"; double iterationStart = 0.0; unrestricted double iterations = 1.0;
diff --git a/third_party/blink/renderer/core/animation/optional_effect_timing.idl b/third_party/blink/renderer/core/animation/optional_effect_timing.idl index 3f7ab994..fa3a1e14 100644 --- a/third_party/blink/renderer/core/animation/optional_effect_timing.idl +++ b/third_party/blink/renderer/core/animation/optional_effect_timing.idl
@@ -5,8 +5,10 @@ // https://drafts.csswg.org/web-animations-1/#the-effecttiming-dictionaries dictionary OptionalEffectTiming { - (double or TimelineOffset) delay; - (double or TimelineOffset) endDelay; + (double or CSSNumericValue) delay; + (double or CSSNumericValue) endDelay; + (DOMString or TimelineRangeOffset) rangeStart; + (DOMString or TimelineRangeOffset) rangeEnd; FillMode fill; double iterationStart; unrestricted double iterations;
diff --git a/third_party/blink/renderer/core/animation/timing.cc b/third_party/blink/renderer/core/animation/timing.cc index c175005..1146aae 100644 --- a/third_party/blink/renderer/core/animation/timing.cc +++ b/third_party/blink/renderer/core/animation/timing.cc
@@ -6,8 +6,7 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_computed_effect_timing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_effect_timing.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_double.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_string_unrestricteddouble.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_double_string.h" @@ -16,40 +15,48 @@ namespace blink { -String Timing::TimelineRangeNameToString(Timing::TimelineNamedPhase phase) { - switch (phase) { - case Timing::TimelineNamedPhase::kNone: +namespace { + +Timing::V8TimelineRangeOffset* DefaultBoundary() { + return MakeGarbageCollected<Timing::V8TimelineRangeOffset>("auto"); +} + +} // namespace + +String Timing::TimelineRangeNameToString( + Timing::TimelineNamedRange range_name) { + switch (range_name) { + case Timing::TimelineNamedRange::kNone: return "none"; - case Timing::TimelineNamedPhase::kCover: + case Timing::TimelineNamedRange::kCover: return "cover"; - case Timing::TimelineNamedPhase::kContain: + case Timing::TimelineNamedRange::kContain: return "contain"; - case Timing::TimelineNamedPhase::kEnter: + case Timing::TimelineNamedRange::kEnter: return "enter"; - case Timing::TimelineNamedPhase::kExit: + case Timing::TimelineNamedRange::kExit: return "exit"; } } -V8UnionDoubleOrTimelineOffset* Timing::Delay::ToV8UnionDoubleOrTimelineOffset() - const { - if (phase == Timing::TimelineNamedPhase::kNone) { - return MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>( - AsTimeValue().InMillisecondsF()); - } else { - TimelineOffset* timeline_offset = TimelineOffset::Create(); - absl::optional<V8TimelineOffsetPhase> timeline_offset_phase = - V8TimelineOffsetPhase::Create(TimelineRangeNameToString(phase)); - if (timeline_offset_phase) - timeline_offset->setPhase(timeline_offset_phase.value()); - timeline_offset->setPercent(CSSUnitValues::percent(100 * relative_offset)); +Timing::V8Delay* Timing::Delay::ToV8Delay() const { + // TODO(crbug.com/1216527) support delay as percentage. + return MakeGarbageCollected<V8Delay>(AsTimeValue().InMillisecondsF()); +} - return MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>(timeline_offset); - } +Timing::V8TimelineRangeOffset* Timing::TimelineOffset::ToV8TimelineRangeOffset() + const { + TimelineRangeOffset* timeline_range = + MakeGarbageCollected<TimelineRangeOffset>(); + timeline_range->setRangeName(name); + // TODO(https://github.com/w3c/csswg-drafts/issues/7575): + // Support fixed offsets as well as percentage. + timeline_range->setOffset(CSSUnitValues::percent(100 * relative_offset)); + return MakeGarbageCollected<V8TimelineRangeOffset>(timeline_range); } String Timing::FillModeString(FillMode fill_mode) { @@ -111,8 +118,18 @@ EffectTiming* effect_timing = EffectTiming::Create(); // Specified values used here so that inputs match outputs for JS API calls - effect_timing->setDelay(start_delay.ToV8UnionDoubleOrTimelineOffset()); - effect_timing->setEndDelay(end_delay.ToV8UnionDoubleOrTimelineOffset()); + effect_timing->setDelay(start_delay.ToV8Delay()); + effect_timing->setEndDelay(end_delay.ToV8Delay()); + if (range_start) { + effect_timing->setRangeStart(range_start->ToV8TimelineRangeOffset()); + } else { + effect_timing->setRangeStart(DefaultBoundary()); + } + if (range_end) { + effect_timing->setRangeEnd(range_end->ToV8TimelineRangeOffset()); + } else { + effect_timing->setRangeEnd(DefaultBoundary()); + } effect_timing->setFill(FillModeString(fill_mode)); effect_timing->setIterationStart(iteration_start); effect_timing->setIterations(iteration_count); @@ -183,8 +200,8 @@ // TODO(crbug.com/1216527): Animation effect timing members start_delay and // end_delay should be CSSNumberish - computed_timing->setDelay(start_delay.ToV8UnionDoubleOrTimelineOffset()); - computed_timing->setEndDelay(end_delay.ToV8UnionDoubleOrTimelineOffset()); + computed_timing->setDelay(start_delay.ToV8Delay()); + computed_timing->setEndDelay(end_delay.ToV8Delay()); computed_timing->setFill( Timing::FillModeString(ResolvedFillMode(is_keyframe_effect))); computed_timing->setIterationStart(iteration_start);
diff --git a/third_party/blink/renderer/core/animation/timing.h b/third_party/blink/renderer/core/animation/timing.h index cead129..595cec6 100644 --- a/third_party/blink/renderer/core/animation/timing.h +++ b/third_party/blink/renderer/core/animation/timing.h
@@ -36,10 +36,13 @@ #include "base/memory/values_equivalent.h" #include "cc/animation/keyframe_model.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range.h" #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_union_double_timelineoffset.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_double.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_union_string_timelinerangeoffset.h" #include "third_party/blink/renderer/core/animation/animation_time_delta.h" #include "third_party/blink/renderer/core/core_export.h" +#include "third_party/blink/renderer/core/css/css_value.h" #include "third_party/blink/renderer/platform/animation/timing_function.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" @@ -81,49 +84,66 @@ kOverrideIterationStart = 1 << 5, kOverrideStartDelay = 1 << 6, kOverrideTimingFunction = 1 << 7, - kOverrideAll = (1 << 8) - 1 + kOverrideRangeStart = 1 << 8, + kOverrideRangeEnd = 1 << 9, + kOverrideAll = (1 << 10) - 1 }; - // TODO: Rename to TimelineRangeName - // https://github.com/w3c/csswg-drafts/issues/7589 - enum class TimelineNamedPhase { kNone, kCover, kContain, kEnter, kExit }; + using V8Delay = V8UnionCSSNumericValueOrDouble; + using V8TimelineRangeOffset = V8UnionStringOrTimelineRangeOffset; + using TimelineNamedRange = V8TimelineRange::Enum; + + struct TimelineOffset { + TimelineOffset() = default; + explicit TimelineOffset(double relative_offset) + : relative_offset(relative_offset) {} + + V8TimelineRangeOffset* ToV8TimelineRangeOffset() const; + + void UpdateOffset(); + + TimelineNamedRange name = TimelineNamedRange::kNone; + // TODO(https://github.com/w3c/csswg-drafts/issues/7575): + // Add support for fixed as well as relative offsets. Consider storing as a + // length similar to ViewTimeline insets. + double relative_offset = 0; + + bool operator==(const TimelineOffset& other) const { + return name == other.name && relative_offset == other.relative_offset; + } + + bool operator!=(const TimelineOffset& other) const { + return !(*this == other); + } + }; // Delay can be directly expressed as time delays or calculated based on a // position on a view timeline. As part of the normalization process, a // timeline offsets are converted to time-based delays. struct Delay { - TimelineNamedPhase phase = TimelineNamedPhase::kNone; - double relative_offset = 0; + // TODO(crbug.com/7575): Support percent delays in addition to time-based + // delays. AnimationTimeDelta time_delay; Delay() = default; - Delay(TimelineNamedPhase phase, double relative_offset) - : phase(phase), relative_offset(relative_offset) {} explicit Delay(AnimationTimeDelta time) : time_delay(time) {} - bool IsInfinite() const { - return phase == TimelineNamedPhase::kNone && time_delay.is_inf(); - } + bool IsInfinite() const { return time_delay.is_inf(); } bool operator==(const Delay& other) const { - return phase == other.phase && relative_offset == other.relative_offset && - time_delay == other.time_delay; + return time_delay == other.time_delay; } bool operator!=(const Delay& other) const { return !(*this == other); } - bool IsNonzeroTimeBasedDelay() const { - return phase == TimelineNamedPhase::kNone && !time_delay.is_zero(); - } - - bool IsTimelineOffset() const { return phase != TimelineNamedPhase::kNone; } + bool IsNonzeroTimeBasedDelay() const { return !time_delay.is_zero(); } void Scale(double scale_factor) { time_delay *= scale_factor; } AnimationTimeDelta AsTimeValue() const { return time_delay; } - V8UnionDoubleOrTimelineOffset* ToV8UnionDoubleOrTimelineOffset() const; + V8Delay* ToV8Delay() const; }; using FillMode = cc::KeyframeModel::FillMode; @@ -134,7 +154,6 @@ static String FillModeString(FillMode); static FillMode StringToFillMode(const String&); static String PlaybackDirectionString(PlaybackDirection); - static String TimelineRangeNameToString(Timing::TimelineNamedPhase); Timing() = default; @@ -154,6 +173,7 @@ bool operator==(const Timing& other) const { return start_delay == other.start_delay && end_delay == other.end_delay && + range_start == other.range_start && range_end == other.range_end && fill_mode == other.fill_mode && iteration_start == other.iteration_start && iteration_count == other.iteration_count && @@ -178,9 +198,13 @@ V8CSSNumberish* ToComputedValue(absl::optional<AnimationTimeDelta>, absl::optional<AnimationTimeDelta>) const; + static String TimelineRangeNameToString(TimelineNamedRange range_name); + // TODO(crbug.com/1216527): Support CSSNumberish delays Delay start_delay; Delay end_delay; + absl::optional<TimelineOffset> range_start; + absl::optional<TimelineOffset> range_end; FillMode fill_mode = FillMode::AUTO; double iteration_start = 0; double iteration_count = 1;
diff --git a/third_party/blink/renderer/core/animation/timing_input.cc b/third_party/blink/renderer/core/animation/timing_input.cc index 33cf281..2d53911 100644 --- a/third_party/blink/renderer/core/animation/timing_input.cc +++ b/third_party/blink/renderer/core/animation/timing_input.cc
@@ -8,10 +8,9 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_animation_options.h" #include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_effect_options.h" #include "third_party/blink/renderer/bindings/core/v8/v8_optional_effect_timing.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_string_unrestricteddouble.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_union_double_timelineoffset.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_keyframeanimationoptions_unrestricteddouble.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_keyframeeffectoptions_unrestricteddouble.h" #include "third_party/blink/renderer/core/animation/animation_effect.h" @@ -47,7 +46,37 @@ return absl::nullopt; } -Timing::Delay ConvertDelay(const V8UnionDoubleOrTimelineOffset* delay, +Timing::TimelineOffset ConvertRangeOffset( + const Timing::V8TimelineRangeOffset* range_offset, + double default_percent, + ExceptionState& exception_state) { + Timing::TimelineOffset result; + if (range_offset->IsString()) { + // TODO(kevers): Implement once we have CSS support for animation-range. + result.name = Timing::TimelineNamedRange::kNone; + result.relative_offset = 0.01 * default_percent; + } else { + TimelineRangeOffset* value = range_offset->GetAsTimelineRangeOffset(); + result.name = value->hasRangeName() ? value->rangeName().AsEnum() + : Timing::TimelineNamedRange::kNone; + if (value->hasOffset()) { + CSSNumericValue* offset = value->offset(); + CSSUnitValue* unit_value = + offset->to(CSSPrimitiveValue::UnitType::kPercentage); + if (!unit_value) { + exception_state.ThrowTypeError( + "CSSNumericValue must be a percentage for animation delay."); + return result; + } + result.relative_offset = unit_value->value() / 100; + } else { + result.relative_offset = 0.01 * default_percent; + } + } + return result; +} + +Timing::Delay ConvertDelay(const Timing::V8Delay* delay, double default_percent, ExceptionState& exception_state) { Timing::Delay result; @@ -55,46 +84,9 @@ double delay_in_ms = delay->GetAsDouble(); DCHECK(std::isfinite(delay_in_ms)); result.time_delay = ANIMATION_TIME_DELTA_FROM_MILLISECONDS(delay_in_ms); - } else if (delay->IsTimelineOffset()) { - if (!RuntimeEnabledFeatures::ScrollTimelineEnabled()) - exception_state.ThrowTypeError("Delay must be a finite double"); - - TimelineOffset* timeline_offset = delay->GetAsTimelineOffset(); - V8TimelineOffsetPhase::Enum timeline_offset_phase = - timeline_offset->hasPhase() ? timeline_offset->phase().AsEnum() - : V8TimelineOffsetPhase::Enum::kCover; - switch (timeline_offset_phase) { - case V8TimelineOffsetPhase::Enum::kCover: - result.phase = Timing::TimelineNamedPhase::kCover; - break; - - case V8TimelineOffsetPhase::Enum::kContain: - result.phase = Timing::TimelineNamedPhase::kContain; - break; - - case V8TimelineOffsetPhase::Enum::kEnter: - result.phase = Timing::TimelineNamedPhase::kEnter; - break; - - case V8TimelineOffsetPhase::Enum::kExit: - result.phase = Timing::TimelineNamedPhase::kExit; - break; - - default: - NOTREACHED(); - } - if (timeline_offset->hasPercent()) { - CSSUnitValue* percent = timeline_offset->percent()->to( - CSSPrimitiveValue::UnitType::kPercentage); - if (!percent) { - exception_state.ThrowTypeError( - "CSSNumericValue must be a percentage for animation delay."); - return result; - } - result.relative_offset = percent->value() / 100; - } else { - result.relative_offset = 0.01 * default_percent; - } + } else { + // TODO(crbug.com/1216527): support delay as percentage. + exception_state.ThrowTypeError("Delay must be a finite double"); } return result; } @@ -262,6 +254,24 @@ ConvertDelay(input->endDelay(), 100, exception_state)); timing.SetTimingOverride(Timing::kOverrideEndDelay); } + if (input->hasRangeStart()) { + Timing::TimelineOffset timeline_offset = + ConvertRangeOffset(input->rangeStart(), 0, exception_state); + if (!timing.range_start || timing.range_start.value() != timeline_offset) { + timing.range_start = timeline_offset; + changed = true; + } + timing.SetTimingOverride(Timing::kOverrideRangeStart); + } + if (input->hasRangeEnd()) { + Timing::TimelineOffset timeline_offset = + ConvertRangeOffset(input->rangeEnd(), 100, exception_state); + if (!timing.range_end || timing.range_end.value() != timeline_offset) { + timing.range_end = timeline_offset; + changed = true; + } + timing.SetTimingOverride(Timing::kOverrideRangeEnd); + } if (input->hasFill()) { changed |= UpdateValueIfChanged(timing.fill_mode, Timing::StringToFillMode(input->fill()));
diff --git a/third_party/blink/renderer/core/animation/timing_input_test.cc b/third_party/blink/renderer/core/animation/timing_input_test.cc index f6c1716..a6041a9 100644 --- a/third_party/blink/renderer/core/animation/timing_input_test.cc +++ b/third_party/blink/renderer/core/animation/timing_input_test.cc
@@ -9,8 +9,7 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_animation_options.h" #include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_effect_options.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_offset_phase.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_timeline_range_offset.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_keyframeanimationoptions_unrestricteddouble.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_keyframeeffectoptions_unrestricteddouble.h" #include "third_party/blink/renderer/core/animation/animation_test_helpers.h" @@ -23,11 +22,16 @@ using animation_test_helpers::SetV8ObjectPropertyAsNumber; using animation_test_helpers::SetV8ObjectPropertyAsString; -bool TimelineOffsetDelayEquals(const Timing::Delay& delay, - Timing::TimelineNamedPhase phase, - double relative_offset) { - return delay.phase == phase && - std::abs(delay.relative_offset - relative_offset) < 1e-6; +bool TimelineRangeEquals(const absl::optional<Timing::TimelineOffset>& offset, + Timing::TimelineNamedRange rangeName, + double relative_offset) { + if (!offset) { + return false; + } + // TODO(https://github.com/w3c/csswg-drafts/issues/7575): Support fixed + // offsets as well. + return offset->name == rangeName && + std::abs(offset->relative_offset - relative_offset) < 1e-6; } class AnimationTimingInputTest : public testing::Test { @@ -42,9 +46,9 @@ String timing_property_value, bool& timing_conversion_success, bool is_keyframeeffectoptions = true); - Timing ApplyTimingInputDelayAsTimelineOffset(String timing_property, - absl::optional<String> phase, - absl::optional<double> percent); + Timing ApplyTimingInputRange(String timing_property, + absl::optional<String> range, + absl::optional<double> offset); private: void SetUp() override { page_holder_ = std::make_unique<DummyPageHolder>(); } @@ -143,28 +147,29 @@ return result; } -Timing AnimationTimingInputTest::ApplyTimingInputDelayAsTimelineOffset( +Timing AnimationTimingInputTest::ApplyTimingInputRange( String timing_property, - absl::optional<String> phase, - absl::optional<double> percent) { + absl::optional<String> name, + absl::optional<double> offset) { KeyframeEffectOptions* keyframe_effect_options = MakeGarbageCollected<KeyframeEffectOptions>(); - TimelineOffset* timeline_offset = TimelineOffset::Create(); - if (phase) { - absl::optional<V8TimelineOffsetPhase> timeline_offset_phase = - V8TimelineOffsetPhase::Create(phase.value()); - timeline_offset->setPhase(timeline_offset_phase.value()); + TimelineRangeOffset* timeline_range_offset = TimelineRangeOffset::Create(); + if (name) { + timeline_range_offset->setRangeName(name.value()); } - if (percent) - timeline_offset->setPercent(CSSUnitValues::percent(percent.value())); + if (offset) { + timeline_range_offset->setOffset(CSSUnitValues::percent(offset.value())); + } - V8UnionDoubleOrTimelineOffset* delay = - MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>(timeline_offset); - if (timing_property == "delay") - keyframe_effect_options->setDelay(delay); - else - keyframe_effect_options->setEndDelay(delay); + Timing::V8TimelineRangeOffset* range_offset = + MakeGarbageCollected<Timing::V8TimelineRangeOffset>( + timeline_range_offset); + if (timing_property == "rangeStart") { + keyframe_effect_options->setRangeStart(range_offset); + } else { + keyframe_effect_options->setRangeEnd(range_offset); + } auto* options = MakeGarbageCollected<V8UnionKeyframeEffectOptionsOrUnrestrictedDouble>( @@ -220,31 +225,32 @@ .start_delay.AsTimeValue() .InSecondsF()); EXPECT_FALSE(did_success); +} - Timing timing = ApplyTimingInputDelayAsTimelineOffset("delay", "enter", 0); - EXPECT_TRUE(TimelineOffsetDelayEquals(timing.start_delay, - Timing::TimelineNamedPhase::kEnter, 0)); +TEST_F(AnimationTimingInputTest, TimingInputRangeStart) { + V8TestingScope scope; + Timing timing = ApplyTimingInputRange("rangeStart", "enter", 0); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kEnter, 0)); + timing = ApplyTimingInputRange("rangeStart", "exit", -50); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kExit, -0.5)); - timing = ApplyTimingInputDelayAsTimelineOffset("delay", "exit", -50); - EXPECT_TRUE(TimelineOffsetDelayEquals( - timing.start_delay, Timing::TimelineNamedPhase::kExit, -0.5)); + timing = ApplyTimingInputRange("rangeStart", "cover", 50.5); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kCover, 0.505)); - timing = ApplyTimingInputDelayAsTimelineOffset("delay", "cover", 50.5); - EXPECT_TRUE(TimelineOffsetDelayEquals( - timing.start_delay, Timing::TimelineNamedPhase::kCover, 0.505)); + timing = ApplyTimingInputRange("rangeStart", "contain", 110); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kContain, 1.1)); - timing = ApplyTimingInputDelayAsTimelineOffset("delay", "contain", 110); - EXPECT_TRUE(TimelineOffsetDelayEquals( - timing.start_delay, Timing::TimelineNamedPhase::kContain, 1.1)); + timing = ApplyTimingInputRange("rangeStart", "contain", absl::nullopt); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kContain, 0)); - timing = - ApplyTimingInputDelayAsTimelineOffset("delay", "contain", absl::nullopt); - EXPECT_TRUE(TimelineOffsetDelayEquals( - timing.start_delay, Timing::TimelineNamedPhase::kContain, 0)); - - timing = ApplyTimingInputDelayAsTimelineOffset("delay", absl::nullopt, 10); - EXPECT_TRUE(TimelineOffsetDelayEquals( - timing.start_delay, Timing::TimelineNamedPhase::kCover, 0.1)); + timing = ApplyTimingInputRange("rangeStart", absl::nullopt, 10); + EXPECT_TRUE(TimelineRangeEquals(timing.range_start, + Timing::TimelineNamedRange::kNone, 0.1)); } TEST_F(AnimationTimingInputTest, @@ -296,11 +302,13 @@ ignored_success) .end_delay.AsTimeValue() .InSecondsF()); +} - Timing timing = - ApplyTimingInputDelayAsTimelineOffset("endDelay", "enter", absl::nullopt); - EXPECT_TRUE(TimelineOffsetDelayEquals(timing.end_delay, - Timing::TimelineNamedPhase::kEnter, 1)); +TEST_F(AnimationTimingInputTest, TimingInputRangeEnd) { + V8TestingScope scope; + Timing timing = ApplyTimingInputRange("rangeEnd", "enter", absl::nullopt); + EXPECT_TRUE(TimelineRangeEquals(timing.range_end, + Timing::TimelineNamedRange::kEnter, 1)); } TEST_F(AnimationTimingInputTest, TimingInputFillMode) {
diff --git a/third_party/blink/renderer/core/animation/view_timeline.cc b/third_party/blink/renderer/core/animation/view_timeline.cc index 79140da..b269979 100644 --- a/third_party/blink/renderer/core/animation/view_timeline.cc +++ b/third_party/blink/renderer/core/animation/view_timeline.cc
@@ -256,12 +256,18 @@ // Only run calculation for progress based scroll timelines if (duration && timing.iteration_count > 0) { double active_interval = 1; - absl::optional<double> start_delay = ToFractionalOffset(timing.start_delay); - if (start_delay) - active_interval -= start_delay.value(); - absl::optional<double> end_delay = ToFractionalOffset(timing.end_delay); - if (end_delay) - active_interval -= (1 - end_delay.value()); + + double start = ToFractionalOffset( + timing.range_start.value_or(Timing::TimelineOffset(0))); + double end = ToFractionalOffset( + timing.range_end.value_or(Timing::TimelineOffset(1))); + + // TODO(https://github.com/w3c/csswg-drafts/issues/7575): Accommodate fixed + // offsets. + // TODO(crbug.com1216527): Delays will also need to be incorporated once we + // support % delays. + active_interval -= start; + active_interval -= (1 - end); return duration.value() * active_interval / timing.iteration_count; } return AnimationTimeDelta(); @@ -336,26 +342,26 @@ if (!IsActive()) return nullptr; - Timing::Delay range_start; - Timing::Delay range_end; + Timing::TimelineOffset range_start; + Timing::TimelineOffset range_end; if (rangeName == "cover") { - range_start.phase = Timing::TimelineNamedPhase::kCover; + range_start.name = Timing::TimelineNamedRange::kCover; } else if (rangeName == "contain") { - range_start.phase = Timing::TimelineNamedPhase::kContain; + range_start.name = Timing::TimelineNamedRange::kContain; } else if (rangeName == "enter") { - range_start.phase = Timing::TimelineNamedPhase::kEnter; + range_start.name = Timing::TimelineNamedRange::kEnter; } else if (rangeName == "exit") { - range_start.phase = Timing::TimelineNamedPhase::kExit; + range_start.name = Timing::TimelineNamedRange::kExit; } else { return nullptr; } range_start.relative_offset = 0; - range_end.phase = range_start.phase; + range_end.name = range_start.name; range_end.relative_offset = 1; - double relative_start_offset = ToFractionalOffset(range_start).value(); - double relative_end_offset = ToFractionalOffset(range_end).value(); + double relative_start_offset = ToFractionalOffset(range_start); + double relative_end_offset = ToFractionalOffset(range_end); double range = relative_end_offset - relative_start_offset; // TODO(https://github.com/w3c/csswg-drafts/issues/8114): Update and add tests @@ -379,12 +385,8 @@ return CSSUnitValues::percent(named_range_progress * 100); } -absl::optional<double> ViewTimeline::ToFractionalOffset( - const Timing::Delay& delay) const { - absl::optional<double> result; - if (delay.phase == Timing::TimelineNamedPhase::kNone) - return result; - +double ViewTimeline::ToFractionalOffset( + const Timing::TimelineOffset& timeline_offset) const { // https://drafts.csswg.org/scroll-animations-1/#view-timelines-ranges double align_subject_start_view_end = target_offset_ - viewport_size_ + end_side_inset_; @@ -399,10 +401,11 @@ if (!range) return 0; - double phase_start = 0; - double phase_end = 0; - switch (delay.phase) { - case Timing::TimelineNamedPhase::kCover: + double range_start = 0; + double range_end = 0; + switch (timeline_offset.name) { + case Timing::TimelineNamedRange::kNone: + case Timing::TimelineNamedRange::kCover: // Represents the full range of the view progress timeline: // 0% progress represents the position at which the start border edge of // the element’s principal box coincides with the end edge of its view @@ -410,11 +413,11 @@ // 100% progress represents the position at which the end border edge of // the element’s principal box coincides with the start edge of its view // progress visibility range. - phase_start = align_subject_start_view_end; - phase_end = align_subject_end_view_start; + range_start = align_subject_start_view_end; + range_end = align_subject_end_view_start; break; - case Timing::TimelineNamedPhase::kContain: + case Timing::TimelineNamedRange::kContain: // Represents the range during which the principal box is either fully // contained by, or fully covers, its view progress visibility range // within the scrollport. @@ -428,40 +431,37 @@ // with the start edge of its view progress visibility range. // 2. the end border edge of the element’s principal box coincides with // the end edge of its view progress visibility range. - phase_start = + range_start = std::min(align_subject_start_view_start, align_subject_end_view_end); - phase_end = + range_end = std::max(align_subject_start_view_start, align_subject_end_view_end); break; - case Timing::TimelineNamedPhase::kEnter: + case Timing::TimelineNamedRange::kEnter: // Represents the range during which the principal box is entering the // view progress visibility range. // 0% is equivalent to 0% of the cover range. // 100% is equivalent to 0% of the contain range. - phase_start = align_subject_start_view_end; - phase_end = + range_start = align_subject_start_view_end; + range_end = std::min(align_subject_start_view_start, align_subject_end_view_end); break; - case Timing::TimelineNamedPhase::kExit: + case Timing::TimelineNamedRange::kExit: // Represents the range during which the principal box is exiting the view // progress visibility range. // 0% is equivalent to 100% of the contain range. // 100% is equivalent to 100% of the cover range. - phase_start = + range_start = std::max(align_subject_start_view_start, align_subject_end_view_end); - phase_end = align_subject_end_view_start; + range_end = align_subject_end_view_start; break; - - case Timing::TimelineNamedPhase::kNone: - NOTREACHED(); } - DCHECK(phase_end >= phase_start); + DCHECK(range_end >= range_start); DCHECK_GT(range, 0); double offset = - phase_start + (phase_end - phase_start) * delay.relative_offset; + range_start + (range_end - range_start) * timeline_offset.relative_offset; return (offset - align_subject_start_view_end) / range; } @@ -471,11 +471,14 @@ if (!duration) return std::make_pair(AnimationTimeDelta(), AnimationTimeDelta()); - absl::optional<double> start_fraction = - ToFractionalOffset(timing.start_delay); - absl::optional<double> end_fraction = ToFractionalOffset(timing.end_delay); - return std::make_pair(start_fraction.value_or(0) * duration.value(), - (1 - end_fraction.value_or(1)) * duration.value()); + // TODO(https://github.com/w3c/csswg-drafts/issues/7575): + // Accommodate fixed range offsets as well as percentage based. + double start_fraction = ToFractionalOffset( + timing.range_start.value_or(Timing::TimelineOffset(0))); + double end_fraction = + ToFractionalOffset(timing.range_end.value_or(Timing::TimelineOffset(1))); + return std::make_pair(start_fraction * duration.value(), + (1 - end_fraction) * duration.value()); } CSSNumericValue* ViewTimeline::startOffset() const {
diff --git a/third_party/blink/renderer/core/animation/view_timeline.h b/third_party/blink/renderer/core/animation/view_timeline.h index 4ad43e3..2ede83b 100644 --- a/third_party/blink/renderer/core/animation/view_timeline.h +++ b/third_party/blink/renderer/core/animation/view_timeline.h
@@ -60,7 +60,8 @@ // Converts a delay that is expressed as a (phase,percentage) pair to // a fractional offset. - absl::optional<double> ToFractionalOffset(const Timing::Delay& delay) const; + double ToFractionalOffset( + const Timing::TimelineOffset& timeline_offset) const; AnimationTimeline::TimeDelayPair TimelineOffsetsToTimeDelays( const Timing& timing) const override;
diff --git a/third_party/blink/renderer/core/css/css_primitive_value_mappings.h b/third_party/blink/renderer/core/css/css_primitive_value_mappings.h index 893729b..0085b71 100644 --- a/third_party/blink/renderer/core/css/css_primitive_value_mappings.h +++ b/third_party/blink/renderer/core/css/css_primitive_value_mappings.h
@@ -1803,22 +1803,22 @@ template <> inline CSSIdentifierValue::CSSIdentifierValue( - Timing::TimelineNamedPhase named_phase) + Timing::TimelineNamedRange named_range) : CSSValue(kIdentifierClass) { - switch (named_phase) { - case Timing::TimelineNamedPhase::kCover: + switch (named_range) { + case Timing::TimelineNamedRange::kCover: value_id_ = CSSValueID::kCover; break; - case Timing::TimelineNamedPhase::kContain: + case Timing::TimelineNamedRange::kContain: value_id_ = CSSValueID::kContain; break; - case Timing::TimelineNamedPhase::kEnter: + case Timing::TimelineNamedRange::kEnter: value_id_ = CSSValueID::kEnter; break; - case Timing::TimelineNamedPhase::kExit: + case Timing::TimelineNamedRange::kExit: value_id_ = CSSValueID::kExit; break; - case Timing::TimelineNamedPhase::kNone: + default: NOTREACHED(); value_id_ = CSSValueID::kCover; break; @@ -1826,21 +1826,21 @@ } template <> -inline Timing::TimelineNamedPhase CSSIdentifierValue::ConvertTo() const { +inline Timing::TimelineNamedRange CSSIdentifierValue::ConvertTo() const { switch (GetValueID()) { case CSSValueID::kCover: - return Timing::TimelineNamedPhase::kCover; + return Timing::TimelineNamedRange::kCover; case CSSValueID::kContain: - return Timing::TimelineNamedPhase::kContain; + return Timing::TimelineNamedRange::kContain; case CSSValueID::kEnter: - return Timing::TimelineNamedPhase::kEnter; + return Timing::TimelineNamedRange::kEnter; case CSSValueID::kExit: - return Timing::TimelineNamedPhase::kExit; + return Timing::TimelineNamedRange::kExit; default: break; } NOTREACHED(); - return Timing::TimelineNamedPhase::kCover; + return Timing::TimelineNamedRange::kCover; } } // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_scope_rule.cc b/third_party/blink/renderer/core/css/css_scope_rule.cc index b251d53..ba9e012f 100644 --- a/third_party/blink/renderer/core/css/css_scope_rule.cc +++ b/third_party/blink/renderer/core/css/css_scope_rule.cc
@@ -21,11 +21,14 @@ const StyleScope& scope = To<StyleRuleScope>(*group_rule_.Get()).GetStyleScope(); - result.Append('('); - result.Append(scope.From().SelectorsText()); - result.Append(')'); + if (scope.From()) { + result.Append('('); + result.Append(scope.From()->SelectorsText()); + result.Append(')'); + } if (scope.To()) { + DCHECK(scope.From()); result.Append(" to ("); result.Append(scope.To()->SelectorsText()); result.Append(')'); @@ -36,8 +39,12 @@ String CSSScopeRule::cssText() const { StringBuilder result; - result.Append("@scope "); - result.Append(PreludeText()); + result.Append("@scope"); + String prelude = PreludeText(); + if (!prelude.empty()) { + result.Append(" "); + result.Append(prelude); + } AppendCSSTextForItems(result); return result.ReleaseString(); }
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc index 0551757c..b20f7aa 100644 --- a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc +++ b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
@@ -2185,15 +2185,15 @@ const CSSParserToken& token = range.Peek(); if (token.GetType() == kPercentageToken && token.NumericValue() >= 0 && token.NumericValue() <= 100) { - result->push_back(KeyframeOffset(Timing::TimelineNamedPhase::kNone, + result->push_back(KeyframeOffset(Timing::TimelineNamedRange::kNone, token.NumericValue() / 100)); range.ConsumeIncludingWhitespace(); } else if (token.GetType() == kIdentToken) { if (EqualIgnoringASCIICase(token.Value(), "from")) { - result->push_back(KeyframeOffset(Timing::TimelineNamedPhase::kNone, 0)); + result->push_back(KeyframeOffset(Timing::TimelineNamedRange::kNone, 0)); range.ConsumeIncludingWhitespace(); } else if (EqualIgnoringASCIICase(token.Value(), "to")) { - result->push_back(KeyframeOffset(Timing::TimelineNamedPhase::kNone, 1)); + result->push_back(KeyframeOffset(Timing::TimelineNamedRange::kNone, 1)); range.ConsumeIncludingWhitespace(); } else { auto* range_name_percent = To<CSSValueList>( @@ -2204,12 +2204,12 @@ } auto range_name = To<CSSIdentifierValue>(range_name_percent->Item(0)) - .ConvertTo<Timing::TimelineNamedPhase>(); + .ConvertTo<Timing::TimelineNamedRange>(); auto percent = To<CSSPrimitiveValue>(range_name_percent->Item(1)).GetFloatValue(); if (!RuntimeEnabledFeatures::CSSViewTimelineEnabled() && - range_name != Timing::TimelineNamedPhase::kNone) { + range_name != Timing::TimelineNamedRange::kNone) { return nullptr; }
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc index ee85428..8c914a55 100644 --- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc +++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -1919,18 +1919,8 @@ CSSValue* ComputedStyleUtils::ValueForAnimationDelayStart( const Timing::Delay& delay) { - CSSValueList* list = CSSValueList::CreateSpaceSeparated(); - if (delay.IsTimelineOffset()) { - list->Append(*MakeGarbageCollected<CSSIdentifierValue>(delay.phase)); - list->Append(*CSSNumericLiteralValue::Create( - delay.relative_offset * 100.0, - CSSPrimitiveValue::UnitType::kPercentage)); - } else { - return CSSNumericLiteralValue::Create( - delay.AsTimeValue().InSecondsF(), - CSSPrimitiveValue::UnitType::kSeconds); - } - return list; + return CSSNumericLiteralValue::Create(delay.AsTimeValue().InSecondsF(), + CSSPrimitiveValue::UnitType::kSeconds); } CSSValue* ComputedStyleUtils::ValueForAnimationDelayStartList(
diff --git a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc index f9ea27c8..fe29a26 100644 --- a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
@@ -341,18 +341,8 @@ auto* outer_list = CSSValueList::CreateCommaSeparated(); for (wtf_size_t i = 0; i < delay_start_list.size(); ++i) { - const Timing::Delay& start = delay_start_list[i]; const Timing::Delay& end = delay_end_list[i]; - // E.g. "enter 0% enter 100%" must be shortened to just "enter". - if (start.IsTimelineOffset() && end.IsTimelineOffset() && - start.phase == end.phase && start.relative_offset == 0.0 && - end.relative_offset == 1.0) { - outer_list->Append( - *MakeGarbageCollected<CSSIdentifierValue>(start.phase)); - continue; - } - auto* inner_list = CSSValueList::CreateSpaceSeparated(); inner_list->Append( *ComputedStyleUtils::ValueForAnimationDelayStart(delay_start_list[i]));
diff --git a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc index 93449ef7..c5541e0 100644 --- a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc +++ b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
@@ -309,13 +309,8 @@ if (const auto* primitive = DynamicTo<CSSPrimitiveValue>(value)) { return Timing::Delay(AnimationTimeDelta(primitive->ComputeSeconds())); } - const auto& list = To<CSSValueList>(value); - DCHECK_EQ(list.length(), 2u); - const auto& range_name = To<CSSIdentifierValue>(list.Item(0)); - const auto& percentage = To<CSSPrimitiveValue>(list.Item(1)); - DCHECK(percentage.IsPercentage()); - return Timing::Delay(range_name.ConvertTo<Timing::TimelineNamedPhase>(), - percentage.GetValue<double>() / 100.0); + + return Timing::Delay(); } } // namespace
diff --git a/third_party/blink/renderer/core/css/rule_feature_set.cc b/third_party/blink/renderer/core/css/rule_feature_set.cc index 5e56873..e578273 100644 --- a/third_party/blink/renderer/core/css/rule_feature_set.cc +++ b/third_party/blink/renderer/core/css/rule_feature_set.cc
@@ -581,7 +581,10 @@ const StyleScope& style_scope, InvalidationSetFeatures& descendant_features) { for (const StyleScope* scope = &style_scope; scope; scope = scope->Parent()) { - for (const CSSSelector* selector = scope->From().First(); selector; + if (!scope->From()) { + continue; + } + for (const CSSSelector* selector = scope->From()->First(); selector; selector = CSSSelectorList::Next(*selector)) { InvalidationSetFeatures scope_features; ExtractInvalidationSetFeaturesFromCompound( @@ -635,11 +638,6 @@ bool RuleFeatureSet::InsertIntoSelfInvalidationBloomFilter( const AtomicString& value, int salt) { - if (!base::FeatureList::IsEnabled( - blink::features::kInvalidationSetClassBloomFilter)) { - return false; - } - if (names_with_self_invalidation_ == nullptr) { if (num_candidates_for_names_bloom_filter_++ < 50) { // It's not worth spending 2 kB on the Bloom filter for this @@ -1565,7 +1563,9 @@ }; for (const StyleScope* scope = &style_scope; scope; scope = scope->Parent()) { - add_features(scope->From(), descendant_features); + if (scope->From()) { + add_features(*scope->From(), descendant_features); + } if (scope->To()) { add_features(*scope->To(), descendant_features); @@ -1833,9 +1833,7 @@ for (const auto& entry : other.class_invalidation_sets_) { MergeInvalidationSet(class_invalidation_sets_, entry.key, entry.value); } - if (base::FeatureList::IsEnabled( - blink::features::kInvalidationSetClassBloomFilter) && - other.names_with_self_invalidation_) { + if (other.names_with_self_invalidation_) { if (names_with_self_invalidation_ == nullptr) { names_with_self_invalidation_ = std::make_unique<WTF::BloomFilter<14>>(); } @@ -1917,16 +1915,13 @@ InvalidationLists& invalidation_lists, Element& element, const AtomicString& class_name) const { - if (base::FeatureList::IsEnabled( - blink::features::kInvalidationSetClassBloomFilter)) { - // Implicit self-invalidation sets for all classes (with Bloom filter - // rejection); see comment on class_invalidation_sets_. - if (names_with_self_invalidation_ && - names_with_self_invalidation_->MayContain( - class_name.Impl()->ExistingHash() * kClassSalt)) { - invalidation_lists.descendants.push_back( - InvalidationSet::SelfInvalidationSet()); - } + // Implicit self-invalidation sets for all classes (with Bloom filter + // rejection); see comment on class_invalidation_sets_. + if (names_with_self_invalidation_ && + names_with_self_invalidation_->MayContain( + class_name.Impl()->ExistingHash() * kClassSalt)) { + invalidation_lists.descendants.push_back( + InvalidationSet::SelfInvalidationSet()); } InvalidationSetMap::const_iterator it =
diff --git a/third_party/blink/renderer/core/css/rule_feature_set.h b/third_party/blink/renderer/core/css/rule_feature_set.h index 17d4f17..98e927c 100644 --- a/third_party/blink/renderer/core/css/rule_feature_set.h +++ b/third_party/blink/renderer/core/css/rule_feature_set.h
@@ -272,8 +272,7 @@ // Inserts the given value as a key for self-invalidation. // Return true if the insertion was successful. (It may fail because - // e.g. the experiment is not active, or because there is no Bloom - // filter yet.) + // there is no Bloom filter yet.) bool InsertIntoSelfInvalidationBloomFilter(const AtomicString& value, int salt); const int kClassSalt = 13; @@ -815,8 +814,6 @@ FeatureMetadata metadata_; - // If the InvalidationSetClassBloomFilter experiment is active: - // // Class and ID invalidation have a special rule that is different from the // other sets; we do not store self-invalidation entries directly, but as a // Bloom filter (which can have false positives) keyed on the class/ID name's @@ -841,10 +838,10 @@ InvalidationSetMap class_invalidation_sets_; std::unique_ptr<WTF::BloomFilter<14>> names_with_self_invalidation_; - // We don't create the Bloom filter right away; the experiment might be off, - // or there may be so few of them that we don't really bother. This number - // counts the times we've inserted something that could go in there; once it - // reaches 50 (for this style sheet), we create the Bloom filter and start + // We don't create the Bloom filter right away; there may be so few of + // them that we don't really bother. This number counts the times we've + // inserted something that could go in there; once it reaches 50 + // (for this style sheet), we create the Bloom filter and start // inserting there instead. Note that we don't _remove_ any of the sets, // though; they will remain. This also means that when merging the // RuleFeatureSets into the global one, we can go over 50 such entries
diff --git a/third_party/blink/renderer/core/css/rule_feature_set_test.cc b/third_party/blink/renderer/core/css/rule_feature_set_test.cc index bdcad456..9f0b056 100644 --- a/third_party/blink/renderer/core/css/rule_feature_set_test.cc +++ b/third_party/blink/renderer/core/css/rule_feature_set_test.cc
@@ -2870,11 +2870,6 @@ } TEST_F(RuleFeatureSetTest, BloomFilterForClassSelfInvalidation) { - base::test::ScopedFeatureList feature_list; - feature_list.InitWithFeatures( - /*enabled_features=*/{blink::features::kInvalidationSetClassBloomFilter}, - /*disabled_features=*/{}); - // Add enough dummy classes that the filter will be created. for (unsigned i = 0; i < 100; ++i) { CollectFeatures(".dummy"); @@ -2898,11 +2893,6 @@ } TEST_F(RuleFeatureSetTest, BloomFilterForIdSelfInvalidation) { - base::test::ScopedFeatureList feature_list; - feature_list.InitWithFeatures( - /*enabled_features=*/{blink::features::kInvalidationSetClassBloomFilter}, - /*disabled_features=*/{}); - // Add enough dummy IDs that the filter will be created. for (unsigned i = 0; i < 100; ++i) { CollectFeatures("#dummy");
diff --git a/third_party/blink/renderer/core/css/selector_checker.cc b/third_party/blink/renderer/core/css/selector_checker.cc index 14a8753..b47361b 100644 --- a/third_party/blink/renderer/core/css/selector_checker.cc +++ b/third_party/blink/renderer/core/css/selector_checker.cc
@@ -2254,7 +2254,9 @@ // Check if we need to add a new activation for this element. for (const StyleScopeActivation& activation : outer_activations) { - if (MatchesWithScope(element, style_scope.From(), activation.root)) { + if (style_scope.From() + ? MatchesWithScope(element, *style_scope.From(), activation.root) + : style_scope.HasImplicitRoot(&element)) { activations->push_back(StyleScopeActivation{&element, 0, false}); break; } @@ -2262,6 +2264,7 @@ } if (style_scope.To()) { + DCHECK(style_scope.From()); for (StyleScopeActivation& activation : *activations) { DCHECK(!activation.limit); if (MatchesWithScope(element, *style_scope.To(), activation.root.Get())) {
diff --git a/third_party/blink/renderer/core/css/style_perftest.cc b/third_party/blink/renderer/core/css/style_perftest.cc index 489c18f9..3f4190e8 100644 --- a/third_party/blink/renderer/core/css/style_perftest.cc +++ b/third_party/blink/renderer/core/css/style_perftest.cc
@@ -187,6 +187,11 @@ reporter.AddResult("RecalcTime", style_time); } + // Loading the document may have posted tasks, which can hold on to memory. + // Run them now, to make sure they don't leak or otherwise skew the + // statistics. + test::RunPendingTasks(); + size_t gc_allocated_bytes = blink::ProcessHeap::TotalAllocatedObjectSize(); size_t partition_allocated_bytes = WTF::Partitions::TotalSizeOfCommittedPages();
diff --git a/third_party/blink/renderer/core/css/style_rule_keyframe.cc b/third_party/blink/renderer/core/css/style_rule_keyframe.cc index 9d3797f..1c1129f 100644 --- a/third_party/blink/renderer/core/css/style_rule_keyframe.cc +++ b/third_party/blink/renderer/core/css/style_rule_keyframe.cc
@@ -24,8 +24,8 @@ if (i) { key_text.Append(", "); } - if (keys_.at(i).phase != Timing::TimelineNamedPhase::kNone) { - key_text.Append(Timing::TimelineRangeNameToString(keys_.at(i).phase)); + if (keys_.at(i).name != Timing::TimelineNamedRange::kNone) { + key_text.Append(Timing::TimelineRangeNameToString(keys_.at(i).name)); key_text.Append(" "); } key_text.AppendNumber(keys_.at(i).percent * 100);
diff --git a/third_party/blink/renderer/core/css/style_rule_keyframe.h b/third_party/blink/renderer/core/css/style_rule_keyframe.h index ac6d9f6..9f6f5b4 100644 --- a/third_party/blink/renderer/core/css/style_rule_keyframe.h +++ b/third_party/blink/renderer/core/css/style_rule_keyframe.h
@@ -18,17 +18,17 @@ struct KeyframeOffset { explicit KeyframeOffset( - Timing::TimelineNamedPhase phase = Timing::TimelineNamedPhase::kNone, + Timing::TimelineNamedRange name = Timing::TimelineNamedRange::kNone, double percent = 0) - : phase(phase), percent(percent) {} + : name(name), percent(percent) {} bool operator==(const KeyframeOffset& b) const { - return percent == b.percent && phase == b.phase; + return percent == b.percent && name == b.name; } bool operator!=(const KeyframeOffset& b) const { return !(*this == b); } - Timing::TimelineNamedPhase phase; + Timing::TimelineNamedRange name; double percent; };
diff --git a/third_party/blink/renderer/core/css/style_scope.cc b/third_party/blink/renderer/core/css/style_scope.cc index e6e56e6..1f7cdde 100644 --- a/third_party/blink/renderer/core/css/style_scope.cc +++ b/third_party/blink/renderer/core/css/style_scope.cc
@@ -5,6 +5,8 @@ #include "third_party/blink/renderer/core/css/style_scope.h" #include "third_party/blink/renderer/core/css/parser/css_selector_parser.h" #include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h" +#include "third_party/blink/renderer/core/css/style_sheet_contents.h" +#include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" namespace blink { @@ -12,6 +14,8 @@ StyleScope::StyleScope(CSSSelectorList* from, CSSSelectorList* to) : from_(from), to_(to) {} +StyleScope::StyleScope(StyleSheetContents* contents) : contents_(contents) {} + StyleScope::StyleScope(const StyleScope& other) : from_(other.from_->Copy()), to_(other.to_.Get() ? other.to_->Copy() : nullptr) {} @@ -22,10 +26,17 @@ return copy; } +bool StyleScope::HasImplicitRoot(Element* element) const { + if (!contents_) { + return false; + } + return contents_->HasOwnerParentNode(element); +} + unsigned StyleScope::Specificity() const { if (!specificity_.has_value()) { - specificity_ = - from_->MaximumSpecificity() + (parent_ ? parent_->Specificity() : 0); + specificity_ = (from_ ? from_->MaximumSpecificity() : 0) + + (parent_ ? parent_->Specificity() : 0); } return *specificity_; } @@ -37,6 +48,12 @@ CSSSelectorList* to = nullptr; prelude.ConsumeWhitespace(); + + if (prelude.AtEnd()) { + // Implicitly rooted. + return MakeGarbageCollected<StyleScope>(style_sheet); + } + if (prelude.Peek().GetType() != kLeftParenthesisToken) { return nullptr; } @@ -74,4 +91,11 @@ return MakeGarbageCollected<StyleScope>(from, to); } +void StyleScope::Trace(blink::Visitor* visitor) const { + visitor->Trace(contents_); + visitor->Trace(from_); + visitor->Trace(to_); + visitor->Trace(parent_); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/style_scope.h b/third_party/blink/renderer/core/css/style_scope.h index e67d951..7123a6c 100644 --- a/third_party/blink/renderer/core/css/style_scope.h +++ b/third_party/blink/renderer/core/css/style_scope.h
@@ -15,34 +15,44 @@ namespace blink { class StyleSheetContents; +class Element; class CORE_EXPORT StyleScope final : public GarbageCollected<StyleScope> { public: + // Construct a StyleScope with explicit roots specified by elements matching + // the `from` selector list. The (optional) `to` parameter selects the the + // limit elements, i.e. the extent of the scope. StyleScope(CSSSelectorList* from, CSSSelectorList* to); + // Construct a StyleScope with implicit roots at the parent nodes of the + // stylesheet's owner nodes. + explicit StyleScope(StyleSheetContents* contents); StyleScope(const StyleScope&); static StyleScope* Parse(CSSParserTokenRange prelude, const CSSParserContext* context, StyleSheetContents* style_sheet); - void Trace(blink::Visitor* visitor) const { - visitor->Trace(from_); - visitor->Trace(to_); - visitor->Trace(parent_); - } + void Trace(blink::Visitor*) const; StyleScope* CopyWithParent(const StyleScope*) const; - const CSSSelectorList& From() const { return *from_; } + const CSSSelectorList* From() const { return from_; } const CSSSelectorList* To() const { return to_.Get(); } // May be nullptr. const StyleScope* Parent() const { return parent_.Get(); } + // True if this StyleScope has an implicit root at the specified element. + // This is used to find the roots for prelude-less @scope rules. + bool HasImplicitRoot(Element*) const; + // Specificity of the <scope-start> selector (::From()), plus the // specificity of the parent scope (if any). unsigned Specificity() const; private: - Member<CSSSelectorList> from_; - Member<CSSSelectorList> to_; // May be nullptr. + // If `contents_` is not nullptr, then this is a prelude-less @scope rule + // which is implicitly scoped to the owner node's parent. + Member<StyleSheetContents> contents_; + Member<CSSSelectorList> from_; // May be nullptr. + Member<CSSSelectorList> to_; // May be nullptr. Member<const StyleScope> parent_; mutable absl::optional<unsigned> specificity_; };
diff --git a/third_party/blink/renderer/core/css/style_sheet_contents.cc b/third_party/blink/renderer/core/css/style_sheet_contents.cc index d5644c3..4be6c56 100644 --- a/third_party/blink/renderer/core/css/style_sheet_contents.cc +++ b/third_party/blink/renderer/core/css/style_sheet_contents.cc
@@ -600,6 +600,16 @@ return RootStyleSheet()->ClientAnyOwnerDocument(); } +bool StyleSheetContents::HasOwnerParentNode(Node* candidate) const { + for (const WeakMember<CSSStyleSheet>& sheet : completed_clients_) { + if (Node* node = sheet->ownerNode(); + node && (node->parentNode() == candidate)) { + return true; + } + } + return false; +} + static bool ChildRulesHaveFailedOrCanceledSubresources( const HeapVector<Member<StyleRuleBase>>& rules) { for (unsigned i = 0; i < rules.size(); ++i) {
diff --git a/third_party/blink/renderer/core/css/style_sheet_contents.h b/third_party/blink/renderer/core/css/style_sheet_contents.h index f13df09..08ea712 100644 --- a/third_party/blink/renderer/core/css/style_sheet_contents.h +++ b/third_party/blink/renderer/core/css/style_sheet_contents.h
@@ -96,6 +96,10 @@ // if there are none. Document* AnyOwnerDocument() const; + // True if any the StyleSheetContents's owner nodes have a *parent* that is + // equal to `candidate`. + bool HasOwnerParentNode(Node* candidate) const; + const WTF::TextEncoding& Charset() const { return parser_context_->Charset(); }
diff --git a/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc index e07964f2..c05a4b37 100644 --- a/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc
@@ -10,7 +10,6 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_computed_effect_timing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_optional_effect_timing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_cssnumericvalue_string_unrestricteddouble.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_union_double_timelineoffset.h" #include "third_party/blink/renderer/core/animation/animation.h" #include "third_party/blink/renderer/core/animation/animation_effect.h" #include "third_party/blink/renderer/core/animation/css/css_animation.h" @@ -42,7 +41,7 @@ namespace { -double AsDoubleOrZero(V8UnionDoubleOrTimelineOffset* value) { +double AsDoubleOrZero(Timing::V8Delay* value) { if (!value->IsDouble()) return 0; @@ -405,7 +404,7 @@ timing->setDuration( MakeGarbageCollected<V8UnionCSSNumericValueOrStringOrUnrestrictedDouble>( duration)); - timing->setDelay(MakeGarbageCollected<V8UnionDoubleOrTimelineOffset>(delay)); + timing->setDelay(MakeGarbageCollected<Timing::V8Delay>(delay)); animation->effect()->updateTiming(timing, exception_state); return Response::Success(); }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc b/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc index 9de8ae7..d3a8a2e 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc
@@ -64,11 +64,11 @@ return FontHeight(block_size - block_size / 2, block_size / 2); } -bool NGBoxFragment::HasBlockLayoutOverflow() const { +LayoutUnit NGBoxFragment::BlockEndLayoutOverflow() const { WritingModeConverter converter(writing_direction_, physical_fragment_.Size()); LogicalRect overflow = converter.ToLogical(PhysicalBoxFragment().LayoutOverflow()); - return overflow.BlockEndOffset() > BlockSize(); + return overflow.BlockEndOffset(); } } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h index ddd241c..539a79da 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h +++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h
@@ -93,7 +93,7 @@ return PhysicalBoxFragment().HasDescendantsForTablePart(); } - bool HasBlockLayoutOverflow() const; + LayoutUnit BlockEndLayoutOverflow() const; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc index 90a92a8..bababaf 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
@@ -837,8 +837,11 @@ // for all monolithic content already in the initial column balancing // pass (and if that fails, there's no way it's going to fit), by // checking TallestUnbreakableBlockSize() from the layout results. - if (NGBoxFragment(ConstraintSpace().GetWritingDirection(), column) - .HasBlockLayoutOverflow()) { + LayoutUnit block_end_overflow = + NGBoxFragment(ConstraintSpace().GetWritingDirection(), column) + .BlockEndLayoutOverflow(); + if (row_offset + block_end_overflow > + FragmentainerSpaceLeft(ConstraintSpace())) { if (ConstraintSpace().IsInsideBalancedColumns() && !container_builder_.IsInitialColumnBalancingPass()) container_builder_.PropagateSpaceShortage(minimal_space_shortage);
diff --git a/third_party/blink/renderer/modules/ml/ml.cc b/third_party/blink/renderer/modules/ml/ml.cc index a5f0a44555..a2eccd4 100644 --- a/third_party/blink/renderer/modules/ml/ml.cc +++ b/third_party/blink/renderer/modules/ml/ml.cc
@@ -66,6 +66,22 @@ return promise; } +MLContext* ML::createContextSync(ScriptState* script_state, + MLContextOptions* options, + ExceptionState& exception_state) { + if (!script_state->ContextIsValid()) { + exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError, + "Invalid script state"); + return nullptr; + } + + // TODO(crbug/1405354): Query browser about whether the given context is + // supported. + return MakeGarbageCollected<MLContext>( + options->devicePreference(), options->powerPreference(), + options->modelFormat(), options->numThreads(), this); +} + bool ML::BootstrapMojoConnectionIfNeeded(ScriptState* script_state, ExceptionState& exception_state) { // We need to do the following check because the execution context of this
diff --git a/third_party/blink/renderer/modules/ml/ml.h b/third_party/blink/renderer/modules/ml/ml.h index 84ef1fa..c00a50d 100644 --- a/third_party/blink/renderer/modules/ml/ml.h +++ b/third_party/blink/renderer/modules/ml/ml.h
@@ -9,7 +9,6 @@ #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h" -#include "third_party/blink/renderer/core/frame/navigator.h" #include "third_party/blink/renderer/modules/ml/ml_context.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" @@ -48,6 +47,9 @@ ScriptPromise createContext(ScriptState* state, MLContextOptions* option, ExceptionState& exception_state); + MLContext* createContextSync(ScriptState* script_state, + MLContextOptions* options, + ExceptionState& exception_state); private: // Binds the Mojo connection to browser process if needed.
diff --git a/third_party/blink/renderer/modules/ml/ml.idl b/third_party/blink/renderer/modules/ml/ml.idl index 2629f03..8c196fe 100644 --- a/third_party/blink/renderer/modules/ml/ml.idl +++ b/third_party/blink/renderer/modules/ml/ml.idl
@@ -10,8 +10,11 @@ [ RuntimeEnabled=MachineLearningCommon, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface ML { [CallWith=ScriptState, RaisesException] Promise<MLContext> createContext(optional MLContextOptions options = {}); + + [RaisesException, CallWith=ScriptState, Exposed=DedicatedWorker] + MLContext createContextSync(optional MLContextOptions options = {}); };
diff --git a/third_party/blink/renderer/modules/ml/ml_context.idl b/third_party/blink/renderer/modules/ml/ml_context.idl index aa64c24..f49ff43 100644 --- a/third_party/blink/renderer/modules/ml/ml_context.idl +++ b/third_party/blink/renderer/modules/ml/ml_context.idl
@@ -15,6 +15,6 @@ [ RuntimeEnabled=MachineLearningCommon, SecureContext, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface MLContext { };
diff --git a/third_party/blink/renderer/modules/ml/navigator_ml.cc b/third_party/blink/renderer/modules/ml/navigator_ml.cc index b64b29f..bc0a885 100644 --- a/third_party/blink/renderer/modules/ml/navigator_ml.cc +++ b/third_party/blink/renderer/modules/ml/navigator_ml.cc
@@ -8,12 +8,13 @@ const char NavigatorML::kSupplementName[] = "NavigatorML"; -NavigatorML::NavigatorML(Navigator& navigator) - : Supplement<Navigator>(navigator), +NavigatorML::NavigatorML(NavigatorBase& navigator) + : Supplement<NavigatorBase>(navigator), ml_(MakeGarbageCollected<ML>(navigator.GetExecutionContext())) {} -ML* NavigatorML::ml(Navigator& navigator) { - NavigatorML* supplement = Supplement<Navigator>::From<NavigatorML>(navigator); +ML* NavigatorML::ml(NavigatorBase& navigator) { + NavigatorML* supplement = + Supplement<NavigatorBase>::From<NavigatorML>(navigator); if (!supplement) { supplement = MakeGarbageCollected<NavigatorML>(navigator); ProvideTo(navigator, supplement); @@ -23,7 +24,7 @@ void NavigatorML::Trace(Visitor* visitor) const { visitor->Trace(ml_); - Supplement<Navigator>::Trace(visitor); + Supplement<NavigatorBase>::Trace(visitor); } } // namespace blink
diff --git a/third_party/blink/renderer/modules/ml/navigator_ml.h b/third_party/blink/renderer/modules/ml/navigator_ml.h index 082562d..30931e85 100644 --- a/third_party/blink/renderer/modules/ml/navigator_ml.h +++ b/third_party/blink/renderer/modules/ml/navigator_ml.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ML_NAVIGATOR_ML_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_ML_NAVIGATOR_ML_H_ -#include "third_party/blink/renderer/core/frame/navigator.h" +#include "third_party/blink/renderer/core/execution_context/navigator_base.h" #include "third_party/blink/renderer/modules/ml/ml.h" #include "third_party/blink/renderer/platform/heap/member.h" #include "third_party/blink/renderer/platform/supplementable.h" @@ -13,11 +13,11 @@ namespace blink { class NavigatorML : public GarbageCollected<NavigatorML>, - public Supplement<Navigator> { + public Supplement<NavigatorBase> { public: static const char kSupplementName[]; - static ML* ml(Navigator& navigator); - explicit NavigatorML(Navigator& navigator); + static ML* ml(NavigatorBase& navigator); + explicit NavigatorML(NavigatorBase& navigator); NavigatorML(const NavigatorML&) = delete; NavigatorML& operator=(const NavigatorML&) = delete;
diff --git a/third_party/blink/renderer/modules/ml/navigator_ml.idl b/third_party/blink/renderer/modules/ml/navigator_ml.idl index 2efc3ca1..415ffcc 100644 --- a/third_party/blink/renderer/modules/ml/navigator_ml.idl +++ b/third_party/blink/renderer/modules/ml/navigator_ml.idl
@@ -9,6 +9,7 @@ // https://github.com/webmachinelearning/webnn/blob/main/explainer.md [ + Exposed=Window, SecureContext, ImplementedAs=NavigatorML, RuntimeEnabled=MachineLearningCommon
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl b/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl index 481b5e5..6defb7e 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl
@@ -6,6 +6,6 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface MLGraph { };
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl index d7c5f42..01e1ee6 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl
@@ -64,7 +64,7 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface MLGraphBuilder { constructor(MLContext context);
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl b/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl index 2af04a4f..047cd92 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl +++ b/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl
@@ -6,5 +6,5 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface MLOperand {};
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_operator.idl b/third_party/blink/renderer/modules/ml/webnn/ml_operator.idl index 14fd897..3521701c 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_operator.idl +++ b/third_party/blink/renderer/modules/ml/webnn/ml_operator.idl
@@ -6,5 +6,5 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=Window + Exposed=(Window, DedicatedWorker) ] interface MLOperator {};
diff --git a/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl b/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl new file mode 100644 index 0000000..2141610 --- /dev/null +++ b/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl
@@ -0,0 +1,12 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +[ + Exposed=DedicatedWorker, + SecureContext, + ImplementedAs=NavigatorML, + RuntimeEnabled=MachineLearningCommon +] partial interface WorkerNavigator { + [SameObject] readonly attribute ML ml; +};
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_codec_specifics.idl b/third_party/blink/renderer/modules/peerconnection/rtc_codec_specifics.idl new file mode 100644 index 0000000..dfdfc571 --- /dev/null +++ b/third_party/blink/renderer/modules/peerconnection/rtc_codec_specifics.idl
@@ -0,0 +1,18 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// TODO(https://crbug.com/webrtc/14709): Support more codecs. +typedef RTCCodecSpecificsVP8 RTCCodecSpecifics; + +[Serializable] +dictionary RTCCodecSpecificsVP8 { + boolean nonReference; + short pictureId; + short tl0PicIdx; + octet temporalIdx; + boolean layerSync; + long keyIdx; + long partitionId; + boolean beginningOfPartition; +};
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc index 3ca91d25..c69e60f 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc
@@ -6,14 +6,56 @@ #include <utility> +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_codec_specifics_vp_8.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_decode_target_indication.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoded_video_frame_metadata.h" #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/webrtc/api/frame_transformer_interface.h" namespace blink { +namespace { + +V8RTCDecodeTargetIndication +V8RTCDecodeTargetIndicationFromDecodeTargetIndication( + webrtc::DecodeTargetIndication decode_target_indication) { + switch (decode_target_indication) { + case webrtc::DecodeTargetIndication::kNotPresent: + return V8RTCDecodeTargetIndication( + V8RTCDecodeTargetIndication::Enum::kNotPresent); + case webrtc::DecodeTargetIndication::kDiscardable: + return V8RTCDecodeTargetIndication( + V8RTCDecodeTargetIndication::Enum::kDiscardable); + case webrtc::DecodeTargetIndication::kSwitch: + return V8RTCDecodeTargetIndication( + V8RTCDecodeTargetIndication::Enum::kSwitch); + case webrtc::DecodeTargetIndication::kRequired: + return V8RTCDecodeTargetIndication( + V8RTCDecodeTargetIndication::Enum::kRequired); + default: + NOTREACHED(); + } +} + +String RTCVideoCodecTypeFromVideoCodecType( + webrtc::VideoCodecType video_codec_type) { + switch (video_codec_type) { + case webrtc::VideoCodecType::kVideoCodecVP8: + return "vp8"; + case webrtc::VideoCodecType::kVideoCodecVP9: + return "vp9"; + case webrtc::VideoCodecType::kVideoCodecH264: + return "h264"; + default: + return ""; + } +} + +} // namespace + RTCEncodedVideoFrame::RTCEncodedVideoFrame( std::unique_ptr<webrtc::TransformableVideoFrameInterface> webrtc_frame) : delegate_(base::MakeRefCounted<RTCEncodedVideoFrameDelegate>( @@ -61,6 +103,49 @@ metadata->setHeight(webrtc_metadata->GetHeight()); metadata->setSpatialIndex(webrtc_metadata->GetSpatialIndex()); metadata->setTemporalIndex(webrtc_metadata->GetTemporalIndex()); + if (RuntimeEnabledFeatures::RTCEncodedVideoFrameAdditionalMetadataEnabled()) { + Vector<V8RTCDecodeTargetIndication> decode_target_indications; + for (const auto& decode_target_indication : + webrtc_metadata->GetDecodeTargetIndications()) { + decode_target_indications.push_back( + V8RTCDecodeTargetIndicationFromDecodeTargetIndication( + decode_target_indication)); + } + metadata->setDecodeTargetIndications(decode_target_indications); + metadata->setIsLastFrameInPicture( + webrtc_metadata->GetIsLastFrameInPicture()); + metadata->setSimulcastIdx(webrtc_metadata->GetSimulcastIdx()); + String codec = + RTCVideoCodecTypeFromVideoCodecType(webrtc_metadata->GetCodec()); + if (!codec.empty()) { + metadata->setCodec(codec); + } else { + LOG(ERROR) << "Unrecognized RTCVideoCodecType."; + } + switch (webrtc_metadata->GetCodec()) { + case webrtc::VideoCodecType::kVideoCodecVP8: { + const webrtc::RTPVideoHeaderVP8& webrtc_vp8_specifics = + absl::get<webrtc::RTPVideoHeaderVP8>( + webrtc_metadata->GetRTPVideoHeaderCodecSpecifics()); + RTCCodecSpecificsVP8* vp8_specifics = RTCCodecSpecificsVP8::Create(); + vp8_specifics->setNonReference(webrtc_vp8_specifics.nonReference); + vp8_specifics->setPictureId(webrtc_vp8_specifics.pictureId); + vp8_specifics->setTl0PicIdx(webrtc_vp8_specifics.tl0PicIdx); + vp8_specifics->setTemporalIdx(webrtc_vp8_specifics.temporalIdx); + vp8_specifics->setLayerSync(webrtc_vp8_specifics.layerSync); + vp8_specifics->setKeyIdx(webrtc_vp8_specifics.keyIdx); + vp8_specifics->setPartitionId(webrtc_vp8_specifics.partitionId); + vp8_specifics->setBeginningOfPartition( + webrtc_vp8_specifics.beginningOfPartition); + metadata->setCodecSpecifics(vp8_specifics); + break; + } + default: + // TODO(https://crbug.com/webrtc/14709): Support more codecs. + LOG(ERROR) << "Unsupported RTCCodecSpecifics."; + break; + } + } return metadata; }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_metadata.idl b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_metadata.idl index 07e6401..3eff127 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_metadata.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_metadata.idl
@@ -5,14 +5,40 @@ // https://github.com/alvestrand/webrtc-media-streams/blob/master/explainer.md#api // TODO(guidou): Add standards link when available. +enum RTCVideoCodecType { + "vp8", + "vp9", + "h264", +}; + +enum RTCDecodeTargetIndication { + "not-present", + "discardable", + "switch", + "required", +}; + [Serializable] dictionary RTCEncodedVideoFrameMetadata { + // Encoding related metadata long long frameId; sequence<long long> dependencies; unsigned short width; unsigned short height; long spatialIndex; long temporalIndex; + [RuntimeEnabled=RTCEncodedVideoFrameAdditionalMetadata] + sequence<RTCDecodeTargetIndication> decodeTargetIndications; + [RuntimeEnabled=RTCEncodedVideoFrameAdditionalMetadata] + boolean isLastFrameInPicture; + [RuntimeEnabled=RTCEncodedVideoFrameAdditionalMetadata] + unsigned short simulcastIdx; + [RuntimeEnabled=RTCEncodedVideoFrameAdditionalMetadata] + RTCVideoCodecType codec; + [RuntimeEnabled=RTCEncodedVideoFrameAdditionalMetadata] + RTCCodecSpecifics codecSpecifics; + + // RTP related metadata unsigned long synchronizationSource; sequence<unsigned long> contributingSources; short payloadType;
diff --git a/third_party/blink/renderer/platform/heap/thread_state.cc b/third_party/blink/renderer/platform/heap/thread_state.cc index 45f9338..65ed11c 100644 --- a/third_party/blink/renderer/platform/heap/thread_state.cc +++ b/third_party/blink/renderer/platform/heap/thread_state.cc
@@ -4,6 +4,9 @@ #include "third_party/blink/renderer/platform/heap/thread_state.h" +#include <fstream> +#include <iostream> + #include "base/functional/callback.h" #include "gin/public/v8_platform.h" #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" @@ -18,6 +21,7 @@ #include "v8/include/v8-embedder-heap.h" #include "v8/include/v8-isolate.h" #include "v8/include/v8-object.h" +#include "v8/include/v8-profiler.h" #include "v8/include/v8-traced-handle.h" namespace blink { @@ -255,4 +259,46 @@ !cppgc::subtle::HeapState::IsInAtomicPause( ThreadState::Current()->heap_handle()); } + +namespace { + +class BufferedStream final : public v8::OutputStream { + public: + explicit BufferedStream(std::streambuf* stream_buffer) + : out_stream_(stream_buffer) {} + + WriteResult WriteAsciiChunk(char* data, int size) override { + out_stream_.write(data, size); + return kContinue; + } + + void EndOfStream() override {} + + private: + std::ostream out_stream_; +}; + +} // namespace + +void ThreadState::TakeHeapSnapshotForTesting(const char* filename) const { + CHECK(IsAttachedToIsolate()); + v8::HeapProfiler* profiler = isolate_->GetHeapProfiler(); + CHECK(profiler); + + v8::HeapProfiler::HeapSnapshotOptions options; + options.snapshot_mode = v8::HeapProfiler::HeapSnapshotMode::kExposeInternals; + const v8::HeapSnapshot* snapshot = profiler->TakeHeapSnapshot(options); + + { + std::ofstream file_stream; + if (filename) { + file_stream.open(filename, std::ios_base::out | std::ios_base::trunc); + } + BufferedStream stream(filename ? file_stream.rdbuf() : std::cout.rdbuf()); + snapshot->Serialize(&stream); + } + + const_cast<v8::HeapSnapshot*>(snapshot)->Delete(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/heap/thread_state.h b/third_party/blink/renderer/platform/heap/thread_state.h index 78c38b4..8596043 100644 --- a/third_party/blink/renderer/platform/heap/thread_state.h +++ b/third_party/blink/renderer/platform/heap/thread_state.h
@@ -55,6 +55,7 @@ void AttachToIsolate(v8::Isolate* isolate, V8BuildEmbedderGraphCallback); void DetachFromIsolate(); + bool IsAttachedToIsolate() const { return isolate_; } ALWAYS_INLINE cppgc::HeapHandle& heap_handle() const { return heap_handle_; } ALWAYS_INLINE v8::CppHeap& cpp_heap() const { return *cpp_heap_; } @@ -98,6 +99,15 @@ static ThreadState* AttachMainThreadForTesting(v8::Platform*); static ThreadState* AttachCurrentThreadForTesting(v8::Platform*); + // Takes a heap snapshot that can be loaded into DevTools. Requires that + // `ThreadState` is attached to a `v8::Isolate`. + // + // `filename` specifies the path on the system to store the snapshot. If no + // filename is provided, the snapshot will be emitted to `stdout`. + // + // Writing to a file requires a disabled sandbox. + void TakeHeapSnapshotForTesting(const char* filename) const; + private: explicit ThreadState(v8::Platform*); ~ThreadState();
diff --git a/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc b/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc index a84a471..b9ef86ed 100644 --- a/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc +++ b/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc
@@ -67,7 +67,7 @@ return true; } -const size_t kMaximumInFlightBytes = 64 * 1024; // 64 KB +const size_t kDefaultMaximumInFlightBytes = 64 * 1024; // 64 KB // IpcPacketSocket implements rtc::AsyncPacketSocket interface // using P2PSocketClient that works over IPC-channel. It must be used @@ -179,6 +179,9 @@ // quickly restricts the client to a sustainable steady-state rate. size_t send_bytes_available_; + // The current limit for maximum bytes in flight. + size_t max_in_flight_bytes_; + // Used to detect when browser doesn't send SendComplete message for some // packets. In normal case, the first packet should be the one that we're // going to receive the next completion signal. @@ -231,12 +234,13 @@ IpcPacketSocket::IpcPacketSocket() : type_(network::P2P_SOCKET_UDP), state_(kIsUninitialized), - send_bytes_available_(kMaximumInFlightBytes), + send_bytes_available_(kDefaultMaximumInFlightBytes), + max_in_flight_bytes_(kDefaultMaximumInFlightBytes), writable_signal_expected_(false), error_(0), max_discard_bytes_sequence_(0), current_discard_bytes_sequence_(0) { - static_assert(kMaximumInFlightBytes > 0, "would send at zero rate"); + static_assert(kDefaultMaximumInFlightBytes > 0, "would send at zero rate"); std::fill_n(options_, static_cast<int>(network::P2P_SOCKET_OPT_MAX), kDefaultNonSetOptionValue); } @@ -405,6 +409,7 @@ } } + DCHECK_GE(send_bytes_available_, data_size); send_bytes_available_ -= data_size; uint64_t packet_id = client_->Send( @@ -494,6 +499,24 @@ DCHECK_EQ(state_, kIsOpen); client_->SetOption(option, value); + if (option == network::P2PSocketOption::P2P_SOCKET_OPT_SNDBUF && value > 0) { + LOG(INFO) << "Setting new p2p socket buffer limit to " << value; + + // Allow socket option to increase in-flight limit above default, but not + // reduce it. + size_t new_limit = + std::max(static_cast<size_t>(value), kDefaultMaximumInFlightBytes); + size_t in_flight_bytes = max_in_flight_bytes_ - send_bytes_available_; + if (in_flight_bytes > new_limit) { + // New limit is lower than the current number of in flight bytes - just + // set availability to 0 but allow the current excess to still be sent. + send_bytes_available_ = 0; + } else { + send_bytes_available_ = new_limit - in_flight_bytes; + } + max_in_flight_bytes_ = new_limit; + } + return 0; } @@ -563,9 +586,8 @@ CHECK(send_metrics.packet_id == 0 || record.packet_id == send_metrics.packet_id); - send_bytes_available_ += record.packet_size; - - DCHECK_LE(send_bytes_available_, kMaximumInFlightBytes); + send_bytes_available_ = std::min(send_bytes_available_ + record.packet_size, + max_in_flight_bytes_); in_flight_packet_records_.pop_front(); TraceSendThrottlingState();
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index a17731c..3f4da1f1 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -791,7 +791,7 @@ }, { name: "CSSNewRootFontUnits", - status: "experimental", + status: "stable", }, { name: "CSSObjectViewBox", @@ -879,7 +879,7 @@ // // https://drafts.csswg.org/selectors-4/#the-nth-child-pseudo name: "CSSSelectorNthChildComplexSelector", - status: "experimental" + status: "stable" }, { // Support for CSS ::spelling-error, ::grammar-error, and the @@ -2385,6 +2385,11 @@ status: "experimental", }, { + name: "RTCEncodedVideoFrameAdditionalMetadata", + status: "experimental", + base_feature: "RTCEncodedVideoFrameAdditionalMetadata", + }, + { name: "RTCEncodedVideoFrameClone", status: "experimental", base_feature: "RTCEncodedVideoFrameClone",
diff --git a/third_party/blink/web_tests/SlowTests b/third_party/blink/web_tests/SlowTests index 83b1627..38816e1e 100644 --- a/third_party/blink/web_tests/SlowTests +++ b/third_party/blink/web_tests/SlowTests
@@ -43,7 +43,8 @@ crbug.com/24182 [ Release ] http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm [ Slow ] crbug.com/24182 http/tests/misc/uncacheable-script-repeated.html [ Slow ] crbug.com/24182 http/tests/navigation/slowmetaredirect-basic.html [ Slow ] -crbug.com/24182 http/tests/navigation/slowtimerredirect-basic.html [ Slow ] +crbug.com/24182 [ Debug Mac12 ] http/tests/navigation/slowtimerredirect-basic.html [ Slow ] +crbug.com/24182 [ Release ] http/tests/navigation/slowtimerredirect-basic.html [ Slow ] crbug.com/24182 http/tests/storage/callbacks-are-called-in-correct-context.html [ Slow ] crbug.com/24182 http/tests/notifications/close-dispatch-asynchronous.html [ Slow ] crbug.com/24182 images/png-suite/test.html [ Slow ] @@ -51,7 +52,6 @@ crbug.com/24182 [ Mac10.15 Release ] jquery/attributes.html [ Slow ] crbug.com/24182 [ Mac11 Release ] jquery/attributes.html [ Slow ] crbug.com/24182 [ Mac12 ] jquery/attributes.html [ Slow ] -crbug.com/24182 [ Mac12-arm64 Release ] jquery/attributes.html [ Slow ] crbug.com/24182 [ Release Win ] jquery/attributes.html [ Slow ] crbug.com/24182 [ Linux ] jquery/core.html [ Slow ] crbug.com/24182 [ Mac10.15 Release ] jquery/core.html [ Slow ] @@ -64,7 +64,6 @@ crbug.com/24182 [ Linux ] jquery/event.html [ Slow ] crbug.com/24182 [ Mac10.15 Release ] jquery/event.html [ Slow ] crbug.com/24182 [ Mac11 Release ] jquery/event.html [ Slow ] -crbug.com/24182 [ Mac11-arm64 Release ] jquery/event.html [ Slow ] crbug.com/24182 [ Mac12 ] jquery/event.html [ Slow ] crbug.com/24182 [ Release Win ] jquery/event.html [ Slow ] crbug.com/24182 jquery/manipulation.html [ Slow ] @@ -109,7 +108,6 @@ crbug.com/678482 [ Linux ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] crbug.com/678482 [ Mac10.15 Release ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] crbug.com/678482 [ Mac11 Release ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] -crbug.com/678482 [ Mac11-arm64 Release ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] crbug.com/678482 [ Mac12 ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] crbug.com/678482 [ Release Win ] http/tests/devtools/debugger/fetch-breakpoints.js [ Slow ] crbug.com/1236466 inspector-protocol/runtime/runtime-execution-contexts-events.js [ Slow ] @@ -592,7 +590,6 @@ crbug.com/874695 [ Release ] media/video-controls-always-visible-when-control-hovered.html [ Slow ] crbug.com/874695 [ Debug Mac12 ] media/video-controls-auto-hide-after-play-by-touch.html [ Slow ] crbug.com/874695 [ Release ] media/video-controls-auto-hide-after-play-by-touch.html [ Slow ] -crbug.com/874695 [ Debug Mac12 ] media/video-controls-dont-show-on-focus-when-disabled.html [ Slow ] crbug.com/874695 [ Release ] media/video-controls-dont-show-on-focus-when-disabled.html [ Slow ] crbug.com/874695 media/video-controls-focus-movement-on-hide.html [ Slow ] crbug.com/874695 media/video-controls-hide-after-touch-on-control.html [ Slow ] @@ -829,7 +826,6 @@ crbug.com/959002 crbug.com/959042 [ Linux ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] crbug.com/959002 crbug.com/959042 [ Mac10.15 Release ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] crbug.com/959002 crbug.com/959042 [ Mac11 Release ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] -crbug.com/959002 crbug.com/959042 [ Mac11-arm64 Release ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] crbug.com/959002 crbug.com/959042 [ Mac12 ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] crbug.com/959002 crbug.com/959042 [ Release Win ] http/tests/devtools/elements/styles-3/style-autocomplete.js [ Slow ] crbug.com/959002 crbug.com/959042 [ Linux ] http/tests/devtools/elements/styles-4/styles-keyframes.js [ Slow ] @@ -887,7 +883,6 @@ crbug.com/1043354 [ Linux Release ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] crbug.com/1043354 [ Mac10.15 Release ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] crbug.com/1043354 [ Mac11 Release ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] -crbug.com/1043354 [ Mac11-arm64 Release ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] crbug.com/1043354 [ Mac12 Release ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] crbug.com/1043354 [ Release Win ] http/tests/devtools/service-workers/service-worker-pause.js [ Slow ] crbug.com/1043350 [ Linux Release ] http/tests/devtools/elements/edit/set-attribute.js [ Slow ] @@ -918,7 +913,6 @@ crbug.com/1043785 [ Linux Release ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] crbug.com/1043785 [ Mac10.15 Release ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] crbug.com/1043785 [ Mac11 Release ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] -crbug.com/1043785 [ Mac11-arm64 Release ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] crbug.com/1043785 [ Mac12 Release ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] crbug.com/1043785 [ Release Win ] http/tests/devtools/elements/edit/switch-panels-while-editing-as-html.js [ Slow ] crbug.com/1043792 [ Release Win ] http/tests/devtools/template-content-inspect-crash.js [ Slow ] @@ -976,7 +970,6 @@ crbug.com/1044544 [ Linux Release ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] crbug.com/1044544 [ Mac10.15 Release ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] crbug.com/1044544 [ Mac11 Release ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] -crbug.com/1044544 [ Mac11-arm64 Release ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] crbug.com/1044544 [ Mac12 Release ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] crbug.com/1044544 [ Release Win ] http/tests/devtools/network/network-disable-cache-preloads-twice.js [ Slow ] crbug.com/1044545 [ Linux Release ] http/tests/devtools/service-workers/service-workers-bypass-for-network-cors.js [ Slow ] @@ -1129,11 +1122,15 @@ crbug.com/1046784 [ Mac11 Release ] http/tests/devtools/persistence/persistence-tabbed-editor-tabs-order.js [ Slow ] crbug.com/1046784 [ Mac12 Release ] http/tests/devtools/persistence/persistence-tabbed-editor-tabs-order.js [ Slow ] crbug.com/1046784 [ Release Win ] http/tests/devtools/persistence/persistence-tabbed-editor-tabs-order.js [ Slow ] -crbug.com/1046784 http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Linux ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Mac10.15 Release ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Mac11 Release ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Mac12 ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Mac12-arm64 Release ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] +crbug.com/1046784 [ Release Win ] http/tests/devtools/elements/styles-4/styles-update-links-3.js [ Slow ] crbug.com/1046784 [ Linux ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] crbug.com/1046784 [ Mac10.15 Release ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] crbug.com/1046784 [ Mac11 Release ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] -crbug.com/1046784 [ Mac11-arm64 Release ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] crbug.com/1046784 [ Mac12 ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] crbug.com/1046784 [ Release Win ] http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Slow ] crbug.com/1046784 [ Linux ] http/tests/devtools/coverage/coverage-suspended.js [ Slow ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index e0085bd..0de1faf 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -6927,7 +6927,6 @@ crbug.com/1406380 [ Win ] external/wpt/infrastructure/server/webtransport-h3.https.sub.any.serviceworker.html [ Failure Pass ] -crbug.com/1406683 [ Win11 ] external/wpt/css/css-properties-values-api/at-property-animation.html [ Failure ] crbug.com/1406950 [ Win10.20h2 ] http/tests/devtools/indexeddb/resources-panel.js [ Failure Pass ] # These tests test aspects of document.domain setting, which will (& should)
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-end-computed.html b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-end-computed.html index 9e0326b..bfb89d0 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-end-computed.html +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-end-computed.html
@@ -9,15 +9,4 @@ test_computed_value("animation-delay-start", "-500ms", "-0.5s"); test_computed_value("animation-delay-start", "calc(2 * 3s)", "6s"); test_computed_value("animation-delay-start", "20s, 10s"); - -test_computed_value("animation-delay-start", "cover 0%"); -test_computed_value("animation-delay-start", "COVER 0%", "cover 0%"); -test_computed_value("animation-delay-start", "cover 100%"); -test_computed_value("animation-delay-start", "cover 120%"); -test_computed_value("animation-delay-start", "cover 42%"); -test_computed_value("animation-delay-start", "cover -42%"); -test_computed_value("animation-delay-start", "contain 42%"); -test_computed_value("animation-delay-start", "exit 42%"); -test_computed_value("animation-delay-start", "exit calc(41% + 1%)", "exit 42%"); -test_computed_value("animation-delay-start", "exit 1%, cover 2%, contain 100%"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed.html b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed.html index 01b1375..0a1eb96 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed.html +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed.html
@@ -13,25 +13,4 @@ test_computed_value("animation-delay", "1s 2s, 3s"); test_computed_value("animation-delay", "1s, 2s 3s"); test_computed_value("animation-delay", "1s, 2s, 3s"); - -test_computed_value("animation-delay", "cover"); -test_computed_value("animation-delay", "contain"); -test_computed_value("animation-delay", "enter"); -test_computed_value("animation-delay", "exit"); -test_computed_value("animation-delay", "enter, exit"); - -test_computed_value("animation-delay", "enter 0% enter 100%", "enter"); -test_computed_value("animation-delay", "exit 0% exit 100%", "exit"); -test_computed_value("animation-delay", "cover 0% cover 100%", "cover"); -test_computed_value("animation-delay", "contain 0% contain 100%", "contain"); - -test_computed_value("animation-delay", "cover 50%"); -test_computed_value("animation-delay", "contain 50%"); -test_computed_value("animation-delay", "enter 50%"); -test_computed_value("animation-delay", "exit 50%"); - -test_computed_value("animation-delay", "enter 50% 0s", "enter 50%"); -test_computed_value("animation-delay", "0s enter 50%"); -test_computed_value("animation-delay", "enter 50% exit 50%"); -test_computed_value("animation-delay", "cover 50% enter 50%, contain 50% exit 50%"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-start-computed.html b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-start-computed.html index 9e0326b..bfb89d0 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-start-computed.html +++ b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-delay-start-computed.html
@@ -9,15 +9,4 @@ test_computed_value("animation-delay-start", "-500ms", "-0.5s"); test_computed_value("animation-delay-start", "calc(2 * 3s)", "6s"); test_computed_value("animation-delay-start", "20s, 10s"); - -test_computed_value("animation-delay-start", "cover 0%"); -test_computed_value("animation-delay-start", "COVER 0%", "cover 0%"); -test_computed_value("animation-delay-start", "cover 100%"); -test_computed_value("animation-delay-start", "cover 120%"); -test_computed_value("animation-delay-start", "cover 42%"); -test_computed_value("animation-delay-start", "cover -42%"); -test_computed_value("animation-delay-start", "contain 42%"); -test_computed_value("animation-delay-start", "exit 42%"); -test_computed_value("animation-delay-start", "exit calc(41% + 1%)", "exit 42%"); -test_computed_value("animation-delay-start", "exit 1%, cover 2%, contain 100%"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/resources/scope.css b/third_party/blink/web_tests/external/wpt/css/css-cascade/resources/scope.css new file mode 100644 index 0000000..780e90f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/resources/scope.css
@@ -0,0 +1,4 @@ +@scope { + :scope { z-index:1; } + .a { z-index:2; } +}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit-external.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit-external.html new file mode 100644 index 0000000..d1ac738 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit-external.html
@@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> + <head> + <title>@scope - implicit scope root (external sheet)</title> + <link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div class="a outside"><div> + <div id=root> + <link rel="stylesheet" href="resources/scope.css"> + <div class=a></div> + </div> + <div class="a outside"><div> + + <script> + test((t) => { + assert_equals(getComputedStyle(root).zIndex, '1'); + assert_equals(getComputedStyle(document.querySelector('#root > .a')).zIndex, '2'); + + let outside = document.querySelectorAll('.outside'); + assert_equals(outside.length, 2); + for (let div of outside) { + assert_equals(getComputedStyle(div).zIndex, 'auto'); + } + }, '@scope with external stylesheet'); + </script> + </body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit.html new file mode 100644 index 0000000..805a91e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/scope-implicit.html
@@ -0,0 +1,91 @@ +<!DOCTYPE html> +<title>@scope - implicit scope root</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<main id=main></main> + +<template id=test_basic> + <div> + <style> + @scope { + .a { z-index:1; } + } + </style> + <div id=inner class=a></div> + </div> + <div id=outer class=a></div> +</template> +<script> +test((t) => { + t.add_cleanup(() => main.replaceChildren()); + main.append(test_basic.content.cloneNode(true)); + + assert_equals(getComputedStyle(inner).zIndex, '1'); + assert_equals(getComputedStyle(outer).zIndex, 'auto'); +}, '@scope without prelude implicitly scopes to parent of owner node'); +</script> + +<template id=test_scope_pseudo> + <div> + <div></div> + </div> + <div> + <div id=root> + <style> + @scope { + :scope { z-index:1; } + } + </style> + <div> + <div></div> + </div> + </div> + </div> + <div> + <div></div> + </div> +</template> +<script> +test((t) => { + t.add_cleanup(() => main.replaceChildren()); + main.append(test_scope_pseudo.content.cloneNode(true)); + + assert_equals(getComputedStyle(root).zIndex, '1'); + + // Only #root should be affected. + for (let div of main.querySelectorAll('div:not(#root)')) { + assert_equals(getComputedStyle(div).zIndex, 'auto'); + } +}, ':scope can style implicit root'); +</script> + +<template id=test_duplicate> + <div> + <style> + @scope { + .a { z-index:1; } + } + </style> + <div id=first class=a></div> + </div> + <div> + <style> + @scope { + .a { z-index:1; } + } + </style> + <div id=second class=a></div> + </div> + <div id=outer class=a></div> +</template> +<script> +test((t) => { + t.add_cleanup(() => main.replaceChildren()); + main.append(test_duplicate.content.cloneNode(true)); + + assert_equals(getComputedStyle(first).zIndex, '1'); + assert_equals(getComputedStyle(second).zIndex, '1'); + assert_equals(getComputedStyle(outer).zIndex, 'auto'); +}, '@scope works with two identical stylesheets'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029-ref.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029-ref.html new file mode 100644 index 0000000..8c92486c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029-ref.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<div style="display:flow-root; width:20em; height:10em; color:white; background:black;"> + <p>The word "PASS" should be seen below.</p> + <div style="line-height:0.8;"> + PASS + </div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029.html new file mode 100644 index 0000000..4f73427c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/multicol-nested-029.html
@@ -0,0 +1,10 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1396308"> +<link rel="match" href="multicol-nested-029-ref.html"> +<div style="columns:1; column-fill:auto; width:20em; height:10em; color:white; background:black;"> + <p>The word "PASS" should be seen below.</p> + <div style="columns:2; line-height:0.8;"> + PASS + </div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt index 3ae829c..a193d781 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt
@@ -11,5 +11,7 @@ PASS Transition triggered by initial value change PASS No transition when changing types FAIL No transition when removing @property rule assert_equals: expected "100px" but got " 100px" +FAIL Unregistered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" +FAIL Registered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt similarity index 100% rename from third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt rename to third_party/blink/web_tests/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt index 3ea67e86..d3d3681 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt
@@ -6,7 +6,7 @@ PASS Font-relative units are absolutized when substituting PASS Calc expressions are resolved when substituting PASS Lists with relative units are absolutized when substituting -PASS Values are absolutized when substituting into properties with universal syntax +FAIL Values are absolutized when substituting into properties with universal syntax assert_equals: expected "100px" but got " 100px" PASS Valid fallback does not invalidate var()-reference [<length>, 10px] PASS Valid fallback does not invalidate var()-reference [<length> | <color>, red] PASS Valid fallback does not invalidate var()-reference [<length> | none, none]
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/css/view-timeline-delay-animation.html b/third_party/blink/web_tests/external/wpt/scroll-animations/css/view-timeline-delay-animation.html deleted file mode 100644 index dfb0e59..0000000 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/css/view-timeline-delay-animation.html +++ /dev/null
@@ -1,144 +0,0 @@ -<!DOCTYPE html> -<title>Animations using named timeline ranges</title> -<link rel="help" src="https://drafts.csswg.org/scroll-animations-1/#named-timeline-range"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/web-animations/testcommon.js"></script> -<script src="support/testcommon.js"></script> -<style> - @keyframes anim { - from { z-index: 0; background-color: skyblue;} - to { z-index: 100; background-color: coral; } - } - #scroller { - border: 10px solid lightgray; - overflow-y: scroll; - width: 200px; - height: 200px; - } - #target { - margin: 800px 0px; - width: 100px; - height: 100px; - z-index: -1; - background-color: green; - } -</style> -<main id=main> -</main> -<template> - <div id=scroller> - <div id=target></div> - </div> -</template> -<script> - setup(assert_implements_animation_timeline); - - function inflate(t, template) { - t.add_cleanup(() => main.replaceChildren()); - main.append(template.content.cloneNode(true)); - } - async function scrollTop(e, value) { - e.scrollTop = value; - await waitForNextFrame(); - } - async function waitForAnimationReady(target) { - await waitForNextFrame(); - await Promise.all(target.getAnimations().map(x => x.promise)); - } - async function assertValueAt(scroller, target, args) { - await waitForAnimationReady(target); - await scrollTop(scroller, args.scrollTop); - assert_equals(getComputedStyle(target).zIndex, args.expected.toString()); - } - function test_animation_delay(options) { - promise_test(async (t) => { - inflate(t, document.querySelector('template')); - let scroller = main.querySelector('#scroller'); - let target = main.querySelector('#target'); - - target.style.viewTimeline = 't1 block'; - // TODO(crbug.com/1375998): Create the timeline in a separate frame to - // work around a bug. - await waitForNextFrame(); - - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 't1'; - target.style.animationDelayStart = options.startDelay; - target.style.animationDelayEnd = options.endDelay; - - // Accommodates floating point precision errors at the endpoints. - target.style.animationFillMode = 'both'; - - // 0% - await assertValueAt(scroller, target, - { scrollTop: options.rangeStart, expected: 0 }); - // 50% - await assertValueAt(scroller, target, - { scrollTop: (options.rangeStart + options.rangeEnd) / 2, expected: 50 }); - // 100% - await assertValueAt(scroller, target, - { scrollTop: options.rangeEnd, expected: 100 }); - - // Test before/after phases (need to clear the fill mode for that). - target.style.animationFillMode = 'initial'; - await assertValueAt(scroller, target, - { scrollTop: options.rangeStart - 10, expected: -1 }); - await assertValueAt(scroller, target, - { scrollTop: options.rangeEnd + 10, expected: -1 }); - // Check 50% again without fill mode. - await assertValueAt(scroller, target, - { scrollTop: (options.rangeStart + options.rangeEnd) / 2, expected: 50 }); - - }, `Animation with delays [${options.startDelay}, ${options.endDelay}]`); - } - - test_animation_delay({ - startDelay: 'initial', - endDelay: 'initial', - rangeStart: 600, - rangeEnd: 900 - }); - - test_animation_delay({ - startDelay: 'cover 0%', - endDelay: 'cover 100%', - rangeStart: 600, - rangeEnd: 900 - }); - - test_animation_delay({ - startDelay: 'contain 0%', - endDelay: 'contain 100%', - rangeStart: 700, - rangeEnd: 800 - }); - - test_animation_delay({ - startDelay: 'enter 0%', - endDelay: 'enter 100%', - rangeStart: 600, - rangeEnd: 700 - }); - - test_animation_delay({ - startDelay: 'exit 0%', - endDelay: 'exit 100%', - rangeStart: 800, - rangeEnd: 900 - }); - - test_animation_delay({ - startDelay: 'contain -50%', - endDelay: 'enter 200%', - rangeStart: 650, - rangeEnd: 800 - }); - - test_animation_delay({ - startDelay: 'enter 0%', - endDelay: 'exit 100%', - rangeStart: 600, - rangeEnd: 900 - }); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/testcommon.js b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/testcommon.js index 969f282..12693c3 100644 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/testcommon.js +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/testcommon.js
@@ -32,13 +32,13 @@ // the animation. // // Sample call: -// await runTimelineRangeTest(t, { +// await runTimelineBoundsTest(t, { // timeline: { inset: [ CSS.percent(0), CSS.percent(20)] }, // timing: { fill: 'both' } -// rangeStart: 600, -// rangeEnd: 900 +// startOffset: 600, +// endOffset: 900 // }); -async function runTimelineRangeTest(t, options, message) { +async function runTimelineBoundsTest(t, options, message) { container.scrollLeft = 0; await waitForNextFrame(); @@ -52,19 +52,19 @@ await anim.ready; // Advance to the start offset, which triggers entry to the active phase. - container.scrollLeft = options.rangeStart; + container.scrollLeft = options.startOffset; await waitForNextFrame(); assert_equals(getComputedStyle(target).opacity, '0.3', `Effect at the start of the active phase: ${message}`); // Advance to the midpoint of the animation. - container.scrollLeft = (options.rangeStart + options.rangeEnd) / 2; + container.scrollLeft = (options.startOffset + options.endOffset) / 2; await waitForNextFrame(); assert_equals(getComputedStyle(target).opacity,'0.5', `Effect at the midpoint of the active range: ${message}`); // Advance to the end of the animation. - container.scrollLeft = options.rangeEnd; + container.scrollLeft = options.endOffset; await waitForNextFrame(); assert_equals(getComputedStyle(target).opacity, '0.7', `Effect is in the active phase at effect end time: ${message}`); @@ -73,51 +73,51 @@ return anim; } -// Sets the start and end delays for a view timeline and ensures that the +// Sets the start and end range for a view timeline and ensures that the // range aligns with expected values. // // Sample call: -// await runTimelineDelayTest(t, { -// delay: { phase: 'cover', percent: CSS.percent(0) } , -// endDelay: { phase: 'cover', percent: CSS.percent(100) }, -// rangeStart: 600, -// rangeEnd: 900 +// await runTimelineRangeTest(t, { +// rangeStart: { rangeName: 'cover', offset: CSS.percent(0) } , +// rangeEnd: { rangeName: 'cover', offset: CSS.percent(100) }, +// startOffset: 600, +// endOffset: 900 // }); -async function runTimelineDelayTest(t, options) { - const delayToString = delay => { +async function runTimelineRangeTest(t, options) { + const rangeToString = range => { const parts = []; - if (delay.phase) - parts.push(delay.phase); - if (delay.percent) - parts.push(`${delay.percent.value}%`); + if (range.rangeName) + parts.push(range.rangeName); + if (range.offset) + parts.push(`${range.offset.value}%`); return parts.join(' '); }; const range = - `${delayToString(options.delay)} to ` + - `${delayToString(options.endDelay)}`; + `${rangeToString(options.rangeStart)} to ` + + `${rangeToString(options.rangeEnd)}`; options.timeline = { axis: 'inline' }; options.timing = { - delay: options.delay, - endDelay: options.endDelay, + rangeStart: options.rangeStart, + rangeEnd: options.rangeEnd, // Set fill to accommodate floating point precision errors at the // endpoints. fill: 'both' }; - return runTimelineRangeTest(t, options, range); + return runTimelineBoundsTest(t, options, range); } // Sets the Inset for a view timeline and ensures that the range aligns with // expected values. // // Sample call: -// await runTimelineDelayTest(t, { +// await runTimelineInsetTest(t, { // inset: [ CSS.px(20), CSS.px(40) ] -// rangeStart: 600, -// rangeEnd: 900 +// startOffset: 600, +// endOffset: 900 // }); async function runTimelineInsetTest(t, options) { options.timeline = { @@ -133,5 +133,5 @@ const range = (options.inset instanceof Array) ? options.inset.join(' ') : options.inset; - return runTimelineRangeTest(t, options, range); + return runTimelineBoundsTest(t, options, range); }
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay-large-subject.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay-large-subject.html deleted file mode 100644 index edb37c1..0000000 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay-large-subject.html +++ /dev/null
@@ -1,93 +0,0 @@ -<!DOCTYPE html> -<html id="top"> -<meta charset="utf-8"> -<title>View timeline delay</title> -<link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#viewtimeline-interface"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/web-animations/testcommon.js"></script> -<script src="/scroll-animations/scroll-timelines/testcommon.js"></script> -<script src="/scroll-animations/view-timelines/testcommon.js"></script> -<style> - #container { - border: 10px solid lightgray; - overflow-x: scroll; - height: 200px; - width: 200px; - } - #content { - display: flex; - flex-flow: row nowrap; - justify-content: flex-start; - width: 2100px; - margin: 0; - } - .spacer { - width: 800px; - display: inline-block; - } - #target { - background-color: green; - height: 100px; - /* target size > viewport size, which changes interpretation of the - contain range */ - width: 400px; - display: inline-block; - } -</style> -<body> - <div id="container"> - <div id="content"> - <div class="spacer"></div> - <div id="target"></div> - <div class="spacer"></div> - </div> - </div> -</body> -<script type="text/javascript"> - promise_test(async t => { - await runTimelineDelayTest(t, { - delay: { phase: 'cover', percent: CSS.percent(0) } , - endDelay: { phase: 'cover', percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 1200 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'contain', percent: CSS.percent(0) } , - endDelay: { phase: 'contain', percent: CSS.percent(100) }, - rangeStart: 800, - rangeEnd: 1000 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'enter', percent: CSS.percent(0) }, - endDelay: { phase: 'enter', percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 800 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'exit', percent: CSS.percent(0) }, - endDelay: { phase: 'exit', percent: CSS.percent(100) }, - rangeStart: 1000, - rangeEnd: 1200 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'contain', percent: CSS.percent(-50) }, - endDelay: { phase: 'enter', percent: CSS.percent(200) }, - rangeStart: 700, - rangeEnd: 1000 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'enter' }, - endDelay: { phase: 'exit' }, - rangeStart: 600, - rangeEnd: 1200 - }); - await runTimelineDelayTest(t, { - delay: { percent: CSS.percent(0) }, - endDelay: { percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 1200 - }); - - }, 'View timeline with range set via delays.' ); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay.html deleted file mode 100644 index 1377dc3..0000000 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-delay.html +++ /dev/null
@@ -1,103 +0,0 @@ -<!DOCTYPE html> -<html id="top"> -<meta charset="utf-8"> -<title>View timeline delay</title> -<link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#viewtimeline-interface"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/web-animations/testcommon.js"></script> -<script src="/scroll-animations/scroll-timelines/testcommon.js"></script> -<script src="/scroll-animations/view-timelines/testcommon.js"></script> -<style> - #container { - border: 10px solid lightgray; - overflow-x: scroll; - height: 200px; - width: 200px; - } - #content { - display: flex; - flex-flow: row nowrap; - justify-content: flex-start; - width: 1800px; - margin: 0; - } - .spacer { - width: 800px; - display: inline-block; - } - #target { - background-color: green; - height: 100px; - width: 100px; - display: inline-block; - } -</style> -<body> - <div id="container"> - <div id="content"> - <div class="spacer"></div> - <div id="target"></div> - <div class="spacer"></div> - </div> - </div> -</body> -<script type="text/javascript"> - promise_test(async t => { - // Delays are associated with the animation and not with the timeline. - // Thus adjusting the delays has no effect on the timeline offsets. The - // offsets always correspond to the 'cover' range. - const verifyTimelineOffsets = anim => { - const timeline = anim.timeline; - assert_px_equals(timeline.startOffset, 600, 'startOffset'); - assert_px_equals(timeline.endOffset, 900, 'endOffset'); - }; - await runTimelineDelayTest(t, { - delay: { phase: 'cover', percent: CSS.percent(0) } , - endDelay: { phase: 'cover', percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 900 - }).then(anim => { - verifyTimelineOffsets(anim); - }); - await runTimelineDelayTest(t, { - delay: { phase: 'contain', percent: CSS.percent(0) } , - endDelay: { phase: 'contain', percent: CSS.percent(100) }, - rangeStart: 700, - rangeEnd: 800 - }).then(anim => { - verifyTimelineOffsets(anim); - }); - await runTimelineDelayTest(t, { - delay: { phase: 'enter', percent: CSS.percent(0) }, - endDelay: { phase: 'enter', percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 700 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'exit', percent: CSS.percent(0) }, - endDelay: { phase: 'exit', percent: CSS.percent(100) }, - rangeStart: 800, - rangeEnd: 900 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'contain', percent: CSS.percent(-50) }, - endDelay: { phase: 'enter', percent: CSS.percent(200) }, - rangeStart: 650, - rangeEnd: 800 - }); - await runTimelineDelayTest(t, { - delay: { phase: 'enter' }, - endDelay: { phase: 'exit' }, - rangeStart: 600, - rangeEnd: 900 - }); - await runTimelineDelayTest(t, { - delay: { percent: CSS.percent(0) }, - endDelay: { percent: CSS.percent(100) }, - rangeStart: 600, - rangeEnd: 900 - }); - - }, 'View timeline with range set via delays.' ); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-inset.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-inset.html index 72480ea..357d8558 100644 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-inset.html +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-inset.html
@@ -61,24 +61,24 @@ promise_test(async t => { // These tests are all based on the cover range, which has bounds // [600, 900] if there are no insets. - // rangeStart = target_pos - viewport_size + end_side_inset - // = 600 + end_side_inset - // rangeEnd = target_pos + target_size - start_side_inset - // = 900 - start_side_inset + // startOffset = target_pos - viewport_size + end_side_inset + // = 600 + end_side_inset + // endOffset = target_pos + target_size - start_side_inset + // = 900 - start_side_inset await runTimelineInsetTest(t, { inset: [ CSS.px(0), CSS.px(0) ], - rangeStart: 600, - rangeEnd: 900 + startOffset: 600, + endOffset: 900 }).then(anim => verifyTimelineOffsets(anim, 600, 900)); await runTimelineInsetTest(t, { inset: [ CSS.px(10), CSS.px(20) ], - rangeStart: 620, - rangeEnd: 890 + startOffset: 620, + endOffset: 890 }).then(anim => verifyTimelineOffsets(anim, 620, 890)); await runTimelineInsetTest(t, { inset: [ CSS.px(10) ], - rangeStart: 610, - rangeEnd: 890 + startOffset: 610, + endOffset: 890 }).then(anim => verifyTimelineOffsets(anim, 610, 890)); }, 'View timeline with px based inset.'); @@ -89,18 +89,18 @@ // test. await runTimelineInsetTest(t, { inset: [ CSS.percent(0), CSS.percent(0) ], - rangeStart: 600, - rangeEnd: 900 + startOffset: 600, + endOffset: 900 }).then(anim => verifyTimelineOffsets(anim, 600, 900)); await runTimelineInsetTest(t, { inset: [ CSS.percent(10), CSS.percent(20) ], - rangeStart: 640, - rangeEnd: 880 + startOffset: 640, + endOffset: 880 }).then(anim => verifyTimelineOffsets(anim, 640, 880)); await runTimelineInsetTest(t, { inset: [ CSS.percent(10) ], - rangeStart: 620, - rangeEnd: 880 + startOffset: 620, + endOffset: 880 }).then(anim => verifyTimelineOffsets(anim, 620, 880)); }, 'View timeline with percent based inset.'); @@ -110,15 +110,15 @@ }); const anim = await runTimelineInsetTest(t, { inset: [ "auto", "auto" ], - rangeStart: 600, - rangeEnd: 900 + startOffset: 600, + endOffset: 900 }); verifyTimelineOffsets(anim, 600, 900); container.classList.add('scroll-padded'); - await runTimelineRangeTest(t, { + await runTimelineBoundsTest(t, { anim: anim, - rangeStart: 620, - rangeEnd: 890, + startOffset: 620, + endOffset: 890, }, 'Adjust for scroll-padding') .then(anim => verifyTimelineOffsets(anim, 620, 890)); }, 'view timeline with inset auto.'); @@ -129,15 +129,15 @@ }); const anim = await runTimelineInsetTest(t, { inset: [ CSS.em(1), CSS.em(2) ], - rangeStart: 632, - rangeEnd: 884 + startOffset: 632, + endOffset: 884 }); verifyTimelineOffsets(anim, 632, 884); target.classList.add('big-font'); - await runTimelineRangeTest(t, { + await runTimelineBoundsTest(t, { anim: anim, - rangeStart: 640, - rangeEnd: 880, + startOffset: 640, + endOffset: 880, }, 'Adjust for font size increase') .then(anim => verifyTimelineOffsets(anim, 640, 880)); }, 'view timeline with font relative inset.'); @@ -148,46 +148,46 @@ const vmin = Math.min(vw, vh); await runTimelineInsetTest(t, { inset: [ CSS.vw(10), CSS.vw(20) ], - rangeStart: 600 + 0.2 * vw, - rangeEnd: 900 - 0.1 * vw + startOffset: 600 + 0.2 * vw, + endOffset: 900 - 0.1 * vw }); await runTimelineInsetTest(t, { inset: [ CSS.vmin(10), CSS.vmin(20) ], - rangeStart: 600 + 0.2 * vmin, - rangeEnd: 900 - 0.1 * vmin + startOffset: 600 + 0.2 * vmin, + endOffset: 900 - 0.1 * vmin }); }, 'view timeline with viewport relative insets.'); promise_test(async t => { await runTimelineInsetTest(t, { inset: "10px", - rangeStart: 610, - rangeEnd: 890 + startOffset: 610, + endOffset: 890 }); await runTimelineInsetTest(t, { inset: "10px 20px", - rangeStart: 620, - rangeEnd: 890 + startOffset: 620, + endOffset: 890 }); await runTimelineInsetTest(t, { inset: "10%", - rangeStart: 620, - rangeEnd: 880 + startOffset: 620, + endOffset: 880 }); await runTimelineInsetTest(t, { inset: "10% 20%", - rangeStart: 640, - rangeEnd: 880 + startOffset: 640, + endOffset: 880 }); await runTimelineInsetTest(t, { inset: "auto", - rangeStart: 600, - rangeEnd: 900 + startOffset: 600, + endOffset: 900 }); await runTimelineInsetTest(t, { inset: "1em 2em", - rangeStart: 632, - rangeEnd: 884 + startOffset: 632, + endOffset: 884 }); assert_throws_js(TypeError, () => { new ViewTimeline({
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range-large-subject.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range-large-subject.html new file mode 100644 index 0000000..5a7416e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range-large-subject.html
@@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html id="top"> +<meta charset="utf-8"> +<title>View timeline delay</title> +<link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#viewtimeline-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/web-animations/testcommon.js"></script> +<script src="/scroll-animations/scroll-timelines/testcommon.js"></script> +<script src="/scroll-animations/view-timelines/testcommon.js"></script> +<style> + #container { + border: 10px solid lightgray; + overflow-x: scroll; + height: 200px; + width: 200px; + } + #content { + display: flex; + flex-flow: row nowrap; + justify-content: flex-start; + width: 2100px; + margin: 0; + } + .spacer { + width: 800px; + display: inline-block; + } + #target { + background-color: green; + height: 100px; + /* target size > viewport size, which changes interpretation of the + contain range */ + width: 400px; + display: inline-block; + } +</style> +<body> + <div id="container"> + <div id="content"> + <div class="spacer"></div> + <div id="target"></div> + <div class="spacer"></div> + </div> + </div> +</body> +<script type="text/javascript"> + promise_test(async t => { + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'cover', offset: CSS.percent(0) } , + rangeEnd: { rangeName: 'cover', offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 1200 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'contain', offset: CSS.percent(0) } , + rangeEnd: { rangeName: 'contain', offset: CSS.percent(100) }, + startOffset: 800, + endOffset: 1000 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'enter', offset: CSS.percent(0) }, + rangeEnd: { rangeName: 'enter', offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 800 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'exit', offset: CSS.percent(0) }, + rangeEnd: { rangeName: 'exit', offset: CSS.percent(100) }, + startOffset: 1000, + endOffset: 1200 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'contain', offset: CSS.percent(-50) }, + rangeEnd: { rangeName: 'enter', offset: CSS.percent(200) }, + startOffset: 700, + endOffset: 1000 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'enter' }, + rangeEnd: { rangeName: 'exit' }, + startOffset: 600, + endOffset: 1200 + }); + await runTimelineRangeTest(t, { + rangeStart: { offset: CSS.percent(0) }, + rangeEnd: { offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 1200 + }); + + }, 'View timeline with range set via delays.' ); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range.html new file mode 100644 index 0000000..916b4c1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-range.html
@@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html id="top"> +<meta charset="utf-8"> +<title>View timeline delay</title> +<link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#viewtimeline-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/web-animations/testcommon.js"></script> +<script src="/scroll-animations/scroll-timelines/testcommon.js"></script> +<script src="/scroll-animations/view-timelines/testcommon.js"></script> +<style> + #container { + border: 10px solid lightgray; + overflow-x: scroll; + height: 200px; + width: 200px; + } + #content { + display: flex; + flex-flow: row nowrap; + justify-content: flex-start; + width: 1800px; + margin: 0; + } + .spacer { + width: 800px; + display: inline-block; + } + #target { + background-color: green; + height: 100px; + width: 100px; + display: inline-block; + } +</style> +<body> + <div id="container"> + <div id="content"> + <div class="spacer"></div> + <div id="target"></div> + <div class="spacer"></div> + </div> + </div> +</body> +<script type="text/javascript"> + promise_test(async t => { + // Delays are associated with the animation and not with the timeline. + // Thus adjusting the delays has no effect on the timeline offsets. The + // offsets always correspond to the 'cover' range. + const verifyTimelineOffsets = anim => { + const timeline = anim.timeline; + assert_px_equals(timeline.startOffset, 600, 'startOffset'); + assert_px_equals(timeline.endOffset, 900, 'endOffset'); + }; + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'cover', offset: CSS.percent(0) } , + rangeEnd: { rangeName: 'cover', offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 900 + }).then(anim => { + verifyTimelineOffsets(anim); + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'contain', offset: CSS.percent(0) } , + rangeEnd: { rangeName: 'contain', offset: CSS.percent(100) }, + startOffset: 700, + endOffset: 800 + }).then(anim => { + verifyTimelineOffsets(anim); + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'enter', offset: CSS.percent(0) }, + rangeEnd: { rangeName: 'enter', offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 700 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'exit', offset: CSS.percent(0) }, + rangeEnd: { rangeName: 'exit', offset: CSS.percent(100) }, + startOffset: 800, + endOffset: 900 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'contain', offset: CSS.percent(-50) }, + rangeEnd: { rangeName: 'enter', offset: CSS.percent(200) }, + startOffset: 650, + endOffset: 800 + }); + await runTimelineRangeTest(t, { + rangeStart: { rangeName: 'enter' }, + rangeEnd: { rangeName: 'exit' }, + startOffset: 600, + endOffset: 900 + }); + await runTimelineRangeTest(t, { + rangeStart: { offset: CSS.percent(0) }, + rangeEnd: { offset: CSS.percent(100) }, + startOffset: 600, + endOffset: 900 + }); + + }, 'View timeline with range set via delays.' ); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-subject-size-changes.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-subject-size-changes.html index b438317..553facb 100644 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-subject-size-changes.html +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-subject-size-changes.html
@@ -37,8 +37,8 @@ const options = { axis: 'vertical', timing: { - delay: { phase: 'enter', percent: CSS.percent(0) }, - endDelay: { phase: 'enter', percent: CSS.percent(100) }, + rangeStart: { rangeName: 'enter', offset: CSS.percent(0) }, + rangeEnd: { rangeName: 'enter', offset: CSS.percent(100) }, // Set fill to accommodate floating point precision errors at the endpoints. fill: 'both' } @@ -48,6 +48,7 @@ await waitForNextFrame(); const anim = CreateViewTimelineOpacityAnimation(t, target, options); + const timeline = anim.timeline; anim.effect.updateTiming(options.timing); await anim.ready;
diff --git a/third_party/blink/web_tests/external/wpt/webnn/batch_normalization.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/batch_normalization.https.any.worker-expected.txt index 70f62cfa..557f572 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/batch_normalization.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/batch_normalization.https.any.worker-expected.txt
@@ -1,4 +1,47 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL batchNormalization float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.axis=1 / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NHWC tensor options.axis=3 / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.scale / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.bias / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.epsilon / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.activation relu / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NHWC tensor all options / cpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.axis=1 / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NHWC tensor options.axis=3 / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.scale / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.bias / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.epsilon / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NCHW tensor options.activation relu / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 4D NHWC tensor all options / gpu / sync builder[operationName] is not a function +FAIL batchNormalization float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.axis=1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NHWC tensor options.axis=3 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.scale / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.bias / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.epsilon / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.activation relu / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NHWC tensor all options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.axis=1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NHWC tensor options.axis=3 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.scale / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.bias / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.epsilon / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NCHW tensor options.activation relu / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL batchNormalization float32 4D NHWC tensor all options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/clamp.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/clamp.https.any.worker-expected.txt index 70f62cfa..0956f37 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/clamp.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/clamp.https.any.worker-expected.txt
@@ -1,4 +1,68 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 64 tests; 0 PASS, 64 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL clamp float32 1D tensor default options / cpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor default options / cpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options / cpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor default options / cpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor default options / cpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor default options.maxValue and specified negative options.minValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options.maxValue and specified options.minValue=0.0 / cpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor default options.maxValue and specified positive options.minValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor default options.minValue and specified negative options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor default options.minValue and specified options.maxValue=0.0 / cpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options.minValue and specified positive options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor specified both negative options.minValue and options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor specified negative options.minValue and options.maxValue=0.0 / cpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor specified negative options.minValue and positive options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor specified options.minValue=0.0 and positive options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor specified both positive options.minValue and options.maxValue / cpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor default options / gpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor default options / gpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options / gpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor default options / gpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor default options / gpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor default options.maxValue and specified negative options.minValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options.maxValue and specified options.minValue=0.0 / gpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor default options.maxValue and specified positive options.minValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor default options.minValue and specified negative options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor default options.minValue and specified options.maxValue=0.0 / gpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor default options.minValue and specified positive options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 5D tensor specified both negative options.minValue and options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 4D tensor specified negative options.minValue and options.maxValue=0.0 / gpu / sync builder.buildSync is not a function +FAIL clamp float32 3D tensor specified negative options.minValue and positive options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 2D tensor specified options.minValue=0.0 and positive options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor specified both positive options.minValue and options.maxValue / gpu / sync builder.buildSync is not a function +FAIL clamp float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor default options.maxValue and specified negative options.minValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options.maxValue and specified options.minValue=0.0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor default options.maxValue and specified positive options.minValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor default options.minValue and specified negative options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 1D tensor default options.minValue and specified options.maxValue=0.0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options.minValue and specified positive options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor specified both negative options.minValue and options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor specified negative options.minValue and options.maxValue=0.0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor specified negative options.minValue and positive options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor specified options.minValue=0.0 and positive options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 1D tensor specified both positive options.minValue and options.maxValue / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor default options.maxValue and specified negative options.minValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options.maxValue and specified options.minValue=0.0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor default options.maxValue and specified positive options.minValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor default options.minValue and specified negative options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 1D tensor default options.minValue and specified options.maxValue=0.0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor default options.minValue and specified positive options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 5D tensor specified both negative options.minValue and options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 4D tensor specified negative options.minValue and options.maxValue=0.0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 3D tensor specified negative options.minValue and positive options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 2D tensor specified options.minValue=0.0 and positive options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL clamp float32 1D tensor specified both positive options.minValue and options.maxValue / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/concat.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/concat.https.any.worker-expected.txt index 70f62cfa..28b5d976 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/concat.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/concat.https.any.worker-expected.txt
@@ -1,4 +1,92 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 88 tests; 0 PASS, 88 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL concat two float32 1D tensors of same shape along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 1D tensors of different 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 1D tensors of same 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 1D tensors of different 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same shape along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 2D tensors of same shape along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 2D tensors of same shape along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 3D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 3D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 3D tensors of same shape along axis 2 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 4D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 4D tensors of same shape along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 4D tensors of same others dimensions except different 3rd dimension along axis 2 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 4D tensors of same others dimensions except different 4th dimension along axis 3 / cpu / sync builder[operationName] is not a function +FAIL concat four float32 5D tensors of same shape along axis 0 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / sync builder[operationName] is not a function +FAIL concat three float32 5D tensors of same others dimensions except different 3rd dimension along axis 2 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 4th dimension along axis 3 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 5th dimension along axis 4 / cpu / sync builder[operationName] is not a function +FAIL concat two float32 1D tensors of same shape along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 1D tensors of different 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 1D tensors of same 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 1D tensors of different 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same shape along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 2D tensors of same shape along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 2D tensors of same shape along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 3D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 3D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 3D tensors of same shape along axis 2 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 4D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 4D tensors of same shape along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 4D tensors of same others dimensions except different 3rd dimension along axis 2 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 4D tensors of same others dimensions except different 4th dimension along axis 3 / gpu / sync builder[operationName] is not a function +FAIL concat four float32 5D tensors of same shape along axis 0 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / sync builder[operationName] is not a function +FAIL concat three float32 5D tensors of same others dimensions except different 3rd dimension along axis 2 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 4th dimension along axis 3 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 5D tensors of same others dimensions except different 5th dimension along axis 4 / gpu / sync builder[operationName] is not a function +FAIL concat two float32 1D tensors of same shape along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 1D tensors of different 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 1D tensors of same 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 1D tensors of different 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same shape along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 2D tensors of same shape along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 2D tensors of same shape along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 3D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 3D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 3D tensors of same shape along axis 2 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 4D tensors of same others dimensions except different 1st dimension along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 4D tensors of same shape along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 4D tensors of same others dimensions except different 3rd dimension along axis 2 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 4D tensors of same others dimensions except different 4th dimension along axis 3 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 5D tensors of same shape along axis 0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 2nd dimension along axis 1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 5D tensors of same others dimensions except different 3rd dimension along axis 2 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 4th dimension along axis 3 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 5th dimension along axis 4 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 1D tensors of same shape along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 1D tensors of different 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 1D tensors of same 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 1D tensors of different 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same shape along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 2D tensors of same shape along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 2D tensors of same shape along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 2D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 3D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 3D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 3D tensors of same shape along axis 2 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 4D tensors of same others dimensions except different 1st dimension along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 4D tensors of same shape along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 4D tensors of same others dimensions except different 3rd dimension along axis 2 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 4D tensors of same others dimensions except different 4th dimension along axis 3 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat four float32 5D tensors of same shape along axis 0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 2nd dimension along axis 1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat three float32 5D tensors of same others dimensions except different 3rd dimension along axis 2 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 4th dimension along axis 3 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL concat two float32 5D tensors of same others dimensions except different 5th dimension along axis 4 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/conv2d.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/conv2d.https.any.worker-expected.txt index 70f62cfa..d3187175 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/conv2d.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/conv2d.https.any.worker-expected.txt
@@ -1,4 +1,104 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 100 tests; 0 PASS, 100 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL conv2d float32 4D input and filter tensors default options / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.padding / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.strides / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.dilations / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.padding and options.autoPad='explicit' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.groups / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nchw' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='oihw' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='hwio' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ohwi' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ihwo' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo' / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors 1D options.bias / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.activation=relu / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.activation=sigmoid / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.dilations with options.strides / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors all options / cpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors default options / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.padding / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.strides / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.dilations / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.padding and options.autoPad='explicit' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.groups / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nchw' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='oihw' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='hwio' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ohwi' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ihwo' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo' / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors 1D options.bias / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.activation=relu / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.activation=sigmoid / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors options.dilations with options.strides / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors all options / gpu / sync builder.buildSync is not a function +FAIL conv2d float32 4D input and filter tensors default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.dilations / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.padding and options.autoPad='explicit' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.groups / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nchw' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='oihw' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='hwio' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ohwi' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ihwo' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo' / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors 1D options.bias / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.activation=relu / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.activation=sigmoid / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.dilations with options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors all options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.dilations / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.padding and options.autoPad='explicit' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-upper' ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.autoPad='same-lower' ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.groups / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nchw' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='oihw' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='hwio' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ohwi' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.filterLayout='ihwo' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo' / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors 1D options.bias / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.activation=relu / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.activation=sigmoid / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors options.dilations with options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL conv2d float32 4D input and filter tensors all options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/elementwise_binary.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/elementwise_binary.https.any.worker-expected.txt index 70f62cfa..c17c835 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/elementwise_binary.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/elementwise_binary.https.any.worker-expected.txt
@@ -1,4 +1,268 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 264 tests; 0 PASS, 264 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL add float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL add float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL add float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL add float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL add float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL add float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL add float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL add float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL add float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL add float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL add float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL sub float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL sub float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL sub float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL sub float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL sub float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL sub float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL sub float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL sub float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL sub float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL sub float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL sub float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL mul float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL mul float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL mul float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL mul float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL mul float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL mul float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL mul float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL mul float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL mul float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL mul float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL mul float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL div float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL div float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL div float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL div float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL div float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL div float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL div float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL div float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL div float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL div float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL div float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL max float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL max float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL max float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL max float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL max float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL max float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL max float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL max float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL max float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL max float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL max float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL min float32 1D tensors / cpu / sync builder.buildSync is not a function +FAIL min float32 2D tensors / cpu / sync builder.buildSync is not a function +FAIL min float32 3D tensors / cpu / sync builder.buildSync is not a function +FAIL min float32 4D tensors / cpu / sync builder.buildSync is not a function +FAIL min float32 5D tensors / cpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 1D to 4D / cpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 2D to 4D / cpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 3D to 4D / cpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 4D to 4D / cpu / sync builder.buildSync is not a function +FAIL min float32 1D tensors / gpu / sync builder.buildSync is not a function +FAIL min float32 2D tensors / gpu / sync builder.buildSync is not a function +FAIL min float32 3D tensors / gpu / sync builder.buildSync is not a function +FAIL min float32 4D tensors / gpu / sync builder.buildSync is not a function +FAIL min float32 5D tensors / gpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 1D to 4D / gpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 2D to 4D / gpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 3D to 4D / gpu / sync builder.buildSync is not a function +FAIL min float32 broadcast 4D to 4D / gpu / sync builder.buildSync is not a function +FAIL pow float32 1D base tensor and 1D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 2D base tensor and 2D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 3D base tensor and 3D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and 4D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 5D base tensor and 5D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 1D positive base tensor and 1D exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 2D positive base tensor and 2D exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D positive base tensor and 4D exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D exponent tensor and broadcastable 1D positive base tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and broadcastable 2D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and broadcastable 3D integer exponent tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 4D exponent tensor and broadcastable 4D positive base tensor / cpu / sync builder[operationName] is not a function +FAIL pow float32 1D base tensor and 1D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 2D base tensor and 2D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 3D base tensor and 3D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and 4D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 5D base tensor and 5D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 1D positive base tensor and 1D exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 2D positive base tensor and 2D exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D positive base tensor and 4D exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D exponent tensor and broadcastable 1D positive base tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and broadcastable 2D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D base tensor and broadcastable 3D integer exponent tensor / gpu / sync builder[operationName] is not a function +FAIL pow float32 4D exponent tensor and broadcastable 4D positive base tensor / gpu / sync builder[operationName] is not a function +FAIL add float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL add float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sub float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL mul float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL div float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL max float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 1D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 2D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 3D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 4D to 4D / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 1D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 2D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 3D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL min float32 broadcast 4D to 4D / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL pow float32 1D base tensor and 1D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 2D base tensor and 2D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 3D base tensor and 3D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and 4D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 5D base tensor and 5D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 1D positive base tensor and 1D exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 2D positive base tensor and 2D exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D positive base tensor and 4D exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D exponent tensor and broadcastable 1D positive base tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and broadcastable 2D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and broadcastable 3D integer exponent tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D exponent tensor and broadcastable 4D positive base tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 1D base tensor and 1D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 2D base tensor and 2D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 3D base tensor and 3D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and 4D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 5D base tensor and 5D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 1D positive base tensor and 1D exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 2D positive base tensor and 2D exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D positive base tensor and 4D exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D exponent tensor and broadcastable 1D positive base tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and broadcastable 2D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D base tensor and broadcastable 3D integer exponent tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL pow float32 4D exponent tensor and broadcastable 4D positive base tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/elementwise_unary.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/elementwise_unary.https.any.worker-expected.txt index 70f62cfa..69bc9b7 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/elementwise_unary.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/elementwise_unary.https.any.worker-expected.txt
@@ -1,4 +1,184 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 180 tests; 0 PASS, 180 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL abs float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL abs float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL abs float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL abs float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL abs float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL abs float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL abs float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL abs float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL abs float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL abs float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL ceil float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL ceil float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL ceil float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL ceil float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL ceil float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL ceil float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL ceil float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL ceil float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL ceil float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL ceil float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL cos float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL cos float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL cos float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL cos float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL cos float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL cos float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL cos float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL cos float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL cos float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL cos float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL exp float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL exp float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL exp float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL exp float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL exp float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL exp float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL exp float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL exp float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL exp float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL exp float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL floor float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL floor float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL floor float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL floor float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL floor float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL floor float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL floor float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL floor float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL floor float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL floor float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL log float32 positive 1D tensor / cpu / sync builder[operationName] is not a function +FAIL log float32 positive 2D tensor / cpu / sync builder[operationName] is not a function +FAIL log float32 positive 3D tensor / cpu / sync builder[operationName] is not a function +FAIL log float32 positive 4D tensor / cpu / sync builder[operationName] is not a function +FAIL log float32 positive 5D tensor / cpu / sync builder[operationName] is not a function +FAIL log float32 positive 1D tensor / gpu / sync builder[operationName] is not a function +FAIL log float32 positive 2D tensor / gpu / sync builder[operationName] is not a function +FAIL log float32 positive 3D tensor / gpu / sync builder[operationName] is not a function +FAIL log float32 positive 4D tensor / gpu / sync builder[operationName] is not a function +FAIL log float32 positive 5D tensor / gpu / sync builder[operationName] is not a function +FAIL neg float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL neg float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL neg float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL neg float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL neg float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL neg float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL neg float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL neg float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL neg float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL neg float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL sin float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL sin float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL sin float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL sin float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL sin float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL sin float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL sin float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL sin float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL sin float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL sin float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL tan float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL tan float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL tan float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL tan float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL tan float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL tan float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL tan float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL tan float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL tan float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL tan float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL abs float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL abs float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL ceil float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL cos float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL exp float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL floor float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL log float32 positive 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL neg float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL sin float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tan float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/gemm.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/gemm.https.any.worker-expected.txt index 70f62cfa..5095f050 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/gemm.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/gemm.https.any.worker-expected.txt
@@ -1,4 +1,64 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 60 tests; 0 PASS, 60 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL gemm two float32 2D tensors default options / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.c / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1, 5] => [3, 5] / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [3, 1] => [3, 5] / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1, 1] => [3, 5] / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1] => [3, 5] / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors scalar options.c / cpu / sync Failed to execute 'constant' on 'MLGraphBuilder': 2 arguments required, but only 1 present. +FAIL gemm two float32 2D tensors options.alpha / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.beta / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.c and options.beta / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.aTranspose being true / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.aTranspose being explicit false / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.bTranspose being true / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.bTranspose being explicit false / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors all options / cpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors default options / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.c / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1, 5] => [3, 5] / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [3, 1] => [3, 5] / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1, 1] => [3, 5] / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors broadcast options.c [1] => [3, 5] / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors scalar options.c / gpu / sync Failed to execute 'constant' on 'MLGraphBuilder': 2 arguments required, but only 1 present. +FAIL gemm two float32 2D tensors options.alpha / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.beta / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.c and options.beta / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.aTranspose being true / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.aTranspose being explicit false / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.bTranspose being true / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors options.bTranspose being explicit false / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors all options / gpu / sync builder.buildSync is not a function +FAIL gemm two float32 2D tensors default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.c / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1, 5] => [3, 5] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [3, 1] => [3, 5] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1, 1] => [3, 5] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1] => [3, 5] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors scalar options.c / cpu / async promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'constant' on 'MLGraphBuilder': 2 arguments required, but only 1 present." +FAIL gemm two float32 2D tensors options.alpha / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.beta / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.c and options.beta / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.aTranspose being true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.aTranspose being explicit false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.bTranspose being true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.bTranspose being explicit false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors all options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.c / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1, 5] => [3, 5] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [3, 1] => [3, 5] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1, 1] => [3, 5] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors broadcast options.c [1] => [3, 5] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors scalar options.c / gpu / async promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'constant' on 'MLGraphBuilder': 2 arguments required, but only 1 present." +FAIL gemm two float32 2D tensors options.alpha / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.beta / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.c and options.beta / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.aTranspose being true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.aTranspose being explicit false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.bTranspose being true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors options.bTranspose being explicit false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL gemm two float32 2D tensors all options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt index 30f3e9c..ff36335 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/idlharness.https.any.worker-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. -Found 397 tests; 97 PASS, 300 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of undefined (reading 'createContextSync')" +Found 397 tests; 227 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL idl_test setup promise_test: Unhandled rejection with value: object "TypeError: builder.buildSync is not a function" PASS idl_test validation PASS Partial interface MLContext: original interface defined PASS Partial interface MLContext: member names are unique @@ -99,291 +99,291 @@ PASS GPUTexture includes GPUObjectBase: member names are unique FAIL NavigatorML must be primary interface of navigator assert_own_property: self does not have own property "NavigatorML" expected property "NavigatorML" missing FAIL Stringification of navigator assert_class_string: class string of navigator expected "[object NavigatorML]" but got "[object WorkerNavigator]" -PASS NavigatorML interface: navigator must not have property "ml" -FAIL ML interface: existence and properties of interface object assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface object length assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface object name assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContext(optional MLContextOptions) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContext(GPUDevice) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContextSync(optional MLContextOptions) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML interface: operation createContextSync(GPUDevice) assert_own_property: self does not have own property "ML" expected property "ML" missing -FAIL ML must be primary interface of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL Stringification of navigator.ml assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContextSync(optional MLContextOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContextSync(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: navigator.ml must inherit property "createContextSync(GPUDevice)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL ML interface: calling createContextSync(GPUDevice) on navigator.ml with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined" -FAIL MLContext interface: existence and properties of interface object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface object length assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface object name assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: operation computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext interface: operation createCommandEncoder() assert_own_property: self does not have own property "MLContext" expected property "MLContext" missing -FAIL MLContext must be primary interface of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL Stringification of context assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: calling computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLContext interface: context must inherit property "createCommandEncoder()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: context is not defined" -FAIL MLOperand interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object length assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface object name assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperand" expected property "MLOperand" missing -FAIL MLOperand must be primary interface of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL Stringification of input assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: input is not defined" -FAIL MLOperand must be primary interface of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL Stringification of filter assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: filter is not defined" -FAIL MLOperand must be primary interface of output assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: output is not defined" -FAIL Stringification of output assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: output is not defined" -FAIL MLOperator interface: existence and properties of interface object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object length assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface object name assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLOperator" expected property "MLOperator" missing -FAIL MLOperator must be primary interface of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL Stringification of relu assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: relu is not defined" -FAIL MLGraphBuilder interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object length assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface object name assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation input(DOMString, MLOperandDescriptor) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation buildSync(MLNamedOperands) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation clamp(optional MLClampOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation concat(sequence<MLOperand>, long) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation conv2d(MLOperand, MLOperand, optional MLConv2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation add(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sub(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation mul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation div(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation max(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation min(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pow(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation abs(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation ceil(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation cos(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation exp(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation floor(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation log(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation neg(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sin(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tan(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(MLOperand, optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation elu(optional MLEluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gemm(MLOperand, MLOperand, optional MLGemmOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(MLOperand, optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSigmoid(optional MLHardSigmoidOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation hardSwish() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(MLOperand, optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation leakyRelu(optional MLLeakyReluOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation matmul(MLOperand, MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(MLOperand, optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation linear(optional MLLinearOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation pad(MLOperand, MLOperand, optional MLPadOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation averagePool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation l2Pool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation maxPool2d(MLOperand, optional MLPool2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL1(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceL2(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceLogSumExp(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMax(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMean(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceMin(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceProduct(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSum(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reduceSumSquare(MLOperand, optional MLReduceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation relu() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation reshape(MLOperand, sequence<unsigned long?>) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation sigmoid() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softmax(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(MLOperand, optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softplus(optional MLSoftplusOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation softsign() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation squeeze(MLOperand, optional MLSqueezeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh(MLOperand) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation tanh() assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions) assert_own_property: self does not have own property "MLGraphBuilder" expected property "MLGraphBuilder" missing -FAIL MLGraphBuilder must be primary interface of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL Stringification of builder assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "buildSync(MLNamedOperands)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling buildSync(MLNamedOperands) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "relu()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<unsigned long?>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling reshape(MLOperand, sequence<unsigned long?>) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: builder is not defined" -FAIL MLGraph interface: existence and properties of interface object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object length assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface object name assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing -FAIL MLGraph interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MLGraph" expected property "MLGraph" missing +FAIL NavigatorML interface: navigator must not have property "ml" assert_false: expected false got true +PASS ML interface: existence and properties of interface object +PASS ML interface object length +PASS ML interface object name +PASS ML interface: existence and properties of interface prototype object +PASS ML interface: existence and properties of interface prototype object's "constructor" property +PASS ML interface: existence and properties of interface prototype object's @@unscopables property +PASS ML interface: operation createContext(optional MLContextOptions) +PASS ML interface: operation createContext(GPUDevice) +PASS ML interface: operation createContextSync(optional MLContextOptions) +PASS ML interface: operation createContextSync(GPUDevice) +PASS ML must be primary interface of navigator.ml +PASS Stringification of navigator.ml +PASS ML interface: navigator.ml must inherit property "createContext(optional MLContextOptions)" with the proper type +PASS ML interface: calling createContext(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError +PASS ML interface: navigator.ml must inherit property "createContext(GPUDevice)" with the proper type +PASS ML interface: calling createContext(GPUDevice) on navigator.ml with too few arguments must throw TypeError +PASS ML interface: navigator.ml must inherit property "createContextSync(optional MLContextOptions)" with the proper type +PASS ML interface: calling createContextSync(optional MLContextOptions) on navigator.ml with too few arguments must throw TypeError +PASS ML interface: navigator.ml must inherit property "createContextSync(GPUDevice)" with the proper type +PASS ML interface: calling createContextSync(GPUDevice) on navigator.ml with too few arguments must throw TypeError +PASS MLContext interface: existence and properties of interface object +PASS MLContext interface object length +PASS MLContext interface object name +PASS MLContext interface: existence and properties of interface prototype object +PASS MLContext interface: existence and properties of interface prototype object's "constructor" property +PASS MLContext interface: existence and properties of interface prototype object's @@unscopables property +FAIL MLContext interface: operation computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: interface prototype object missing non-static operation expected property "computeSync" missing +FAIL MLContext interface: operation compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) assert_own_property: interface prototype object missing non-static operation expected property "compute" missing +FAIL MLContext interface: operation createCommandEncoder() assert_own_property: interface prototype object missing non-static operation expected property "createCommandEncoder" missing +PASS MLContext must be primary interface of context +PASS Stringification of context +FAIL MLContext interface: context must inherit property "computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_inherits: property "computeSync" not found in prototype chain +FAIL MLContext interface: calling computeSync(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_inherits: property "computeSync" not found in prototype chain +FAIL MLContext interface: context must inherit property "compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews)" with the proper type assert_inherits: property "compute" not found in prototype chain +FAIL MLContext interface: calling compute(MLGraph, MLNamedArrayBufferViews, MLNamedArrayBufferViews) on context with too few arguments must throw TypeError assert_inherits: property "compute" not found in prototype chain +FAIL MLContext interface: context must inherit property "createCommandEncoder()" with the proper type assert_inherits: property "createCommandEncoder" not found in prototype chain +PASS MLOperand interface: existence and properties of interface object +PASS MLOperand interface object length +PASS MLOperand interface object name +PASS MLOperand interface: existence and properties of interface prototype object +PASS MLOperand interface: existence and properties of interface prototype object's "constructor" property +PASS MLOperand interface: existence and properties of interface prototype object's @@unscopables property +PASS MLOperand must be primary interface of input +PASS Stringification of input +PASS MLOperand must be primary interface of filter +PASS Stringification of filter +PASS MLOperand must be primary interface of output +PASS Stringification of output +PASS MLOperator interface: existence and properties of interface object +PASS MLOperator interface object length +PASS MLOperator interface object name +PASS MLOperator interface: existence and properties of interface prototype object +PASS MLOperator interface: existence and properties of interface prototype object's "constructor" property +PASS MLOperator interface: existence and properties of interface prototype object's @@unscopables property +PASS MLOperator must be primary interface of relu +PASS Stringification of relu +PASS MLGraphBuilder interface: existence and properties of interface object +PASS MLGraphBuilder interface object length +PASS MLGraphBuilder interface object name +PASS MLGraphBuilder interface: existence and properties of interface prototype object +PASS MLGraphBuilder interface: existence and properties of interface prototype object's "constructor" property +PASS MLGraphBuilder interface: existence and properties of interface prototype object's @@unscopables property +PASS MLGraphBuilder interface: operation input(DOMString, MLOperandDescriptor) +FAIL MLGraphBuilder interface: operation constant(MLOperandDescriptor, MLBufferView) assert_equals: property has wrong .length expected 1 but got 2 +FAIL MLGraphBuilder interface: operation constant(double, optional MLOperandType) assert_equals: property has wrong .length expected 1 but got 2 +FAIL MLGraphBuilder interface: operation build(MLNamedOperands) assert_own_property: interface prototype object missing non-static operation expected property "build" missing +FAIL MLGraphBuilder interface: operation buildSync(MLNamedOperands) assert_own_property: interface prototype object missing non-static operation expected property "buildSync" missing +FAIL MLGraphBuilder interface: operation batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) assert_own_property: interface prototype object missing non-static operation expected property "batchNormalization" missing +PASS MLGraphBuilder interface: operation clamp(MLOperand, optional MLClampOptions) +PASS MLGraphBuilder interface: operation clamp(optional MLClampOptions) +FAIL MLGraphBuilder interface: operation concat(sequence<MLOperand>, long) assert_own_property: interface prototype object missing non-static operation expected property "concat" missing +PASS MLGraphBuilder interface: operation conv2d(MLOperand, MLOperand, optional MLConv2dOptions) +FAIL MLGraphBuilder interface: operation convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) assert_own_property: interface prototype object missing non-static operation expected property "convTranspose2d" missing +PASS MLGraphBuilder interface: operation add(MLOperand, MLOperand) +PASS MLGraphBuilder interface: operation sub(MLOperand, MLOperand) +PASS MLGraphBuilder interface: operation mul(MLOperand, MLOperand) +PASS MLGraphBuilder interface: operation div(MLOperand, MLOperand) +PASS MLGraphBuilder interface: operation max(MLOperand, MLOperand) +PASS MLGraphBuilder interface: operation min(MLOperand, MLOperand) +FAIL MLGraphBuilder interface: operation pow(MLOperand, MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "pow" missing +FAIL MLGraphBuilder interface: operation abs(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "abs" missing +FAIL MLGraphBuilder interface: operation ceil(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "ceil" missing +FAIL MLGraphBuilder interface: operation cos(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "cos" missing +FAIL MLGraphBuilder interface: operation exp(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "exp" missing +FAIL MLGraphBuilder interface: operation floor(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "floor" missing +FAIL MLGraphBuilder interface: operation log(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "log" missing +FAIL MLGraphBuilder interface: operation neg(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "neg" missing +FAIL MLGraphBuilder interface: operation sin(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "sin" missing +FAIL MLGraphBuilder interface: operation tan(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "tan" missing +FAIL MLGraphBuilder interface: operation elu(MLOperand, optional MLEluOptions) assert_own_property: interface prototype object missing non-static operation expected property "elu" missing +FAIL MLGraphBuilder interface: operation elu(optional MLEluOptions) assert_own_property: interface prototype object missing non-static operation expected property "elu" missing +PASS MLGraphBuilder interface: operation gemm(MLOperand, MLOperand, optional MLGemmOptions) +FAIL MLGraphBuilder interface: operation gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) assert_own_property: interface prototype object missing non-static operation expected property "gru" missing +FAIL MLGraphBuilder interface: operation gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) assert_own_property: interface prototype object missing non-static operation expected property "gruCell" missing +FAIL MLGraphBuilder interface: operation hardSigmoid(MLOperand, optional MLHardSigmoidOptions) assert_own_property: interface prototype object missing non-static operation expected property "hardSigmoid" missing +FAIL MLGraphBuilder interface: operation hardSigmoid(optional MLHardSigmoidOptions) assert_own_property: interface prototype object missing non-static operation expected property "hardSigmoid" missing +PASS MLGraphBuilder interface: operation hardSwish(MLOperand) +PASS MLGraphBuilder interface: operation hardSwish() +FAIL MLGraphBuilder interface: operation instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) assert_own_property: interface prototype object missing non-static operation expected property "instanceNormalization" missing +FAIL MLGraphBuilder interface: operation leakyRelu(MLOperand, optional MLLeakyReluOptions) assert_own_property: interface prototype object missing non-static operation expected property "leakyRelu" missing +FAIL MLGraphBuilder interface: operation leakyRelu(optional MLLeakyReluOptions) assert_own_property: interface prototype object missing non-static operation expected property "leakyRelu" missing +FAIL MLGraphBuilder interface: operation matmul(MLOperand, MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "matmul" missing +FAIL MLGraphBuilder interface: operation linear(MLOperand, optional MLLinearOptions) assert_own_property: interface prototype object missing non-static operation expected property "linear" missing +FAIL MLGraphBuilder interface: operation linear(optional MLLinearOptions) assert_own_property: interface prototype object missing non-static operation expected property "linear" missing +FAIL MLGraphBuilder interface: operation pad(MLOperand, MLOperand, optional MLPadOptions) assert_own_property: interface prototype object missing non-static operation expected property "pad" missing +PASS MLGraphBuilder interface: operation averagePool2d(MLOperand, optional MLPool2dOptions) +FAIL MLGraphBuilder interface: operation l2Pool2d(MLOperand, optional MLPool2dOptions) assert_own_property: interface prototype object missing non-static operation expected property "l2Pool2d" missing +PASS MLGraphBuilder interface: operation maxPool2d(MLOperand, optional MLPool2dOptions) +FAIL MLGraphBuilder interface: operation reduceL1(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceL1" missing +FAIL MLGraphBuilder interface: operation reduceL2(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceL2" missing +FAIL MLGraphBuilder interface: operation reduceLogSum(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceLogSum" missing +FAIL MLGraphBuilder interface: operation reduceLogSumExp(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceLogSumExp" missing +FAIL MLGraphBuilder interface: operation reduceMax(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceMax" missing +FAIL MLGraphBuilder interface: operation reduceMean(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceMean" missing +FAIL MLGraphBuilder interface: operation reduceMin(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceMin" missing +FAIL MLGraphBuilder interface: operation reduceProduct(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceProduct" missing +FAIL MLGraphBuilder interface: operation reduceSum(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceSum" missing +FAIL MLGraphBuilder interface: operation reduceSumSquare(MLOperand, optional MLReduceOptions) assert_own_property: interface prototype object missing non-static operation expected property "reduceSumSquare" missing +PASS MLGraphBuilder interface: operation relu(MLOperand) +PASS MLGraphBuilder interface: operation relu() +PASS MLGraphBuilder interface: operation resample2d(MLOperand, optional MLResample2dOptions) +PASS MLGraphBuilder interface: operation reshape(MLOperand, sequence<unsigned long?>) +PASS MLGraphBuilder interface: operation sigmoid(MLOperand) +PASS MLGraphBuilder interface: operation sigmoid() +FAIL MLGraphBuilder interface: operation slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) assert_own_property: interface prototype object missing non-static operation expected property "slice" missing +PASS MLGraphBuilder interface: operation softmax(MLOperand) +FAIL MLGraphBuilder interface: operation softplus(MLOperand, optional MLSoftplusOptions) assert_own_property: interface prototype object missing non-static operation expected property "softplus" missing +FAIL MLGraphBuilder interface: operation softplus(optional MLSoftplusOptions) assert_own_property: interface prototype object missing non-static operation expected property "softplus" missing +FAIL MLGraphBuilder interface: operation softsign(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "softsign" missing +FAIL MLGraphBuilder interface: operation softsign() assert_own_property: interface prototype object missing non-static operation expected property "softsign" missing +FAIL MLGraphBuilder interface: operation split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) assert_own_property: interface prototype object missing non-static operation expected property "split" missing +FAIL MLGraphBuilder interface: operation squeeze(MLOperand, optional MLSqueezeOptions) assert_own_property: interface prototype object missing non-static operation expected property "squeeze" missing +FAIL MLGraphBuilder interface: operation tanh(MLOperand) assert_own_property: interface prototype object missing non-static operation expected property "tanh" missing +FAIL MLGraphBuilder interface: operation tanh() assert_own_property: interface prototype object missing non-static operation expected property "tanh" missing +FAIL MLGraphBuilder interface: operation transpose(MLOperand, optional MLTransposeOptions) assert_own_property: interface prototype object missing non-static operation expected property "transpose" missing +PASS MLGraphBuilder must be primary interface of builder +PASS Stringification of builder +PASS MLGraphBuilder interface: builder must inherit property "input(DOMString, MLOperandDescriptor)" with the proper type +PASS MLGraphBuilder interface: calling input(DOMString, MLOperandDescriptor) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "constant(MLOperandDescriptor, MLBufferView)" with the proper type +PASS MLGraphBuilder interface: calling constant(MLOperandDescriptor, MLBufferView) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "constant(double, optional MLOperandType)" with the proper type +PASS MLGraphBuilder interface: calling constant(double, optional MLOperandType) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "build(MLNamedOperands)" with the proper type assert_inherits: property "build" not found in prototype chain +FAIL MLGraphBuilder interface: calling build(MLNamedOperands) on builder with too few arguments must throw TypeError assert_inherits: property "build" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "buildSync(MLNamedOperands)" with the proper type assert_inherits: property "buildSync" not found in prototype chain +FAIL MLGraphBuilder interface: calling buildSync(MLNamedOperands) on builder with too few arguments must throw TypeError assert_inherits: property "buildSync" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions)" with the proper type assert_inherits: property "batchNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: calling batchNormalization(MLOperand, MLOperand, MLOperand, optional MLBatchNormalizationOptions) on builder with too few arguments must throw TypeError assert_inherits: property "batchNormalization" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "clamp(MLOperand, optional MLClampOptions)" with the proper type +PASS MLGraphBuilder interface: calling clamp(MLOperand, optional MLClampOptions) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "clamp(optional MLClampOptions)" with the proper type +PASS MLGraphBuilder interface: calling clamp(optional MLClampOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "concat(sequence<MLOperand>, long)" with the proper type assert_inherits: property "concat" not found in prototype chain +FAIL MLGraphBuilder interface: calling concat(sequence<MLOperand>, long) on builder with too few arguments must throw TypeError assert_inherits: property "concat" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "conv2d(MLOperand, MLOperand, optional MLConv2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling conv2d(MLOperand, MLOperand, optional MLConv2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions)" with the proper type assert_inherits: property "convTranspose2d" not found in prototype chain +FAIL MLGraphBuilder interface: calling convTranspose2d(MLOperand, MLOperand, optional MLConvTranspose2dOptions) on builder with too few arguments must throw TypeError assert_inherits: property "convTranspose2d" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "add(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling add(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sub(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling sub(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "mul(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling mul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "div(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling div(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "max(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling max(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "min(MLOperand, MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling min(MLOperand, MLOperand) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "pow(MLOperand, MLOperand)" with the proper type assert_inherits: property "pow" not found in prototype chain +FAIL MLGraphBuilder interface: calling pow(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "pow" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "abs(MLOperand)" with the proper type assert_inherits: property "abs" not found in prototype chain +FAIL MLGraphBuilder interface: calling abs(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "abs" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "ceil(MLOperand)" with the proper type assert_inherits: property "ceil" not found in prototype chain +FAIL MLGraphBuilder interface: calling ceil(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "ceil" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "cos(MLOperand)" with the proper type assert_inherits: property "cos" not found in prototype chain +FAIL MLGraphBuilder interface: calling cos(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "cos" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "exp(MLOperand)" with the proper type assert_inherits: property "exp" not found in prototype chain +FAIL MLGraphBuilder interface: calling exp(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "exp" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "floor(MLOperand)" with the proper type assert_inherits: property "floor" not found in prototype chain +FAIL MLGraphBuilder interface: calling floor(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "floor" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "log(MLOperand)" with the proper type assert_inherits: property "log" not found in prototype chain +FAIL MLGraphBuilder interface: calling log(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "log" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "neg(MLOperand)" with the proper type assert_inherits: property "neg" not found in prototype chain +FAIL MLGraphBuilder interface: calling neg(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "neg" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "sin(MLOperand)" with the proper type assert_inherits: property "sin" not found in prototype chain +FAIL MLGraphBuilder interface: calling sin(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "sin" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tan(MLOperand)" with the proper type assert_inherits: property "tan" not found in prototype chain +FAIL MLGraphBuilder interface: calling tan(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "tan" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "elu(MLOperand, optional MLEluOptions)" with the proper type assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: calling elu(MLOperand, optional MLEluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "elu(optional MLEluOptions)" with the proper type assert_inherits: property "elu" not found in prototype chain +FAIL MLGraphBuilder interface: calling elu(optional MLEluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "elu" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "gemm(MLOperand, MLOperand, optional MLGemmOptions)" with the proper type +PASS MLGraphBuilder interface: calling gemm(MLOperand, MLOperand, optional MLGemmOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions)" with the proper type assert_inherits: property "gru" not found in prototype chain +FAIL MLGraphBuilder interface: calling gru(MLOperand, MLOperand, MLOperand, long, long, optional MLGruOptions) on builder with too few arguments must throw TypeError assert_inherits: property "gru" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions)" with the proper type assert_inherits: property "gruCell" not found in prototype chain +FAIL MLGraphBuilder interface: calling gruCell(MLOperand, MLOperand, MLOperand, MLOperand, long, optional MLGruCellOptions) on builder with too few arguments must throw TypeError assert_inherits: property "gruCell" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(MLOperand, optional MLHardSigmoidOptions)" with the proper type assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: calling hardSigmoid(MLOperand, optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "hardSigmoid(optional MLHardSigmoidOptions)" with the proper type assert_inherits: property "hardSigmoid" not found in prototype chain +FAIL MLGraphBuilder interface: calling hardSigmoid(optional MLHardSigmoidOptions) on builder with too few arguments must throw TypeError assert_inherits: property "hardSigmoid" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "hardSwish(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling hardSwish(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "hardSwish()" with the proper type +FAIL MLGraphBuilder interface: builder must inherit property "instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions)" with the proper type assert_inherits: property "instanceNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: calling instanceNormalization(MLOperand, optional MLInstanceNormalizationOptions) on builder with too few arguments must throw TypeError assert_inherits: property "instanceNormalization" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(MLOperand, optional MLLeakyReluOptions)" with the proper type assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: calling leakyRelu(MLOperand, optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "leakyRelu(optional MLLeakyReluOptions)" with the proper type assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: calling leakyRelu(optional MLLeakyReluOptions) on builder with too few arguments must throw TypeError assert_inherits: property "leakyRelu" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "matmul(MLOperand, MLOperand)" with the proper type assert_inherits: property "matmul" not found in prototype chain +FAIL MLGraphBuilder interface: calling matmul(MLOperand, MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "matmul" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "linear(MLOperand, optional MLLinearOptions)" with the proper type assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: calling linear(MLOperand, optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "linear(optional MLLinearOptions)" with the proper type assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: calling linear(optional MLLinearOptions) on builder with too few arguments must throw TypeError assert_inherits: property "linear" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "pad(MLOperand, MLOperand, optional MLPadOptions)" with the proper type assert_inherits: property "pad" not found in prototype chain +FAIL MLGraphBuilder interface: calling pad(MLOperand, MLOperand, optional MLPadOptions) on builder with too few arguments must throw TypeError assert_inherits: property "pad" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "averagePool2d(MLOperand, optional MLPool2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling averagePool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "l2Pool2d(MLOperand, optional MLPool2dOptions)" with the proper type assert_inherits: property "l2Pool2d" not found in prototype chain +FAIL MLGraphBuilder interface: calling l2Pool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError assert_inherits: property "l2Pool2d" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "maxPool2d(MLOperand, optional MLPool2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling maxPool2d(MLOperand, optional MLPool2dOptions) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "reduceL1(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceL1" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceL1(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceL1" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceL2(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceL2" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceL2(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceL2" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSum(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceLogSum" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceLogSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceLogSum" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceLogSumExp(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceLogSumExp" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceLogSumExp(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceLogSumExp" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMax(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMax" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMax(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMax" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMean(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMean" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMean(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMean" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceMin(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceMin" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceMin(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceMin" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceProduct(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceProduct" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceProduct(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceProduct" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceSum(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceSum" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceSum(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceSum" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "reduceSumSquare(MLOperand, optional MLReduceOptions)" with the proper type assert_inherits: property "reduceSumSquare" not found in prototype chain +FAIL MLGraphBuilder interface: calling reduceSumSquare(MLOperand, optional MLReduceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "reduceSumSquare" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "relu(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling relu(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "relu()" with the proper type +PASS MLGraphBuilder interface: builder must inherit property "resample2d(MLOperand, optional MLResample2dOptions)" with the proper type +PASS MLGraphBuilder interface: calling resample2d(MLOperand, optional MLResample2dOptions) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "reshape(MLOperand, sequence<unsigned long?>)" with the proper type +PASS MLGraphBuilder interface: calling reshape(MLOperand, sequence<unsigned long?>) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sigmoid(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling sigmoid(MLOperand) on builder with too few arguments must throw TypeError +PASS MLGraphBuilder interface: builder must inherit property "sigmoid()" with the proper type +FAIL MLGraphBuilder interface: builder must inherit property "slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions)" with the proper type assert_inherits: property "slice" not found in prototype chain +FAIL MLGraphBuilder interface: calling slice(MLOperand, sequence<long>, sequence<long>, optional MLSliceOptions) on builder with too few arguments must throw TypeError assert_inherits: property "slice" not found in prototype chain +PASS MLGraphBuilder interface: builder must inherit property "softmax(MLOperand)" with the proper type +PASS MLGraphBuilder interface: calling softmax(MLOperand) on builder with too few arguments must throw TypeError +FAIL MLGraphBuilder interface: builder must inherit property "softplus(MLOperand, optional MLSoftplusOptions)" with the proper type assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: calling softplus(MLOperand, optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softplus(optional MLSoftplusOptions)" with the proper type assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: calling softplus(optional MLSoftplusOptions) on builder with too few arguments must throw TypeError assert_inherits: property "softplus" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softsign(MLOperand)" with the proper type assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: calling softsign(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "softsign()" with the proper type assert_inherits: property "softsign" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions)" with the proper type assert_inherits: property "split" not found in prototype chain +FAIL MLGraphBuilder interface: calling split(MLOperand, (unsigned long or sequence<unsigned long>), optional MLSplitOptions) on builder with too few arguments must throw TypeError assert_inherits: property "split" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "squeeze(MLOperand, optional MLSqueezeOptions)" with the proper type assert_inherits: property "squeeze" not found in prototype chain +FAIL MLGraphBuilder interface: calling squeeze(MLOperand, optional MLSqueezeOptions) on builder with too few arguments must throw TypeError assert_inherits: property "squeeze" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tanh(MLOperand)" with the proper type assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: calling tanh(MLOperand) on builder with too few arguments must throw TypeError assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "tanh()" with the proper type assert_inherits: property "tanh" not found in prototype chain +FAIL MLGraphBuilder interface: builder must inherit property "transpose(MLOperand, optional MLTransposeOptions)" with the proper type assert_inherits: property "transpose" not found in prototype chain +FAIL MLGraphBuilder interface: calling transpose(MLOperand, optional MLTransposeOptions) on builder with too few arguments must throw TypeError assert_inherits: property "transpose" not found in prototype chain +PASS MLGraph interface: existence and properties of interface object +PASS MLGraph interface object length +PASS MLGraph interface object name +PASS MLGraph interface: existence and properties of interface prototype object +PASS MLGraph interface: existence and properties of interface prototype object's "constructor" property +PASS MLGraph interface: existence and properties of interface prototype object's @@unscopables property FAIL MLGraph must be primary interface of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" FAIL Stringification of graph assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: graph is not defined" FAIL MLCommandEncoder interface: existence and properties of interface object assert_own_property: self does not have own property "MLCommandEncoder" expected property "MLCommandEncoder" missing @@ -395,7 +395,7 @@ FAIL MLCommandEncoder interface: operation initializeGraph(MLGraph) assert_own_property: self does not have own property "MLCommandEncoder" expected property "MLCommandEncoder" missing FAIL MLCommandEncoder interface: operation dispatch(MLGraph, MLNamedGPUResources, MLNamedGPUResources) assert_own_property: self does not have own property "MLCommandEncoder" expected property "MLCommandEncoder" missing FAIL MLCommandEncoder interface: operation finish(optional GPUCommandBufferDescriptor) assert_own_property: self does not have own property "MLCommandEncoder" expected property "MLCommandEncoder" missing -FAIL WorkerNavigator interface: attribute ml assert_true: The prototype object must have a property "ml" expected true got false -FAIL WorkerNavigator interface: navigator must inherit property "ml" with the proper type assert_inherits: property "ml" not found in prototype chain +PASS WorkerNavigator interface: attribute ml +PASS WorkerNavigator interface: navigator must inherit property "ml" with the proper type Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/leaky_relu.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/leaky_relu.https.any.worker-expected.txt index 70f62cfa..904ec7a 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/leaky_relu.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/leaky_relu.https.any.worker-expected.txt
@@ -1,4 +1,35 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL leakyRelu float32 1D tensor default options / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 1D tensor negative options.alpha / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 2D tensor positive options.alpha / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 5D tensor options.alpha=0.0 / cpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 1D tensor default options / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 1D tensor negative options.alpha / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 2D tensor positive options.alpha / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 5D tensor options.alpha=0.0 / gpu / sync builder[operationName] is not a function +FAIL leakyRelu float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 1D tensor negative options.alpha / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 2D tensor positive options.alpha / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 5D tensor options.alpha=0.0 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 1D tensor negative options.alpha / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 2D tensor positive options.alpha / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL leakyRelu float32 5D tensor options.alpha=0.0 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/matmul.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/matmul.https.any.worker-expected.txt index 70f62cfa..19ca385 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/matmul.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/matmul.https.any.worker-expected.txt
@@ -1,4 +1,56 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 52 tests; 0 PASS, 52 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL matmul float32 1D and 1D tensors produces a scalar / cpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 2D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 4D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 2D and 1D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 2D and 2D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 3D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 3D (broadcast) tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 2D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 1D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 4D and 4D (broadcast) tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 4D and 3D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 5D and 5D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 5D and 2D tensors / cpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 1D tensors produces a scalar / gpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 2D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 4D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 2D and 1D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 2D and 2D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 3D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 3D (broadcast) tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 2D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 3D and 1D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 4D and 4D (broadcast) tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 4D and 3D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 5D and 5D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 5D and 2D tensors / gpu / sync builder[operationName] is not a function +FAIL matmul float32 1D and 1D tensors produces a scalar / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 1D and 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 1D and 4D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 2D and 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 2D and 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 3D (broadcast) tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 1D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 4D and 4D (broadcast) tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 4D and 3D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 5D and 5D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 5D and 2D tensors / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 1D and 1D tensors produces a scalar / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 1D and 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 1D and 4D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 2D and 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 2D and 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 3D (broadcast) tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 3D and 1D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 4D and 4D (broadcast) tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 4D and 3D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 5D and 5D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL matmul float32 5D and 2D tensors / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/pooling.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/pooling.https.any.worker-expected.txt index 70f62cfa..ad367289 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/pooling.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/pooling.https.any.worker-expected.txt
@@ -1,4 +1,140 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 136 tests; 0 PASS, 136 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL averagePool2d float32 4D tensor default options / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.windowDimensions / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.padding / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.strides / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.dilations / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=explicit / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.layout=nchw / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.layout=nhwc / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.roundingType=floor / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.roundingType=ceil / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.dilations with options.strides / cpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor default options / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.windowDimensions / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.padding / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.strides / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.dilations / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=explicit / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.layout=nchw / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.layout=nhwc / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.roundingType=floor / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.roundingType=ceil / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor options.dilations with options.strides / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor default options / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.windowDimensions / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.padding / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.strides / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.dilations / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=explicit / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.layout=nchw / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.layout=nhwc / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.roundingType=floor / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.roundingType=ceil / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.dilations with options.strides / cpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor default options / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.windowDimensions / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.padding / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.strides / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.dilations / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=explicit / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.layout=nchw / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.layout=nhwc / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.roundingType=floor / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.roundingType=ceil / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / gpu / sync builder.buildSync is not a function +FAIL maxPool2d float32 4D tensor options.dilations with options.strides / gpu / sync builder.buildSync is not a function +FAIL averagePool2d float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.windowDimensions / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.dilations / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=explicit / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.layout=nchw / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.layout=nhwc / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.roundingType=floor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.roundingType=ceil / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.dilations with options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.windowDimensions / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.dilations / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=explicit / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.layout=nchw / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.layout=nhwc / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.roundingType=floor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.roundingType=ceil / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL averagePool2d float32 4D tensor options.dilations with options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.windowDimensions / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.dilations / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=explicit / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.layout=nchw / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.layout=nhwc / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.roundingType=floor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.roundingType=ceil / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.dilations with options.strides / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.windowDimensions / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.dilations / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=explicit / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-upper ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.autoPad=same-lower ignores options.padding / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.layout=nchw / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.layout=nhwc / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.roundingType=floor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.roundingType=ceil / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=floor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.outputSizes ignores options.roundingType=ceil / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL maxPool2d float32 4D tensor options.dilations with options.strides / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/reduction.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/reduction.https.any.worker-expected.txt index 70f62cfa..fe04e49 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/reduction.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/reduction.https.any.worker-expected.txt
@@ -1,4 +1,368 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 364 tests; 0 PASS, 364 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL reduceMax float32 1D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMax float32 1D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 3D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all positive default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all negative default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all positive integers default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all negative integers default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all positive default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all negative default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all positive integers default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 1D tensor all negative integers default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 3D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 1D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceMin float32 1D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 3D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 1D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 1D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 3D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all positive default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all negative default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all positive integers default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all negative integers default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all positive default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all negative default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all positive integers default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 1D tensor all negative integers default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 3D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / sync builder[operationName] is not a function +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / sync builder[operationName] is not a function +FAIL reduceMax float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 3D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMax float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all positive default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all negative default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all positive integers default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all negative integers default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all positive default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all negative default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all positive integers default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 1D tensor all negative integers default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 3D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMean float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 3D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceMin float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 3D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceProduct float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all positive default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all negative default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all positive integers default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all negative integers default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=false / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=true / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all positive default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all negative default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all positive integers default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 1D tensor all negative integers default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 3D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=false / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL reduceSum float32 4D tensor negative options.axes with options.keepDimensions=true / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/relu.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/relu.https.any.worker-expected.txt index 70f62cfa..325bf11 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/relu.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/relu.https.any.worker-expected.txt
@@ -1,4 +1,23 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL relu float32 1D tensor / cpu / sync builder.buildSync is not a function +FAIL relu float32 2D tensor / cpu / sync builder.buildSync is not a function +FAIL relu float32 3D tensor / cpu / sync builder.buildSync is not a function +FAIL relu float32 4D tensor / cpu / sync builder.buildSync is not a function +FAIL relu float32 5D tensor / cpu / sync builder.buildSync is not a function +FAIL relu float32 1D tensor / gpu / sync builder.buildSync is not a function +FAIL relu float32 2D tensor / gpu / sync builder.buildSync is not a function +FAIL relu float32 3D tensor / gpu / sync builder.buildSync is not a function +FAIL relu float32 4D tensor / gpu / sync builder.buildSync is not a function +FAIL relu float32 5D tensor / gpu / sync builder.buildSync is not a function +FAIL relu float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL relu float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/reshape.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/reshape.https.any.worker-expected.txt index 70f62cfa..5fddef27 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/reshape.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/reshape.https.any.worker-expected.txt
@@ -1,4 +1,27 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL reshape float32 tensor to a new shape (reorder all dimensions) / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (reduce dimensions) / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (extend dimensions) / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (one dimension being the special value -1) / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to 1D tensor / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to 1D tensor newShape=[-1] / cpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (reorder all dimensions) / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (reduce dimensions) / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (extend dimensions) / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (one dimension being the special value -1) / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to 1D tensor / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to 1D tensor newShape=[-1] / gpu / sync builder.buildSync is not a function +FAIL reshape float32 tensor to a new shape (reorder all dimensions) / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (reduce dimensions) / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (extend dimensions) / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (one dimension being the special value -1) / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to 1D tensor newShape=[-1] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (reorder all dimensions) / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (reduce dimensions) / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (extend dimensions) / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to a new shape (one dimension being the special value -1) / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL reshape float32 tensor to 1D tensor newShape=[-1] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/sigmoid.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/sigmoid.https.any.worker-expected.txt index 70f62cfa..08ab76c3 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/sigmoid.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/sigmoid.https.any.worker-expected.txt
@@ -1,4 +1,23 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL sigmoid float32 1D tensor / cpu / sync builder.buildSync is not a function +FAIL sigmoid float32 2D tensor / cpu / sync builder.buildSync is not a function +FAIL sigmoid float32 3D tensor / cpu / sync builder.buildSync is not a function +FAIL sigmoid float32 4D tensor / cpu / sync builder.buildSync is not a function +FAIL sigmoid float32 5D tensor / cpu / sync builder.buildSync is not a function +FAIL sigmoid float32 1D tensor / gpu / sync builder.buildSync is not a function +FAIL sigmoid float32 2D tensor / gpu / sync builder.buildSync is not a function +FAIL sigmoid float32 3D tensor / gpu / sync builder.buildSync is not a function +FAIL sigmoid float32 4D tensor / gpu / sync builder.buildSync is not a function +FAIL sigmoid float32 5D tensor / gpu / sync builder.buildSync is not a function +FAIL sigmoid float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL sigmoid float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/slice.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/slice.https.any.worker-expected.txt index 70f62cfa..9a447ed 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/slice.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/slice.https.any.worker-expected.txt
@@ -1,4 +1,64 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +Found 60 tests; 0 PASS, 60 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL slice float32 1D tensor default axes options / cpu / sync builder[operationName] is not a function +FAIL slice float32 2D tensor default axes options / cpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor default axes options / cpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor default axes options / cpu / sync builder[operationName] is not a function +FAIL slice float32 5D tensor default axes options / cpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor negative starts / cpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor negative starts / cpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor sizes having special value of -1 / cpu / sync builder[operationName] is not a function +FAIL slice float32 5D tensor sizes having special value of -1 / cpu / sync builder[operationName] is not a function +FAIL slice float32 1D tensor options.axes=[0] / cpu / sync builder[operationName] is not a function +FAIL slice float32 2D tensor positive options.axes=[1] / cpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor positive options.axes=[1, 2] / cpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor positive options.axes=[0, 2, 3] / cpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor negative options.axes=[-2, -1] / cpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor negative options.axes=[-4, -2, -1] / cpu / sync builder[operationName] is not a function +FAIL slice float32 1D tensor default axes options / gpu / sync builder[operationName] is not a function +FAIL slice float32 2D tensor default axes options / gpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor default axes options / gpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor default axes options / gpu / sync builder[operationName] is not a function +FAIL slice float32 5D tensor default axes options / gpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor negative starts / gpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor negative starts / gpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor sizes having special value of -1 / gpu / sync builder[operationName] is not a function +FAIL slice float32 5D tensor sizes having special value of -1 / gpu / sync builder[operationName] is not a function +FAIL slice float32 1D tensor options.axes=[0] / gpu / sync builder[operationName] is not a function +FAIL slice float32 2D tensor positive options.axes=[1] / gpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor positive options.axes=[1, 2] / gpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor positive options.axes=[0, 2, 3] / gpu / sync builder[operationName] is not a function +FAIL slice float32 3D tensor negative options.axes=[-2, -1] / gpu / sync builder[operationName] is not a function +FAIL slice float32 4D tensor negative options.axes=[-4, -2, -1] / gpu / sync builder[operationName] is not a function +FAIL slice float32 1D tensor default axes options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 2D tensor default axes options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor default axes options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor default axes options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 5D tensor default axes options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor negative starts / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor negative starts / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor sizes having special value of -1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 5D tensor sizes having special value of -1 / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 1D tensor options.axes=[0] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 2D tensor positive options.axes=[1] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor positive options.axes=[1, 2] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor positive options.axes=[0, 2, 3] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor negative options.axes=[-2, -1] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor negative options.axes=[-4, -2, -1] / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 1D tensor default axes options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 2D tensor default axes options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor default axes options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor default axes options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 5D tensor default axes options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor negative starts / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor negative starts / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor sizes having special value of -1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 5D tensor sizes having special value of -1 / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 1D tensor options.axes=[0] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 2D tensor positive options.axes=[1] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor positive options.axes=[1, 2] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor positive options.axes=[0, 2, 3] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 3D tensor negative options.axes=[-2, -1] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL slice float32 4D tensor negative options.axes=[-4, -2, -1] / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/softmax.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/softmax.https.any.worker-expected.txt index 70f62cfa..57420da 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/softmax.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/softmax.https.any.worker-expected.txt
@@ -1,4 +1,7 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL softmax float32 2D tensor / cpu / sync builder.buildSync is not a function +FAIL softmax float32 2D tensor / gpu / sync builder.buildSync is not a function +FAIL softmax float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" +FAIL softmax float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder.build is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/split.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/split.https.any.worker-expected.txt index 70f62cfa..be2f64d 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/split.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/split.https.any.worker-expected.txt
@@ -1,4 +1,43 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL split float32 1D tensor number splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 2D tensor number splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 3D tensor number splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor number splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor array splits default options / cpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits options.axis / cpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits negative options.axis / cpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor array splits options.axis / cpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor array splits negative options.axis / cpu / sync builder[operationName] is not a function +FAIL split float32 1D tensor number splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 2D tensor number splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 3D tensor number splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor number splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor array splits default options / gpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits options.axis / gpu / sync builder[operationName] is not a function +FAIL split float32 4D tensor number splits negative options.axis / gpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor array splits options.axis / gpu / sync builder[operationName] is not a function +FAIL split float32 5D tensor array splits negative options.axis / gpu / sync builder[operationName] is not a function +FAIL split float32 1D tensor number splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 2D tensor number splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 3D tensor number splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor number splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor array splits default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits options.axis / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits negative options.axis / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor array splits options.axis / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor array splits negative options.axis / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 1D tensor number splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 2D tensor number splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 3D tensor number splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor number splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor array splits default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits options.axis / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 4D tensor number splits negative options.axis / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor array splits options.axis / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL split float32 5D tensor array splits negative options.axis / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/squeeze.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/squeeze.https.any.worker-expected.txt index 70f62cfa..34434ae6 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/squeeze.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/squeeze.https.any.worker-expected.txt
@@ -1,4 +1,47 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL squeeze float32 2D tensor by eliminating one dimension default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating one dimension default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating two dimensions default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating two dimensions default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating all dimensions default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating four dimensions default options / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 2D tensor by eliminating one dimension options.axes / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating two dimensions options.axes / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating two dimensions options.axes / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating two dimensions options.axes / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating four dimensions options.axes / cpu / sync builder[operationName] is not a function +FAIL squeeze float32 2D tensor by eliminating one dimension default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating one dimension default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating two dimensions default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating two dimensions default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating all dimensions default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating four dimensions default options / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 2D tensor by eliminating one dimension options.axes / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 3D tensor by eliminating two dimensions options.axes / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 4D tensor by eliminating two dimensions options.axes / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating two dimensions options.axes / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 5D tensor by eliminating four dimensions options.axes / gpu / sync builder[operationName] is not a function +FAIL squeeze float32 2D tensor by eliminating one dimension default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating one dimension default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating two dimensions default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating two dimensions default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating all dimensions default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating four dimensions default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 2D tensor by eliminating one dimension options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating two dimensions options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating two dimensions options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating two dimensions options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating four dimensions options.axes / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 2D tensor by eliminating one dimension default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating one dimension default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating two dimensions default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating two dimensions default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating all dimensions default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating four dimensions default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 2D tensor by eliminating one dimension options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 3D tensor by eliminating two dimensions options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 4D tensor by eliminating two dimensions options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating two dimensions options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL squeeze float32 5D tensor by eliminating four dimensions options.axes / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/tanh.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/tanh.https.any.worker-expected.txt index 70f62cfa..226e09d 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/tanh.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/tanh.https.any.worker-expected.txt
@@ -1,4 +1,23 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL tanh float32 1D tensor / cpu / sync builder[operationName] is not a function +FAIL tanh float32 2D tensor / cpu / sync builder[operationName] is not a function +FAIL tanh float32 3D tensor / cpu / sync builder[operationName] is not a function +FAIL tanh float32 4D tensor / cpu / sync builder[operationName] is not a function +FAIL tanh float32 5D tensor / cpu / sync builder[operationName] is not a function +FAIL tanh float32 1D tensor / gpu / sync builder[operationName] is not a function +FAIL tanh float32 2D tensor / gpu / sync builder[operationName] is not a function +FAIL tanh float32 3D tensor / gpu / sync builder[operationName] is not a function +FAIL tanh float32 4D tensor / gpu / sync builder[operationName] is not a function +FAIL tanh float32 5D tensor / gpu / sync builder[operationName] is not a function +FAIL tanh float32 1D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 2D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 3D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 4D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 5D tensor / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 1D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 2D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 3D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 4D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL tanh float32 5D tensor / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webnn/transpose.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/webnn/transpose.https.any.worker-expected.txt index 70f62cfa..f26cfacb 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/transpose.https.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webnn/transpose.https.any.worker-expected.txt
@@ -1,4 +1,43 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Cannot read properties of undefined (reading 'createContextSync') +FAIL transpose float32 1D tensor default options / cpu / sync builder[operationName] is not a function +FAIL transpose float32 2D tensor default options / cpu / sync builder[operationName] is not a function +FAIL transpose float32 3D tensor default options / cpu / sync builder[operationName] is not a function +FAIL transpose float32 4D tensor default options / cpu / sync builder[operationName] is not a function +FAIL transpose float32 5D tensor default options / cpu / sync builder[operationName] is not a function +FAIL transpose float32 1D tensor options.permutation / cpu / sync builder[operationName] is not a function +FAIL transpose float32 2D tensor options.permutation / cpu / sync builder[operationName] is not a function +FAIL transpose float32 3D tensor options.permutation / cpu / sync builder[operationName] is not a function +FAIL transpose float32 4D tensor options.permutation / cpu / sync builder[operationName] is not a function +FAIL transpose float32 5D tensor options.permutation / cpu / sync builder[operationName] is not a function +FAIL transpose float32 1D tensor default options / gpu / sync builder[operationName] is not a function +FAIL transpose float32 2D tensor default options / gpu / sync builder[operationName] is not a function +FAIL transpose float32 3D tensor default options / gpu / sync builder[operationName] is not a function +FAIL transpose float32 4D tensor default options / gpu / sync builder[operationName] is not a function +FAIL transpose float32 5D tensor default options / gpu / sync builder[operationName] is not a function +FAIL transpose float32 1D tensor options.permutation / gpu / sync builder[operationName] is not a function +FAIL transpose float32 2D tensor options.permutation / gpu / sync builder[operationName] is not a function +FAIL transpose float32 3D tensor options.permutation / gpu / sync builder[operationName] is not a function +FAIL transpose float32 4D tensor options.permutation / gpu / sync builder[operationName] is not a function +FAIL transpose float32 5D tensor options.permutation / gpu / sync builder[operationName] is not a function +FAIL transpose float32 1D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 2D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 3D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 4D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 5D tensor default options / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 1D tensor options.permutation / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 2D tensor options.permutation / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 3D tensor options.permutation / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 4D tensor options.permutation / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 5D tensor options.permutation / cpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 1D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 2D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 3D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 4D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 5D tensor default options / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 1D tensor options.permutation / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 2D tensor options.permutation / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 3D tensor options.permutation / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 4D tensor options.permutation / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" +FAIL transpose float32 5D tensor options.permutation / gpu / async promise_test: Unhandled rejection with value: object "TypeError: builder[operationName] is not a function" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/codec-specific-metadata.https.html b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/codec-specific-metadata.https.html new file mode 100644 index 0000000..77eec3c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/codec-specific-metadata.https.html
@@ -0,0 +1,69 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=/resources/testdriver.js></script> +<script src=/resources/testdriver-vendor.js></script> +<script src='../mediacapture-streams/permission-helper.js'></script> +<script src="../webrtc/RTCPeerConnection-helper.js"></script> +<script src="../service-workers/service-worker/resources/test-helpers.sub.js"></script> +<script> +"use strict"; + +async function setupLoopbackWithCodecAndGetReader(t, codec) { + const caller = new RTCPeerConnection({encodedInsertableStreams:true}); + t.add_cleanup(() => caller.close()); + const callee = new RTCPeerConnection(); + t.add_cleanup(() => callee.close()); + + await setMediaPermission("granted", ["camera"]); + const stream = await navigator.mediaDevices.getUserMedia({video:true}); + const videoTrack = stream.getVideoTracks()[0]; + t.add_cleanup(() => videoTrack.stop()); + + const transceiver = caller.addTransceiver(videoTrack); + const codecCapability = + RTCRtpSender.getCapabilities('video').codecs.find(capability => { + return capability.mimeType.includes(codec); + }); + assert_not_equals(codecCapability, undefined); + transceiver.setCodecPreferences([codecCapability]); + + const senderStreams = transceiver.sender.createEncodedStreams(); + exchangeIceCandidates(caller, callee); + await exchangeOfferAnswer(caller, callee); + return senderStreams.readable.getReader(); +} + +promise_test(async t => { + const senderReader = await setupLoopbackWithCodecAndGetReader(t, 'VP8'); + const result = await senderReader.read(); + const metadata = result.value.getMetadata(); + // RTCEncodedVideoFrameAdditionalMetadata-only fields. + assert_true(Array.isArray(metadata.decodeTargetIndications), + 'decodeTargetIndication is an array'); + assert_equals(typeof metadata.isLastFrameInPicture, 'boolean', + 'isLastFrameInPicture is a boolean'); + assert_equals(typeof metadata.simulcastIdx, 'number', + 'simulcastIdx is a number'); + assert_equals(metadata.codec, 'vp8'); + assert_equals(typeof metadata.codecSpecifics, 'object', + 'codecSpecifics is an object'); + // VP8-only + assert_equals(typeof metadata.codecSpecifics.nonReference, 'boolean', + 'codecSpecifics.nonReference is a boolean'); + assert_equals(typeof metadata.codecSpecifics.pictureId, 'number', + 'codecSpecifics.pictureId is a number'); + assert_equals(typeof metadata.codecSpecifics.tl0PicIdx, 'number', + 'codecSpecifics.tl0PicIdx is a number'); + assert_equals(typeof metadata.codecSpecifics.temporalIdx, 'number', + 'codecSpecifics.temporalIdx is a number'); + assert_equals(typeof metadata.codecSpecifics.layerSync, 'boolean', + 'codecSpecifics.layerSync is a boolean'); + assert_equals(typeof metadata.codecSpecifics.keyIdx, 'number', + 'codecSpecifics.keyIdx is a number'); + assert_equals(typeof metadata.codecSpecifics.partitionId, 'number', + 'codecSpecifics.partitionId is a number'); + assert_equals(typeof metadata.codecSpecifics.beginningOfPartition, 'boolean', + 'codecSpecifics.beginningOfPartition is a boolean'); +}, "[VP8] getMetadata() supports the expected codec specifics"); +</script>
diff --git a/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints-on-reload.js b/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints-on-reload.js index 38dda6e..cb518dea 100644 --- a/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints-on-reload.js +++ b/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints-on-reload.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult(`Verify that breakpoints are moved appropriately in case of page reload.\n`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner'); await TestRunner.loadTestModule('bindings_test_runner');
diff --git a/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints.js b/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints.js index f848c62..380e62e 100644 --- a/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints.js +++ b/third_party/blink/web_tests/http/tests/devtools/persistence/persistence-move-breakpoints.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult(`Verify that breakpoints are moved appropriately\n`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner'); await TestRunner.loadTestModule('bindings_test_runner');
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoints-sidebar-pane.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoints-sidebar-pane.js index 0f1c4e5..aaa05e8f 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoints-sidebar-pane.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoints-sidebar-pane.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult(`Tests that breakpoints appear correct in the sidebar pane.\n`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner'); await TestRunner.showPanel('sources');
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/debugger-reload-breakpoints-with-source-maps.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/debugger-reload-breakpoints-with-source-maps.js index 6ce3ad7..65d2795 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/debugger-reload-breakpoints-with-source-maps.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/debugger-reload-breakpoints-with-source-maps.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult( `Tests "reload" from within inspector window while on pause.`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner');
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js index 7ec84553..48ee836 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult(`Tests disabling breakpoints.\n`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner'); await TestRunner.loadLegacyModule('console'); await TestRunner.loadTestModule('console_test_runner');
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/set-breakpoint-while-blocking-main-thread.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/set-breakpoint-while-blocking-main-thread.js index 690f7f95..481581e4 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/set-breakpoint-while-blocking-main-thread.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/set-breakpoint-while-blocking-main-thread.js
@@ -3,6 +3,9 @@ // found in the LICENSE file. (async function() { + // This test is testing the old breakpoint sidebar pane. Make sure to + // turn off the new breakpoint pane experiment. + Root.Runtime.experiments.setEnabled('breakpointView', false); TestRunner.addResult(`Tests setting breakpoint when main thread blocks.\n`); await TestRunner.loadLegacyModule('sources'); await TestRunner.loadTestModule('sources_test_runner'); await TestRunner.showPanel('sources');
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt deleted file mode 100644 index a193d781..0000000 --- a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -PASS @keyframes works with @property -PASS @keyframes picks up the latest @property in the document -PASS Ongoing animation picks up redeclared custom property -PASS Ongoing animation matches new keyframes against the current registration -PASS Ongoing animation picks up redeclared intial value -PASS Ongoing animation picks up redeclared inherits flag -PASS Ongoing animation picks up redeclared meaning of 'unset' -PASS Transitioning from initial value -PASS Transitioning from specified value -PASS Transition triggered by initial value change -PASS No transition when changing types -FAIL No transition when removing @property rule assert_equals: expected "100px" but got " 100px" -FAIL Unregistered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -FAIL Registered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt deleted file mode 100644 index 21f77b09..0000000 --- a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -FAIL Properties declared with @property reify correctly assert_equals: expected "100px" but got " 100px" -PASS Re-declaring a property with a different type affects reification -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt deleted file mode 100644 index d3d3681..0000000 --- a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -FAIL var() references work with registered properties assert_equals: expected "20px" but got " 20px" -PASS References to registered var()-properties work in registered lists -PASS References to mixed registered and unregistered var()-properties work in registered lists -PASS Registered lists may be concatenated -PASS Font-relative units are absolutized when substituting -PASS Calc expressions are resolved when substituting -PASS Lists with relative units are absolutized when substituting -FAIL Values are absolutized when substituting into properties with universal syntax assert_equals: expected "100px" but got " 100px" -PASS Valid fallback does not invalidate var()-reference [<length>, 10px] -PASS Valid fallback does not invalidate var()-reference [<length> | <color>, red] -PASS Valid fallback does not invalidate var()-reference [<length> | none, none] -PASS Invalid fallback invalidates var()-reference [<length>, red] -PASS Invalid fallback invalidates var()-reference [<length> | none, nolength] -PASS Invalid fallback invalidates var()-reference [<length>, var(--novar)] -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt deleted file mode 100644 index a193d781..0000000 --- a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -PASS @keyframes works with @property -PASS @keyframes picks up the latest @property in the document -PASS Ongoing animation picks up redeclared custom property -PASS Ongoing animation matches new keyframes against the current registration -PASS Ongoing animation picks up redeclared intial value -PASS Ongoing animation picks up redeclared inherits flag -PASS Ongoing animation picks up redeclared meaning of 'unset' -PASS Transitioning from initial value -PASS Transitioning from specified value -PASS Transition triggered by initial value change -PASS No transition when changing types -FAIL No transition when removing @property rule assert_equals: expected "100px" but got " 100px" -FAIL Unregistered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -FAIL Registered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt deleted file mode 100644 index d3d3681..0000000 --- a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -FAIL var() references work with registered properties assert_equals: expected "20px" but got " 20px" -PASS References to registered var()-properties work in registered lists -PASS References to mixed registered and unregistered var()-properties work in registered lists -PASS Registered lists may be concatenated -PASS Font-relative units are absolutized when substituting -PASS Calc expressions are resolved when substituting -PASS Lists with relative units are absolutized when substituting -FAIL Values are absolutized when substituting into properties with universal syntax assert_equals: expected "100px" but got " 100px" -PASS Valid fallback does not invalidate var()-reference [<length>, 10px] -PASS Valid fallback does not invalidate var()-reference [<length> | <color>, red] -PASS Valid fallback does not invalidate var()-reference [<length> | none, none] -PASS Invalid fallback invalidates var()-reference [<length>, red] -PASS Invalid fallback invalidates var()-reference [<length> | none, nolength] -PASS Invalid fallback invalidates var()-reference [<length>, var(--novar)] -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt b/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt deleted file mode 100644 index a193d781..0000000 --- a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-animation-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -PASS @keyframes works with @property -PASS @keyframes picks up the latest @property in the document -PASS Ongoing animation picks up redeclared custom property -PASS Ongoing animation matches new keyframes against the current registration -PASS Ongoing animation picks up redeclared intial value -PASS Ongoing animation picks up redeclared inherits flag -PASS Ongoing animation picks up redeclared meaning of 'unset' -PASS Transitioning from initial value -PASS Transitioning from specified value -PASS Transition triggered by initial value change -PASS No transition when changing types -FAIL No transition when removing @property rule assert_equals: expected "100px" but got " 100px" -FAIL Unregistered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -FAIL Registered properties referencing animated properties update correctly. assert_equals: expected "150px" but got " 150px" -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt b/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt deleted file mode 100644 index 21f77b09..0000000 --- a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/at-property-typedom-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -FAIL Properties declared with @property reify correctly assert_equals: expected "100px" but got " 100px" -PASS Re-declaring a property with a different type affects reification -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt b/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt deleted file mode 100644 index d3d3681..0000000 --- a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-properties-values-api/var-reference-registered-properties-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This is a testharness.js-based test. -FAIL var() references work with registered properties assert_equals: expected "20px" but got " 20px" -PASS References to registered var()-properties work in registered lists -PASS References to mixed registered and unregistered var()-properties work in registered lists -PASS Registered lists may be concatenated -PASS Font-relative units are absolutized when substituting -PASS Calc expressions are resolved when substituting -PASS Lists with relative units are absolutized when substituting -FAIL Values are absolutized when substituting into properties with universal syntax assert_equals: expected "100px" but got " 100px" -PASS Valid fallback does not invalidate var()-reference [<length>, 10px] -PASS Valid fallback does not invalidate var()-reference [<length> | <color>, red] -PASS Valid fallback does not invalidate var()-reference [<length> | none, none] -PASS Invalid fallback invalidates var()-reference [<length>, red] -PASS Invalid fallback invalidates var()-reference [<length> | none, nolength] -PASS Invalid fallback invalidates var()-reference [<length>, var(--novar)] -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-end-computed-expected.txt b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-end-computed-expected.txt index 6e97800..75dec90a 100644 --- a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-end-computed-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-end-computed-expected.txt
@@ -3,15 +3,5 @@ FAIL Property animation-delay-start value '-500ms' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false FAIL Property animation-delay-start value 'calc(2 * 3s)' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false FAIL Property animation-delay-start value '20s, 10s' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 0%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'COVER 0%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 100%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 120%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover -42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'contain 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit calc(41% + 1%)' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit 1%, cover 2%, contain 100%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt index b2f0197..94b49acf 100644 --- a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt
@@ -6,22 +6,5 @@ FAIL Property animation-delay value '1s 2s, 3s' assert_true: '1s 2s, 3s' is a supported value for animation-delay. expected true got false FAIL Property animation-delay value '1s, 2s 3s' assert_true: '1s, 2s 3s' is a supported value for animation-delay. expected true got false PASS Property animation-delay value '1s, 2s, 3s' -FAIL Property animation-delay value 'cover' assert_true: 'cover' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'contain' assert_true: 'contain' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter' assert_true: 'enter' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'exit' assert_true: 'exit' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter, exit' assert_true: 'enter, exit' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter 0% enter 100%' assert_true: 'enter 0% enter 100%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'exit 0% exit 100%' assert_true: 'exit 0% exit 100%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'cover 0% cover 100%' assert_true: 'cover 0% cover 100%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'contain 0% contain 100%' assert_true: 'contain 0% contain 100%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'cover 50%' assert_true: 'cover 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'contain 50%' assert_true: 'contain 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter 50%' assert_true: 'enter 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'exit 50%' assert_true: 'exit 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter 50% 0s' assert_true: 'enter 50% 0s' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value '0s enter 50%' assert_true: '0s enter 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'enter 50% exit 50%' assert_true: 'enter 50% exit 50%' is a supported value for animation-delay. expected true got false -FAIL Property animation-delay value 'cover 50% enter 50%, contain 50% exit 50%' assert_true: 'cover 50% enter 50%, contain 50% exit 50%' is a supported value for animation-delay. expected true got false Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-start-computed-expected.txt b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-start-computed-expected.txt index 6e97800..75dec90a 100644 --- a/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-start-computed-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/external/wpt/css/css-animations/parsing/animation-delay-start-computed-expected.txt
@@ -3,15 +3,5 @@ FAIL Property animation-delay-start value '-500ms' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false FAIL Property animation-delay-start value 'calc(2 * 3s)' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false FAIL Property animation-delay-start value '20s, 10s' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 0%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'COVER 0%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 100%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 120%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'cover -42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'contain 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit 42%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit calc(41% + 1%)' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false -FAIL Property animation-delay-start value 'exit 1%, cover 2%, contain 100%' assert_true: animation-delay-start doesn't seem to be supported in the computed style expected true got false Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt index 71f45e6fe..e01ae2b 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -882,6 +882,46 @@ [Worker] method constructor [Worker] method query [Worker] method request +[Worker] interface ML +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] method createContext +[Worker] method createContextSync +[Worker] interface MLContext +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] interface MLGraph +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] interface MLGraphBuilder +[Worker] attribute @@toStringTag +[Worker] method add +[Worker] method averagePool2d +[Worker] method buildAsync +[Worker] method clamp +[Worker] method constant +[Worker] method constructor +[Worker] method conv2d +[Worker] method div +[Worker] method gemm +[Worker] method hardSwish +[Worker] method input +[Worker] method max +[Worker] method maxPool2d +[Worker] method min +[Worker] method mul +[Worker] method relu +[Worker] method resample2d +[Worker] method reshape +[Worker] method sigmoid +[Worker] method softmax +[Worker] method sub +[Worker] interface MLOperand +[Worker] attribute @@toStringTag +[Worker] method constructor +[Worker] interface MLOperator +[Worker] attribute @@toStringTag +[Worker] method constructor [Worker] interface MediaCapabilities [Worker] attribute @@toStringTag [Worker] method constructor @@ -3382,6 +3422,7 @@ [Worker] getter languages [Worker] getter locks [Worker] getter mediaCapabilities +[Worker] getter ml [Worker] getter onLine [Worker] getter permissions [Worker] getter platform
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/ref/resize_observer-ref.html b/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/ref/resize_observer-ref.html index a4803a2f..0ac6f7a0 100644 --- a/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/ref/resize_observer-ref.html +++ b/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/ref/resize_observer-ref.html
@@ -16,63 +16,76 @@ } </style> <body> + <div id="dpr"></div> <div class="outer"></div> <script type="module"> + import { takeScreenshotDelayed } from '../../../../common/util/wpt_reftest_wait.js'; import createPatternDataURL from '../create-pattern-data-url.js'; - const {patternSize, dataURL} = createPatternDataURL(); + (async () => { + const {patternSize, dataURL} = createPatternDataURL(); - /** - * Set the pattern's size on this element so that it draws where - * 1 pixel in the pattern maps to 1 devicePixel. - */ - function setPattern(elem) { - const oneDevicePixel = 1 / devicePixelRatio; - const patternPixels = oneDevicePixel * patternSize; - elem.style.backgroundImage = `url("${dataURL}")`; - elem.style.backgroundSize = `${patternPixels}px ${patternPixels}px`; - } + document.querySelector('#dpr').textContent = `dpr: ${devicePixelRatio}`; - /* - This ref creates elements like this - <body> - <div class="outer"> - <div></div> - <div></div> - <div></div> - ... - </div> - </body> - Where the outer div is a flexbox centering the child elements. - Each of the child elements is set to a different width in percent. - The devicePixelContentBox size of each child element is observed - with a ResizeObserver and when changed, a pattern is applied to - the element and the pattern's size set so each pixel in the pattern - will be one device pixel. - A similar process happens in the test HTML using canvases - and patterns generated using putImageData. - The test and this reference page should then match. - */ - - const outerElem = document.querySelector('.outer'); - - /** - * Set the pattern's size on this element so that it draws where - * 1 pixel in the pattern maps to 1 devicePixel. - */ - function setPatterns(entries) { - for (const entry of entries) { - setPattern(entry.target) + /** + * Set the pattern's size on this element so that it draws where + * 1 pixel in the pattern maps to 1 devicePixel. + */ + function setPattern(elem) { + const oneDevicePixel = 1 / devicePixelRatio; + const patternPixels = oneDevicePixel * patternSize; + elem.style.backgroundImage = `url("${dataURL}")`; + elem.style.backgroundSize = `${patternPixels}px ${patternPixels}px`; } - } - const observer = new ResizeObserver(setPatterns); - for (let percentSize = 7; percentSize < 100; percentSize += 13) { - const innerElem = document.createElement('div'); - innerElem.style.width = `${percentSize}%`; - observer.observe(innerElem, {box:"device-pixel-content-box"}); - outerElem.appendChild(innerElem); - } + /* + This ref creates elements like this + <body> + <div class="outer"> + <div></div> + <div></div> + <div></div> + ... + </div> + </body> + Where the outer div is a flexbox centering the child elements. + Each of the child elements is set to a different width in percent. + The devicePixelContentBox size of each child element is observed + with a ResizeObserver and when changed, a pattern is applied to + the element and the pattern's size set so each pixel in the pattern + will be one device pixel. + A similar process happens in the test HTML using canvases + and patterns generated using putImageData. + The test and this reference page should then match. + */ + + const outerElem = document.querySelector('.outer'); + + let resolve; + const promise = new Promise(_resolve => (resolve = _resolve)); + + /** + * Set the pattern's size on this element so that it draws where + * 1 pixel in the pattern maps to 1 devicePixel. + */ + function setPatterns(entries) { + for (const entry of entries) { + setPattern(entry.target) + } + resolve(); + } + + const observer = new ResizeObserver(setPatterns); + for (let percentSize = 7; percentSize < 100; percentSize += 13) { + const innerElem = document.createElement('div'); + innerElem.style.width = `${percentSize}%`; + observer.observe(innerElem, {box:"device-pixel-content-box"}); + outerElem.appendChild(innerElem); + } + + await promise; + takeScreenshotDelayed(50); + })(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/resize_observer.https.html b/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/resize_observer.https.html index 9004a45..bc62ecd 100644 --- a/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/resize_observer.https.html +++ b/third_party/blink/web_tests/wpt_internal/webgpu/web_platform/reftests/resize_observer.https.html
@@ -18,6 +18,7 @@ } </style> <body> + <div id="dpr"></div> <div class="outer"></div> <script type="module" src="resize_observer.html.js"></script> </body>
diff --git a/third_party/webgpu-cts/ts_sources.txt b/third_party/webgpu-cts/ts_sources.txt index 17fc7b89..6f49178 100644 --- a/third_party/webgpu-cts/ts_sources.txt +++ b/third_party/webgpu-cts/ts_sources.txt
@@ -45,6 +45,7 @@ src/common/tools/gen_cache.ts src/common/tools/gen_listings.ts src/common/tools/gen_wpt_cts_html.ts +src/common/tools/image_utils.ts src/common/tools/presubmit.ts src/common/tools/run_wpt_ref_tests.ts src/common/tools/version.ts
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4ef5adee..ec0f869 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -36647,6 +36647,29 @@ <int value="4" label="Regular User"/> </enum> +<enum name="FastCheckoutCacheStateForIsTriggerFormSupported"> + <summary> + Possible different cache states that `FastCheckoutCapabilitiesFetcherImpl` + can encounter when `IsTriggerFormSupported` is called. + </summary> + <int value="0" label="Availability request has not completed yet."/> + <int value="1" label="Entry available and form not supported."/> + <int value="2" label="Entry available and form supported."/> + <int value="3" label="Entry not available."/> +</enum> + +<enum name="FastCheckoutCapabilitiesParsingResult"> + <summary> + Possible states of parsing the response body when a fetch completes in + `FastCheckoutCapabilitiesFetcherImpl`. + </summary> + <int value="0" label="Failure: The response body was null."/> + <int value="1" + label="Failure: The response body could not be parsed as + `FastCheckoutFunnels` proto message."/> + <int value="2" label="Success: Parsing was successful."/> +</enum> + <enum name="FastCheckoutRunOutcome"> <summary>Defines possible outcomes of a Fast Checkout run.</summary> <int value="0" @@ -51668,7 +51691,7 @@ <int value="99" label="CONDITIONAL_TAB_STRIP_INFOBAR_ANDROID"/> <int value="100" label="LITE_MODE_HTTPS_IMAGE_COMPRESSION_INFOBAR_ANDROID"/> <int value="101" label="SYSTEM_INFOBAR_DELEGATE_MAC (Obsolete)"/> - <int value="102" label="EXPERIMENTAL_INFOBAR_DELEGATE_LACROS"/> + <int value="102" label="EXPERIMENTAL_INFOBAR_DELEGATE_LACROS (Obsolete)"/> <int value="103" label="ROSETTA_REQUIRED_INFOBAR_DELEGATE (Obsolete)"/> <int value="104" label="WEBID_PERMISSION_INFOBAR_DELEGATE (Obsolete)"/> <int value="105" label="AUTOFILL_OFFER_NOTIFICATION_INFOBAR_DELEGATE"/> @@ -59809,6 +59832,7 @@ <int value="-686788480" label="OsSettingsAppNotificationsPage:enabled"/> <int value="-686761381" label="UseHDRTransferFunction:enabled"/> <int value="-686617279" label="WebAppEnableLaunchHandler:enabled"/> + <int value="-685107150" label="FilesConflictDialog:enabled"/> <int value="-684900739" label="disable-merge-key-char-events"/> <int value="-684503292" label="OmniboxTabSwitchSuggestionsDedicatedRow:enabled"/> @@ -59982,6 +60006,7 @@ label="history-clusters-should-show-all-clusters-on-prominent-ui-surfaces"/> <int value="-588163454" label="AccessibilitySelectToSpeakHoverTextImprovements:enabled"/> + <int value="-587318376" label="FilesConflictDialog:disabled"/> <int value="-585508682" label="DownloadRange:enabled"/> <int value="-584866456" label="LacrosProfileMigrationForceOff:disabled"/> <int value="-583842972" @@ -108764,6 +108789,11 @@ <int value="1" label="Supports DMS"/> </enum> +<enum name="WiFiApAlternateEDCASupport"> + <int value="0" label="Does not support alternate EDCA"/> + <int value="1" label="Supports alternate EDCA"/> +</enum> + <enum name="WiFiApChannelSwitch"> <int value="0" label="Unknown frequency range"/> <int value="1" label="2.4GHz -> 2.4GHz"/> @@ -108778,6 +108808,13 @@ <int value="2" label="AdHoc"/> </enum> +<enum name="WiFiApSCSupport"> + <int value="0" label="Does not support stream classification"/> + <int value="1" label="Supports only SCS"/> + <int value="2" label="Supports only MSCS"/> + <int value="3" label="Supports both SCS and MSCS"/> +</enum> + <enum name="WiFiBSSTransitionManagementSupport"> <int value="0" label="Accept"/> <int value="1" label="Reject unspecified"/>
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml index e2a3b94..13f4a15d 100644 --- a/tools/metrics/histograms/metadata/autofill/histograms.xml +++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -1410,6 +1410,29 @@ </summary> </histogram> +<histogram + name="Autofill.FastCheckout.CapabilitiesFetcher.CacheStateForIsTriggerFormSupported" + enum="FastCheckoutCacheStateForIsTriggerFormSupported" + expires_after="2023-08-15"> + <owner>bwolfgang@google.com</owner> + <owner>jkeitel@google.com</owner> + <owner>vizcay@google.com</owner> + <summary> + Cache state for when a given origin and form signature are checked for their + Fast Checkout trigger form capability. + </summary> +</histogram> + +<histogram name="Autofill.FastCheckout.CapabilitiesFetcher.ParsingResult" + enum="FastCheckoutCapabilitiesParsingResult" expires_after="2023-08-15"> + <owner>bwolfgang@google.com</owner> + <owner>jkeitel@google.com</owner> + <owner>vizcay@google.com</owner> + <summary> + Parsing result of the response body of a Fast Checkout capabilities fetch. + </summary> +</histogram> + <histogram name="Autofill.FastCheckout.RunOutcome" enum="FastCheckoutRunOutcome" expires_after="2023-04-06"> <owner>bwolfgang@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/chromeos/histograms.xml b/tools/metrics/histograms/metadata/chromeos/histograms.xml index 19168367..fb2478c 100644 --- a/tools/metrics/histograms/metadata/chromeos/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos/histograms.xml
@@ -673,29 +673,35 @@ variants="AllCertProvisioningProtocolVersions"/> </histogram> -<histogram name="ChromeOS.CertProvisioning.Result.{CertProvisioningScope}" +<histogram + name="ChromeOS.CertProvisioning.Result{CertProvisioningProtocolVersion}.{CertProvisioningScope}" enum="CertProvisioningWorkerState" expires_after="2024-02-01"> <owner>miersh@google.com</owner> <owner>pmarko@chromium.org</owner> <summary> For final states (see the list in cert_provisioning::IsFinalState): number - of times the certificate provisioning worker with scope - {CertProvisioningScope} finished on every state. For other states: number of - times the worker failed on every state. + of times the {CertProvisioningProtocolVersion} certificate provisioning + worker with scope {CertProvisioningScope} finished on every state. For other + states: number of times the worker failed on every state. </summary> <token key="CertProvisioningScope" variants="AllCertProvisioningScopes"/> + <token key="CertProvisioningProtocolVersion" + variants="AllCertProvisioningProtocolVersions"/> </histogram> -<histogram name="ChromeOS.CertProvisioning.VaTime.{CertProvisioningScope}" +<histogram + name="ChromeOS.CertProvisioning.VaTime{CertProvisioningProtocolVersion}.{CertProvisioningScope}" units="ms" expires_after="2024-02-01"> <owner>miersh@google.com</owner> <owner>pmarko@chromium.org</owner> <summary> - The amount of time it took the certificate provisioning worker with scope - {CertProvisioningScope} to build one Verified Access response. Emitted after - the response is built. + The amount of time it took the {CertProvisioningProtocolVersion} certificate + provisioning worker with scope {CertProvisioningScope} to build one Verified + Access response. Emitted after the response is built. </summary> <token key="CertProvisioningScope" variants="AllCertProvisioningScopes"/> + <token key="CertProvisioningProtocolVersion" + variants="AllCertProvisioningProtocolVersions"/> </histogram> <histogram name="ChromeOS.CWP.CollectPerf"
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml index 7f876b7..02a4bc3 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -2323,21 +2323,6 @@ </summary> </histogram> -<histogram name="Network.Shill.Vpn.L2tpIpsec.StrokeEndReason" - enum="NetworkServiceError" expires_after="2023-02-19"> - <owner>jiejiang@chromium.org</owner> - <owner>cros-connectivity@google.com</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network usage metric emitted on the end of each L2TP/IPsec VPN - connection initiated by the stroke-based driver that tracks the reason that - the connection is ended. This metric will be emitted no matter if the - connection is established successfully, i.e., it will be emitted if an error - happens during connecting. This metric will be used to compare the stability - of the stroke-based driver and swanctl-based driver (b/204261554). - </summary> -</histogram> - <histogram name="Network.Shill.Vpn.L2tpIpsec.SwanctlEndReason" enum="NetworkServiceError" expires_after="2023-06-25"> <owner>jiejiang@chromium.org</owner> @@ -2348,8 +2333,7 @@ connection initiated by the swanctl-based driver that tracks the reason that the connection is ended. This metric will be emitted no matter if the connection is established successfully, i.e., it will be emitted if an error - happens during connecting. This metric will be used to compare the stability - of the stroke-based driver and swanctl-based driver (b/204261554). + happens during connecting. </summary> </histogram> @@ -2588,6 +2572,17 @@ </summary> </histogram> +<histogram name="Network.Shill.WiFi.ApAlternateEDCASupport" + enum="WiFiApAlternateEDCASupport" expires_after="2023-12-30"> + <owner>damiendejean@chromium.org</owner> + <owner>cros-network-metrics@google.com</owner> + <summary> + Chrome OS network metric sampling the number of Wireless Access Points that + support transmit opportunity negotation, emitted on successful connections + to an AP. + </summary> +</histogram> + <histogram name="Network.Shill.WiFi.ApChannelSwitch" enum="WiFiApChannelSwitch" expires_after="2023-06-18"> <owner>matthewmwang@chromium.org</owner> @@ -2618,6 +2613,16 @@ </summary> </histogram> +<histogram name="Network.Shill.WiFi.ApSCSupport" enum="WiFiApSCSupport" + expires_after="2023-12-30"> + <owner>damiendejean@chromium.org</owner> + <owner>cros-network-metrics@google.com</owner> + <summary> + Chrome OS network metric sampling the number of Wireless Access Points that + support stream classification, emitted on successful connections to an AP. + </summary> +</histogram> + <histogram name="Network.Shill.WiFi.AssocFailureType" enum="WiFiStatusCode" expires_after="2023-06-18"> <owner>norvez@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/web_apk/histograms.xml b/tools/metrics/histograms/metadata/web_apk/histograms.xml index 4c9730c..bc608d4 100644 --- a/tools/metrics/histograms/metadata/web_apk/histograms.xml +++ b/tools/metrics/histograms/metadata/web_apk/histograms.xml
@@ -256,22 +256,6 @@ </summary> </histogram> -<histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenHidden" - units="ms" expires_after="2020-08-31"> - <owner>mheikal@chromium.org</owner> - <owner>yfriedman@chromium.org</owner> - <summary> - Tracks the time to splashscreen hidden starting from the launch of the - WebAPK shell (rather than from the launch of Chrome). The splashscreen is - hidden after the first visually non-empty paint. - - This is recorded iff: - This is a cold startup of Chrome. - Chrome has not - been sent to the background since launch. - There was no recents entry for - Chrome (android replays intents if a recents entry exists), which otherwise - adds noise/long-tail to this histogram. - </summary> -</histogram> - <histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenVisible" units="ms" expires_after="2023-06-11"> <owner>mheikal@chromium.org</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 9263b24..9bfbd93 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -22,7 +22,7 @@ }, "linux": { "hash": "da8b1f4b7d01bb8e5f06082c02b585f2460b147a", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/a0d461d40f902c8223780bbd1185c813c03f5b99/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/cff532835a1cb2d38c524feadaf82076cd213e74/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp index bc275da3..967c5dab 100644 --- a/ui/chromeos/file_manager_strings.grdp +++ b/ui/chromeos/file_manager_strings.grdp
@@ -441,12 +441,18 @@ <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_BOTH" desc="Label of a button to keep both entries after the file transfer operation."> Keep both </message> - <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE" desc="Label of a button to replace the old entry with the new entry."> + <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE" desc="Label of a button to replace an entry with the source entry."> Replace </message> <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_APPLY_TO_ALL" desc="Label of checkbox in the conflict dialog box to apply the user selection to all entries."> Apply to all </message> + <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_ALL" desc="Label of a button to keep all entries after the file transfer operation. The 'Apply to all' checkbox is selected."> + Keep all + </message> + <message name="IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE_ALL" desc="Label of a button to replace all entries with the source entries. The 'Apply to all' checkbox is selected."> + Replace all + </message> <message name="IDS_FILE_BROWSER_CONFIRM_OVERWRITE_FILE" desc="Asks the user if they are sure they want to overwrite an existing file with another one."> A file named "<ph name="FILE_NAME">$1<ex>existing.txt</ex></ph>" already exists. Do you want to replace it? @@ -885,6 +891,21 @@ Move items you don't need to trash </message> + <message name="IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_TITLE" desc="Asks the user if they are sure they want to permanently delete a single file."> + Permanently delete this file? + </message> + <message name="IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_TITLE" desc="Asks the user if they are sure they want to permanently delete multiple files/directories."> + Permanently delete these files? + </message> + <message name="IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_DESC" desc="Asks the user if they are sure they want to permanently delete a single file."> + "<ph name="FILE_NAME">$1<ex>file.txt</ex></ph>" will be deleted and you won't be able to restore it. + </message> + <message name="IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_DESC" desc="Asks the user if they are sure they want to permanently delete multiple files/directories."> + <ph name="NUMBER_OF_ITEMS">$1<ex>3</ex></ph> items will be deleted and you won't be able to restore them. + </message> + <message name="IDS_FILE_BROWSER_PERMANENTLY_DELETE_FOREVER" desc="Button label the users confirms permanently deleting files forever"> + Delete forever + </message> <message name="IDS_FILE_BROWSER_CONFIRM_DELETE_ONE" desc="Asks the user if they are sure they want to delete a single file."> Are you sure you want to delete "<ph name="FILE_NAME">$1<ex>file.txt</ex></ph>"? </message>
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_DESC.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_DESC.png.sha1 new file mode 100644 index 0000000..9faa1b1 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_DESC.png.sha1
@@ -0,0 +1 @@ +f3f936cc1dc85814262cba809ff8213f2bbb9d6e \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_TITLE.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_TITLE.png.sha1 new file mode 100644 index 0000000..9faa1b1 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_ONE_TITLE.png.sha1
@@ -0,0 +1 @@ +f3f936cc1dc85814262cba809ff8213f2bbb9d6e \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_DESC.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_DESC.png.sha1 new file mode 100644 index 0000000..834fe8dd --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_DESC.png.sha1
@@ -0,0 +1 @@ +4b7ab39530ef7657c5bdfba063b0404048ff7030 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_TITLE.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_TITLE.png.sha1 new file mode 100644 index 0000000..834fe8dd --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFIRM_PERMANENTLY_DELETE_SOME_TITLE.png.sha1
@@ -0,0 +1 @@ +4b7ab39530ef7657c5bdfba063b0404048ff7030 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_ALL.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_ALL.png.sha1 new file mode 100644 index 0000000..4e2b190 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_KEEP_ALL.png.sha1
@@ -0,0 +1 @@ +74a87a02b937ac142d2f5d445c26d983f3f6b546 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE_ALL.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE_ALL.png.sha1 new file mode 100644 index 0000000..83031e8 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_CONFLICT_DIALOG_REPLACE_ALL.png.sha1
@@ -0,0 +1 @@ +d1e31a4d3c6ec19f5c8b212e4eea9fd8aa536200 \ No newline at end of file
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_PERMANENTLY_DELETE_FOREVER.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_PERMANENTLY_DELETE_FOREVER.png.sha1 new file mode 100644 index 0000000..834fe8dd --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_PERMANENTLY_DELETE_FOREVER.png.sha1
@@ -0,0 +1 @@ +4b7ab39530ef7657c5bdfba063b0404048ff7030 \ No newline at end of file
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb index b7968629..3195e46 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -219,6 +219,7 @@ <translation id="2888807692577297075">Ingen filer matcher <b>"<ph name="SEARCH_STRING" />"</b></translation> <translation id="2894654529758326923">Oplysninger</translation> <translation id="2902734494705624966">Amerikansk (udvidet)</translation> +<translation id="2904378509913846215">Der findes allerede en mappe ved navn "<ph name="FILENAME" />". Vil du erstatte den med den, du er ved at flytte?</translation> <translation id="290843123675549676">Marathi</translation> <translation id="2923240520113693977">Estisk</translation> <translation id="2938685643439809023">Mongolsk</translation> @@ -639,6 +640,7 @@ <translation id="6241349547798190358">Hollandsk (Belgien)</translation> <translation id="6267547857941397424">Netværk <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, signalstyrke <ph name="SIGNAL_STRENGTH" /> %, telefonbatteri <ph name="BATTERY_STATUS" /> %, opret forbindelse</translation> <translation id="6269630227984243955">Malajisk</translation> +<translation id="6271903698064569429">Der kan ikke uploades filer, fordi "<ph name="SHARED_DRIVE_NAME" />" ikke har nok lagerplads.</translation> <translation id="6287852322318138013">Vælg en app, der skal åbne denne fil</translation> <translation id="6295542640242147836">Lås SIM-kort</translation> <translation id="6296410173147755564">PUK-koden er ugyldig</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb index 2938854c2..85636b7c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -219,6 +219,7 @@ <translation id="2888807692577297075">Walang mga item na tumutugma sa <b>"<ph name="SEARCH_STRING" />"</b></translation> <translation id="2894654529758326923">Impormasyon</translation> <translation id="2902734494705624966">US extended</translation> +<translation id="2904378509913846215">Mayroon nang folder na may pangalang "<ph name="FILENAME" />." Gusto mo ba itong palitan ng folder na inililipat mo?</translation> <translation id="290843123675549676">Marathi</translation> <translation id="2923240520113693977">Estonian</translation> <translation id="2938685643439809023">Mongolian</translation> @@ -639,6 +640,7 @@ <translation id="6241349547798190358">Dutch (Belgium)</translation> <translation id="6267547857941397424">Network <ph name="NETWORK_INDEX" /> sa <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" />%, Baterya ng Telepono <ph name="BATTERY_STATUS" />%, Kumonekta</translation> <translation id="6269630227984243955">Malay</translation> +<translation id="6271903698064569429">Hindi ma-upload ang mga file dahil walang sapat na storage ang "<ph name="SHARED_DRIVE_NAME" />."</translation> <translation id="6287852322318138013">Pumili ng isang app upang buksan ang file na ito</translation> <translation id="6295542640242147836">I-lock ang SIM</translation> <translation id="6296410173147755564">Invalid ang PUK</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb index 4ec56606..b07237c4 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -219,6 +219,7 @@ <translation id="2888807692577297075">Nu există elemente care să corespundă cu <b>„<ph name="SEARCH_STRING" />”</b></translation> <translation id="2894654529758326923">Informații</translation> <translation id="2902734494705624966">S.U.A. extinsă</translation> +<translation id="2904378509913846215">Dosarul cu numele <ph name="FILENAME" /> există deja. Vrei să-l înlocuiești cu cel pe care îl muți?</translation> <translation id="290843123675549676">Marathi</translation> <translation id="2923240520113693977">Estonă</translation> <translation id="2938685643439809023">Mongolă</translation> @@ -639,6 +640,7 @@ <translation id="6241349547798190358">Neerlandeză (Belgia)</translation> <translation id="6267547857941397424">Rețeaua <ph name="NETWORK_INDEX" /> din <ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /> %, bateria telefonului: <ph name="BATTERY_STATUS" /> %, conectează-te</translation> <translation id="6269630227984243955">Malaieză</translation> +<translation id="6271903698064569429">Fișierele nu pot fi încărcate deoarece <ph name="SHARED_DRIVE_NAME" /> nu are suficient spațiu de stocare.</translation> <translation id="6287852322318138013">Selectați o aplicație pentru deschiderea acestui fișier</translation> <translation id="6295542640242147836">Blochează cardul SIM</translation> <translation id="6296410173147755564">PUK nevalid</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb index eb471c2..1ed367c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -219,6 +219,7 @@ <translation id="2888807692577297075"><b>"<ph name="SEARCH_STRING" />"</b>కు అంశాలు సరిపోలలేదు</translation> <translation id="2894654529758326923">సమాచారం</translation> <translation id="2902734494705624966">యుఎస్ విస్తారితం</translation> +<translation id="2904378509913846215">"<ph name="FILENAME" />" పేరు గల ఫోల్డర్ ఇప్పటికే వినియోగంలో ఉంది. మీరు తరలిస్తున్న దానితో దీన్ని రీప్లేస్ చేయాలనుకుంటున్నారా?</translation> <translation id="290843123675549676">మరాఠీ</translation> <translation id="2923240520113693977">ఈస్టోనియన్</translation> <translation id="2938685643439809023">మంగోలియన్</translation> @@ -639,6 +640,7 @@ <translation id="6241349547798190358">డచ్ (బెల్జియం)</translation> <translation id="6267547857941397424"><ph name="NETWORK_COUNT" />లో <ph name="NETWORK_INDEX" /> నెట్వర్క్, <ph name="PHONE_NAME" />, సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />%, ఫోన్ బ్యాటరీ <ph name="BATTERY_STATUS" />%, కనెక్ట్ చేయండి</translation> <translation id="6269630227984243955">మలయ్</translation> +<translation id="6271903698064569429">ఫైల్స్ను అప్లోడ్ చేయడం సాధ్యం కాదు ఎందుకంటే "<ph name="SHARED_DRIVE_NAME" />"లో తగినంత స్టోరేజ్ లేదు.</translation> <translation id="6287852322318138013">ఈ ఫైల్ను తెరవడానికి యాప్ను ఎంచుకోండి</translation> <translation id="6295542640242147836">లాక్ SIM</translation> <translation id="6296410173147755564">చెల్లని PUK</translation>
diff --git a/ui/file_manager/file_manager/BUILD.gn b/ui/file_manager/file_manager/BUILD.gn index c746dd3..9adb3a0 100644 --- a/ui/file_manager/file_manager/BUILD.gn +++ b/ui/file_manager/file_manager/BUILD.gn
@@ -74,7 +74,7 @@ "foreground/images/files/ui/ms365.svg", "foreground/images/files/ui/nudge_star_icon.svg", "foreground/images/files/ui/offline.svg", - "foreground/images/files/ui/in_progress_indicator.svg", + "foreground/images/files/ui/offline_outlined.svg", "foreground/images/files/ui/refresh.svg", "foreground/images/files/ui/restore.svg", "foreground/images/files/ui/search.svg",
diff --git a/ui/file_manager/file_manager/background/js/drive_sync_handler.js b/ui/file_manager/file_manager/background/js/drive_sync_handler.js index 261c4ed1..0c43ee7 100644 --- a/ui/file_manager/file_manager/background/js/drive_sync_handler.js +++ b/ui/file_manager/file_manager/background/js/drive_sync_handler.js
@@ -294,13 +294,17 @@ return; } + const metadataKeys = ['syncStatus', 'progress']; + // Get the cached syncStatus metadata for received statuses. const entries = statuses.map(({entry}) => entry); - const cached = this.metadataModel_.getCache(entries, ['syncStatus']); + const cached = this.metadataModel_.getCache(entries, metadataKeys); - // Filter out statuses that match what we already have in the cache. + // Filter out statuses that match what we already have in the cache, but + // keep all "in_progress" statuses to retrieve their updated progress. const entriesToInvalidate = entries.filter( - (_, i) => cached[i].syncStatus !== statuses[i].transferState); + (_, i) => statuses[i].transferState === 'in_progress' || + cached[i].syncStatus !== statuses[i].transferState); // Get unique parents of entries to be invalidated. const directoriesToInvalidate = await getUniqueParents(entriesToInvalidate); @@ -308,7 +312,7 @@ // Invalidate entries and their parent directories. this.metadataModel_.notifyEntriesChanged(entriesToInvalidate); - this.metadataModel_.get(entriesToInvalidate, ['syncStatus']); + this.metadataModel_.get(entriesToInvalidate, metadataKeys); } /**
diff --git a/ui/file_manager/file_manager/common/js/util.js b/ui/file_manager/file_manager/common/js/util.js index bd4c9c4..a2678f62 100644 --- a/ui/file_manager/file_manager/common/js/util.js +++ b/ui/file_manager/file_manager/common/js/util.js
@@ -1097,6 +1097,14 @@ }; /** + * Returns true if the conflict dialog is enabled. + * @return {boolean} + */ +util.isFilesConflictDialogEnabled = () => { + return loadTimeData.getBoolean('FILES_CONFLICT_DIALOG'); +}; + +/** * Returns true if FuseBoxDebug flag is enabled. * @return {boolean} */
diff --git a/ui/file_manager/file_manager/foreground/css/file_manager.css b/ui/file_manager/file_manager/foreground/css/file_manager.css index 1ebf63c..045e885 100644 --- a/ui/file_manager/file_manager/foreground/css/file_manager.css +++ b/ui/file_manager/file_manager/foreground/css/file_manager.css
@@ -1319,33 +1319,39 @@ position: relative; } -body.files-ng .thumbnail-frame > .sync-status { +#list-container.thumbnail-view .inline-status { + align-items: center; + display: none; height: 16px; + justify-content: center; position: absolute; right: 4px; top: 4px; width: 16px; } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame > .sync-status { - background-position: center; - background-repeat: no-repeat; - background-size: 16px 16px; +#list-container.thumbnail-view .inline-status .progress, +#list-container.thumbnail-view .inline-status xf-icon { + display: none; + height: 16px; + width: 16px; } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame[data-sync-status=in_progress] > .sync-status { - background-image: url(../images/files/ui/in_progress_indicator.svg); +#list-container.thumbnail-view .inline-status xf-icon[type^=offline] { + --xf-icon-color: var(--cros-icon-color-secondary); } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame[data-sync-status=error] > .sync-status { - background-image: url(../images/files/ui/error.svg); -} - -body.files-ng li.directory .thumbnail-frame > .sync-status { +#list-container.thumbnail-view li.directory .inline-status { height: 100%; top: 0; } +#list-container.thumbnail-view li:not([renaming]):not(.dim-offline) .inline-status:has(xf-icon[type^=offline]), +#list-container.thumbnail-view li:not([renaming]):not(.dim-offline) .inline-status xf-icon[type^=offline], +#list-container.thumbnail-view li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status, +#list-container.thumbnail-view li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status .progress { + display: flex; +} html:not(.pointer-active) body[type='full-page'] .thumbnail-frame > .img-container, body[type='full-page'] .thumbnail-frame > .img-container:active, html:not(.pointer-active) body[type='full-page'] .detail-name .detail-icon, @@ -2214,6 +2220,7 @@ body.files-ng .table-row-cell .filename-label { color: var(--cros-text-color-primary); + flex-grow: 1; padding-top: 0; } @@ -2249,38 +2256,30 @@ width: 32px; } -.inline-status { +#list-container .list .inline-status { + align-items: center; display: none; + height: 16px; + justify-content: center; + width: 16px; } -body.files-ng #list-container - li.pinned:not([renaming]):not(.dim-offline):not([data-sync-status]) .inline-status { - -webkit-mask-image: url(../images/files/ui/offline.svg); - -webkit-mask-position: center; - -webkit-mask-repeat: no-repeat; - background-color: currentColor; +#list-container .list .inline-status .progress, +#list-container .list .inline-status xf-icon { + display: none; + height: 16px; + width: 16px; +} + +#list-container .list .inline-status xf-icon:is([type=offline]) { + --xf-icon-color: var(--cros-icon-color-secondary); +} + +#list-container .list li:not([renaming]):not(.dim-offline) .inline-status:has(xf-icon[type=offline]), +#list-container .list li:not([renaming]):not(.dim-offline) .inline-status xf-icon[type=offline], +#list-container .list li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status, +#list-container .list li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status .progress { display: flex; - height: 40px; - width: 40px; -} - -body.files-ng #list-container li[data-sync-status]:not([renaming]):not(.dim-offline) .inline-status { - -webkit-mask-image: none; - background-color: unset; - background-position: center; - background-repeat: no-repeat; - background-size: 16px 16px; - display: flex; - height: 32px; - width: 32px; -} - -body.files-ng #list-container li[data-sync-status=in_progress]:not([renaming]):not(.dim-offline) .inline-status { - background-image: url(../images/files/ui/in_progress_indicator.svg); -} - -body.files-ng #list-container li[data-sync-status=error]:not([renaming]):not(.dim-offline) .inline-status { - background-image: url(../images/files/ui/error.svg); } #new-folder-button {
diff --git a/ui/file_manager/file_manager/foreground/css/file_manager_gm3.css b/ui/file_manager/file_manager/foreground/css/file_manager_gm3.css index 38f26cf..4530bf3 100644 --- a/ui/file_manager/file_manager/foreground/css/file_manager_gm3.css +++ b/ui/file_manager/file_manager/foreground/css/file_manager_gm3.css
@@ -1272,33 +1272,40 @@ position: relative; } -body.files-ng .thumbnail-frame > .sync-status { +#list-container.thumbnail-view .inline-status { + align-items: center; + display: none; height: 16px; + justify-content: center; position: absolute; right: 4px; top: 4px; width: 16px; } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame > .sync-status { - background-position: center; - background-repeat: no-repeat; - background-size: 16px 16px; +#list-container.thumbnail-view .inline-status .progress, +#list-container.thumbnail-view .inline-status xf-icon { + display: none; + height: 16px; + width: 16px; } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame[data-sync-status=in_progress] > .sync-status { - background-image: url(../images/files/ui/in_progress_indicator.svg); +#list-container.thumbnail-view .inline-status xf-icon[type^=offline] { + --xf-icon-color: var(--cros-icon-color-secondary); } -body.files-ng li:not([renaming]):not(.dim-offline) .thumbnail-frame[data-sync-status=error] > .sync-status { - background-image: url(../images/files/ui/error.svg); -} - -body.files-ng li.directory .thumbnail-frame > .sync-status { +#list-container.thumbnail-view li.directory .inline-status { height: 100%; top: 0; } +#list-container.thumbnail-view li:not([renaming]):not(.dim-offline) .inline-status:has(xf-icon[type^=offline]), +#list-container.thumbnail-view li:not([renaming]):not(.dim-offline) .inline-status xf-icon[type^=offline], +#list-container.thumbnail-view li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status, +#list-container.thumbnail-view li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status .progress { + display: flex; +} + html:not(.pointer-active) body[type='full-page'] .thumbnail-frame > .img-container, body[type='full-page'] .thumbnail-frame > .img-container:active, html:not(.pointer-active) body[type='full-page'] .detail-name .detail-icon, @@ -2150,6 +2157,7 @@ body.files-ng .table-row-cell .filename-label { color: var(--cros-text-color-primary); + flex-grow: 1; padding-top: 0; } @@ -2185,38 +2193,30 @@ width: 32px; } -.inline-status { +#list-container .list .inline-status { + align-items: center; display: none; + height: 16px; + justify-content: center; + width: 16px; } -body.files-ng #list-container - li.pinned:not([renaming]):not(.dim-offline):not([data-sync-status]) .inline-status { - -webkit-mask-image: url(../images/files/ui/offline.svg); - -webkit-mask-position: center; - -webkit-mask-repeat: no-repeat; - background-color: currentColor; +#list-container .list .inline-status .progress, +#list-container .list .inline-status xf-icon { + display: none; + height: 16px; + width: 16px; +} + +#list-container .list .inline-status xf-icon[type=offline] { + --xf-icon-color: var(--cros-icon-color-secondary); +} + +#list-container .list li:not([renaming]):not(.dim-offline) .inline-status:has(xf-icon[type=offline]), +#list-container .list li:not([renaming]):not(.dim-offline) .inline-status xf-icon[type=offline], +#list-container .list li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status, +#list-container .list li:not([renaming]):is([data-sync-status=in_progress], [data-sync-status=queued]) .inline-status .progress { display: flex; - height: 40px; - width: 40px; -} - -body.files-ng #list-container li[data-sync-status]:not([renaming]):not(.dim-offline) .inline-status { - -webkit-mask-image: none; - background-color: unset; - background-position: center; - background-repeat: no-repeat; - background-size: 16px 16px; - display: flex; - height: 32px; - width: 32px; -} - -body.files-ng #list-container li[data-sync-status=in_progress]:not([renaming]):not(.dim-offline) .inline-status { - background-image: url(../images/files/ui/in_progress_indicator.svg); -} - -body.files-ng #list-container li[data-sync-status=error]:not([renaming]):not(.dim-offline) .inline-status { - background-image: url(../images/files/ui/error.svg); } #new-folder-button {
diff --git a/ui/file_manager/file_manager/foreground/images/files/ui/in_progress_indicator.svg b/ui/file_manager/file_manager/foreground/images/files/ui/in_progress_indicator.svg deleted file mode 100644 index 1eb514d..0000000 --- a/ui/file_manager/file_manager/foreground/images/files/ui/in_progress_indicator.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="prefix__a" maskUnits="userSpaceOnUse" x="1" y="1" width="14" height="14" fill="#000"><path fill="#fff" d="M1 1h14v14H1z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 14a6 6 0 004.08-10.4h.72V2.4h-2.64a6 6 0 00-6.238 10H3.2v1.2h2.642c.67.258 1.397.4 2.158.4z"/></mask><path fill-rule="evenodd" clip-rule="evenodd" d="M8 14a6 6 0 004.08-10.4h.72V2.4h-2.64a6 6 0 00-6.238 10H3.2v1.2h2.642c.67.258 1.397.4 2.158.4z" fill="#fff"/><path d="M12.08 3.6v-1l-2.547.002L11.4 4.334l.68-.733zm.72 0v1h1v-1h-1zm0-1.2h1v-1h-1v1zm-2.64 0l-.36.933.173.067h.187v-1zm-6.238 10l-.001 1 2.551.002-1.87-1.734-.68.733zm-.722 0v-1h-1v1h1zm0 1.2h-1v1h1v-1zm2.642 0l.36-.933-.173-.067h-.187v1zM13 8a5 5 0 01-5 5v2a7 7 0 007-7h-2zm-1.6-3.666A4.984 4.984 0 0113 8h2a6.984 6.984 0 00-2.24-5.132L11.4 4.334zM12.8 2.6h-.72v2h.72v-2zm-1-.2v1.2h2V2.4h-2zm-1.64 1h2.64v-2h-2.64v2zM8 3c.636 0 1.242.118 1.8.333l.72-1.866A6.985 6.985 0 008 1v2zM3 8a5 5 0 015-5V1a7 7 0 00-7 7h2zm1.601 3.668A4.984 4.984 0 013 8H1c0 2.029.864 3.857 2.242 5.134l1.36-1.466zM3.2 13.4h.722l.001-2H3.2v2zm1 .2v-1.2h-2v1.2h2zm1.643-1H3.2v2h2.642v-2zM8 13a4.985 4.985 0 01-1.798-.333l-.72 1.867A6.987 6.987 0 008 15v-2z" fill="#fff" mask="url(#prefix__a)"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.2 2.457V4.08A4.001 4.001 0 006 11.465V9.6h1.2v4h-4v-1.2h1.337a5.602 5.602 0 012.475-9.914l.188-.03zm5.6-.057v1.2h-1.334A5.601 5.601 0 018.8 13.544V11.92a4.001 4.001 0 001.2-7.384V6.4H8.8v-4h4z" fill="#1A73E8"/></svg>
diff --git a/ui/file_manager/file_manager/foreground/images/files/ui/offline.svg b/ui/file_manager/file_manager/foreground/images/files/ui/offline.svg index b99cc3b..c78803a 100644 --- a/ui/file_manager/file_manager/foreground/images/files/ui/offline.svg +++ b/ui/file_manager/file_manager/foreground/images/files/ui/offline.svg
@@ -1 +1,8 @@ -<svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="#5F6368"><path d="M11.91 6.244a.833.833 0 111.18 1.179l-3.334 3.333a.833.833 0 01-1.179 0L6.911 9.089a.833.833 0 011.178-1.178l1.078 1.077 2.744-2.744zM6.75 12a.75.75 0 000 1.5h6.5a.75.75 0 000-1.5h-6.5z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-2 0a6 6 0 11-12 0 6 6 0 0112 0z"/></g></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" fill="none"> + <g fill="black"> + <path + d="M9.529 4.995a.667.667 0 11.942.943L7.805 8.605a.667.667 0 01-.943 0L5.529 7.27a.667.667 0 11.942-.942l.862.862L9.53 4.995zM5.4 9.6a.6.6 0 000 1.2h5.2a.6.6 0 000-1.2H5.4z" /> + <path fill-rule="evenodd" clip-rule="evenodd" + d="M14.4 8A6.4 6.4 0 111.6 8a6.4 6.4 0 0112.8 0zm-1.6 0a4.8 4.8 0 11-9.6 0 4.8 4.8 0 019.6 0z" /> + </g> +</svg>
diff --git a/ui/file_manager/file_manager/foreground/images/files/ui/offline_outlined.svg b/ui/file_manager/file_manager/foreground/images/files/ui/offline_outlined.svg new file mode 100644 index 0000000..a7f37e6f --- /dev/null +++ b/ui/file_manager/file_manager/foreground/images/files/ui/offline_outlined.svg
@@ -0,0 +1,9 @@ +<svg id="offline_outlined" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" fill="none"> + <circle cx="8" cy="8" r="6.9" fill="#fff" stroke="#fff" /> + <g fill="var(--xf-icon-color)"> + <path + d="M9.529 4.995a.667.667 0 11.942.943L7.805 8.605a.667.667 0 01-.943 0L5.529 7.27a.667.667 0 11.942-.942l.862.862L9.53 4.995zM5.4 9.6a.6.6 0 000 1.2h5.2a.6.6 0 000-1.2H5.4z" /> + <path fill-rule="evenodd" clip-rule="evenodd" + d="M14.4 8A6.4 6.4 0 111.6 8a6.4 6.4 0 0112.8 0zm-1.6 0a4.8 4.8 0 11-9.6 0 4.8 4.8 0 019.6 0z" /> + </g> +</svg>
diff --git a/ui/file_manager/file_manager/foreground/js/deferred_elements.js b/ui/file_manager/file_manager/foreground/js/deferred_elements.js index b36d9fd..b56ad3f 100644 --- a/ui/file_manager/file_manager/foreground/js/deferred_elements.js +++ b/ui/file_manager/file_manager/foreground/js/deferred_elements.js
@@ -16,4 +16,6 @@ import '../elements/xf_circular_progress.js'; import '../elements/xf_display_panel.js'; import '../elements/xf_panel_item.js'; +import '../../widgets/xf_pie_progress.js'; +import '../../widgets/xf_icon.js'; import '../../widgets/xf_conflict_dialog.js';
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js index 578685a..855c27f0 100644 --- a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js +++ b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
@@ -1211,10 +1211,6 @@ return; } - const message = entries.length === 1 ? - strf('CONFIRM_DELETE_ONE', entries[0].name) : - strf('CONFIRM_DELETE_SOME', entries.length); - if (!dialog) { dialog = fileManager.ui.deleteConfirmDialog; } else if (dialog.showModalElement) { @@ -1237,7 +1233,28 @@ dialogDoneCallback(); }; - dialog.show(message, deleteAction, cancelAction, null); + // When a user deletes a file from Drive, it gets moved to the Google Drive + // trash. This means the file is not technically permanently removed. + // Fallback to the delete text that doesn't specify permanent delete in this + // case. + if (fileManager.directoryModel.isOnDrive()) { + const deleteMessage = entries.length === 1 ? + strf('CONFIRM_DELETE_ONE', entries[0].name) : + strf('CONFIRM_DELETE_SOME', entries.length); + dialog.setOkLabel(str('DELETE_BUTTON_LABEL')); + dialog.show(deleteMessage, deleteAction, cancelAction, null); + return; + } + + const title = entries.length === 1 ? + strf('CONFIRM_PERMANENTLY_DELETE_ONE_TITLE') : + strf('CONFIRM_PERMANENTLY_DELETE_SOME_TITLE'); + + const message = entries.length === 1 ? + strf('CONFIRM_PERMANENTLY_DELETE_ONE_DESC', entries[0].name) : + strf('CONFIRM_PERMANENTLY_DELETE_SOME_DESC', entries.length); + + dialog.showWithTitle(title, message, deleteAction, cancelAction, null); } /**
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/external_metadata_provider.js b/ui/file_manager/file_manager/foreground/js/metadata/external_metadata_provider.js index 890dcef73..949f084 100644 --- a/ui/file_manager/file_manager/foreground/js/metadata/external_metadata_provider.js +++ b/ui/file_manager/file_manager/foreground/js/metadata/external_metadata_provider.js
@@ -98,6 +98,7 @@ item.isExternalMedia = prop.isExternalMedia; item.isArbitrarySyncFolder = prop.isArbitrarySyncFolder; item.syncStatus = prop.syncStatus; + item.progress = prop.progress; results.push(item); } return results; @@ -136,4 +137,5 @@ 'isExternalMedia', 'isArbitrarySyncFolder', 'syncStatus', + 'progress', ];
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js index 93428ca0..e3d5fc0 100644 --- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js +++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_item.js
@@ -243,5 +243,12 @@ * @type {string|undefined} */ this.syncStatus; + + /** + * Represents some ongoing operation with this item. E.g., pasting, syncing. + * Note: currently, this is exclusively used for Drive syncing. + * @type {number|undefined} + */ + this.progress; } }
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js index 6942ad2..2972650 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js
@@ -265,6 +265,8 @@ this.setGenericThumbnail_( assertInstanceof(box, HTMLDivElement), entry, mimeType); } else { + listItem.querySelector('xf-icon').type = + this.getOfflineIconForEntry(entry, true); FileGrid.setThumbnailImage_( assertInstanceof(box, HTMLDivElement), entry, assert(event.dataUrl), assert(event.width), assert(event.height), @@ -743,6 +745,14 @@ this.decorateThumbnailBox_(listItem, entry); this.updateSharedStatus_(listItem, entry); this.updateInlineSyncStatus_(listItem, entry); + const metadata = + this.metadataModel_.getCache([entry], ['availableOffline'])[0]; + if (metadata) { + const {availableOffline} = metadata; + listItem.classList.toggle('dim-offline', availableOffline === false); + listItem.querySelector('xf-icon').type = + this.getOfflineIconForEntry(entry); + } listItem.toggleAttribute( 'disabled', filelist.isDlpBlocked( @@ -787,18 +797,10 @@ frame.className = 'thumbnail-frame'; li.appendChild(frame); - if (util.isInlineSyncStatusEnabled()) { - const syncStatus = li.ownerDocument.createElement('div'); - syncStatus.className = 'sync-status'; - frame.appendChild(syncStatus); - } const box = li.ownerDocument.createElement('div'); box.classList.add('img-container', 'no-thumbnail'); frame.appendChild(box); - if (entry) { - this.decorateThumbnailBox_(assertInstanceof(li, HTMLLIElement), entry); - } const bottom = li.ownerDocument.createElement('div'); bottom.className = 'thumbnail-bottom'; @@ -819,11 +821,56 @@ frame.appendChild(bottom); li.setAttribute('file-name', util.getEntryLabel(locationInfo, entry)); + const syncStatus = li.ownerDocument.createElement('div'); + syncStatus.className = 'inline-status'; + + const inlineStatusIcon = li.ownerDocument.createElement('xf-icon'); + inlineStatusIcon.size = 'extra_small'; + inlineStatusIcon.type = ''; + syncStatus.appendChild(inlineStatusIcon); + + if (util.isInlineSyncStatusEnabled()) { + const syncProgress = li.ownerDocument.createElement('xf-pie-progress'); + syncProgress.drawBackground = true; + syncProgress.className = 'progress'; + syncStatus.appendChild(syncProgress); + } + + frame.appendChild(syncStatus); + + const metadata = + this.metadataModel_.getCache([entry], ['availableOffline'])[0]; + if (metadata) { + const {availableOffline} = metadata; + li.classList.toggle('dim-offline', availableOffline === false); + inlineStatusIcon.type = this.getOfflineIconForEntry(entry); + } + + if (entry) { + this.decorateThumbnailBox_(assertInstanceof(li, HTMLLIElement), entry); + } this.updateSharedStatus_(li, entry); this.updateInlineSyncStatus_(li, entry); } /** + * @param {Entry} entry + * @param {boolean} useOutline Whether the icon whose identifier is returned + * should have an outline around it. + * @returns string + */ + getOfflineIconForEntry(entry, useOutline = false) { + const metadata = this.metadataModel_.getCache([entry], ['pinned'])[0]; + if (!metadata) { + return; + } + return metadata.pinned ? + // TODO: use "XfIcon.types.OFFLINE*" instead when converting to TS. + useOutline ? 'offline_outlined' : 'offline' : + ''; + } + + /** * Decorates the box containing a centered thumbnail image. * * @param {!HTMLLIElement} li List item which contains the box to be @@ -849,6 +896,8 @@ this.metadataModel_.getCache([entry], ['contentMimeType'])[0] .contentMimeType; if (thumbnailData && thumbnailData.dataUrl) { + li.querySelector('xf-icon').type = + this.getOfflineIconForEntry(entry, true); FileGrid.setThumbnailImage_( box, entry, thumbnailData.dataUrl, (thumbnailData.width || 0), (thumbnailData.height || 0), mimeType); @@ -892,13 +941,24 @@ if (!util.isInlineSyncStatusEnabled()) { return; } - const frame = li.querySelector('.thumbnail-frame'); - const syncStatus = - this.metadataModel_.getCache([entry], ['syncStatus'])[0].syncStatus; - if (frame && syncStatus) { - frame.setAttribute('data-sync-status', syncStatus); - // TODO(b/255474670): set sync status aria-label. + + const metadata = + this.metadataModel_.getCache([entry], ['syncStatus', 'progress'])[0]; + + if (!metadata) { + return; } + + const {syncStatus, progress} = metadata; + + if (!syncStatus) { + return; + } + + li.setAttribute('data-sync-status', syncStatus); + li.querySelector('.progress') + .setAttribute('progress', (progress || 0).toFixed(2)); + // TODO(b/255474670): set sync status aria-label. } /**
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js index 3a1cd257..befbc4c5 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js
@@ -99,7 +99,7 @@ * @const */ this.deleteConfirmDialog = new FilesConfirmDialog(this.element); - this.deleteConfirmDialog.setOkLabel(str('DELETE_BUTTON_LABEL')); + this.deleteConfirmDialog.setOkLabel(str('PERMANENTLY_DELETE_FOREVER')); this.deleteConfirmDialog.focusCancelButton = true; /**
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table.js b/ui/file_manager/file_manager/foreground/js/ui/file_table.js index a978b863..58646e0 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_table.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_table.js
@@ -828,7 +828,7 @@ label.appendChild( filelist.renderFileNameLabel(this.ownerDocument, entry, locationInfo)); if (locationInfo && locationInfo.isDriveBased) { - label.appendChild(filelist.renderPinned(this.ownerDocument)); + label.appendChild(filelist.renderInlineStatus(this.ownerDocument)); } const isDlpRestricted = !!metadata.isDlpRestricted; if (isDlpRestricted) { @@ -1010,6 +1010,7 @@ 'hosted', 'pinned', 'syncStatus', + 'progress', ])[0], util.isTeamDriveRoot(entry)); listItem.toggleAttribute(
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js index 14177c99..b5769b7 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_table_list.js
@@ -364,6 +364,7 @@ 'isExternalMedia', 'pinned', 'syncStatus', + 'progress', ])[0]; filelist.updateListItemExternalProps( li, externalProps, util.isTeamDriveRoot(entry)); @@ -471,13 +472,25 @@ }; /** - * Renders the Drive pinned marker in the detail table. + * Renders the inline status in the detail table. * @return {!HTMLDivElement} Created element. */ -filelist.renderPinned = (doc) => { +filelist.renderInlineStatus = (doc) => { const icon = /** @type {!HTMLDivElement} */ (doc.createElement('div')); icon.className = 'inline-status'; icon.setAttribute('aria-label', str('OFFLINE_COLUMN_LABEL')); + + const inlineStatusIcon = doc.createElement('xf-icon'); + inlineStatusIcon.size = 'extra_small'; + inlineStatusIcon.type = ''; + icon.appendChild(inlineStatusIcon); + + if (util.isInlineSyncStatusEnabled()) { + const syncProgress = doc.createElement('xf-pie-progress'); + syncProgress.className = 'progress'; + icon.appendChild(syncProgress); + } + return icon; }; @@ -493,7 +506,11 @@ li.classList.toggle('dim-hosted', !!externalProps.hosted); } - li.classList.toggle('pinned', !!externalProps.pinned); + const inlineStatusIcon = li.querySelector('.inline-status xf-icon'); + if (inlineStatusIcon) { + // TODO: use "XfIcon.types.OFFLINE*" instead when converting to TS. + inlineStatusIcon.type = externalProps.pinned ? 'offline' : ''; + } const iconDiv = li.querySelector('.detail-icon'); if (!iconDiv) { @@ -514,14 +531,13 @@ 'external-media-root', !!externalProps.isExternalMedia); } - if (util.isInlineSyncStatusEnabled() && externalProps.syncStatus) { - if (externalProps.syncStatus === 'not_found') { - li.removeAttribute('data-sync-status'); - } else { - li.setAttribute('data-sync-status', externalProps.syncStatus); - } - // TODO(b/255474670): set sync status aria-label. + const {syncStatus, progress} = externalProps; + if (util.isInlineSyncStatusEnabled() && syncStatus) { + li.setAttribute('data-sync-status', syncStatus); + li.querySelector('.progress') + .setAttribute('progress', (progress || 0).toFixed(2)); } + // TODO(b/255474670): set sync status aria-label. }; /**
diff --git a/ui/file_manager/file_manager/widgets/xf_base.ts b/ui/file_manager/file_manager/widgets/xf_base.ts index 7c489e4..bce995c 100644 --- a/ui/file_manager/file_manager/widgets/xf_base.ts +++ b/ui/file_manager/file_manager/widgets/xf_base.ts
@@ -11,7 +11,7 @@ import {ifDefined} from 'chrome://resources/mwc/lit/directives/if-defined.js'; import {repeat} from 'chrome://resources/mwc/lit/directives/repeat.js'; import {styleMap} from 'chrome://resources/mwc/lit/directives/style-map.js'; -import {css, CSSResult, CSSResultGroup, html, LitElement, PropertyValues} from 'lit'; +import {css, CSSResult, CSSResultGroup, html, LitElement, nothing, PropertyValues, svg} from 'lit'; import {customElement, property, query, state} from 'lit/decorators'; export { @@ -22,12 +22,14 @@ customElement, html, ifDefined, + nothing, property, PropertyValues, query, repeat, state, styleMap, + svg, }; /**
diff --git a/ui/file_manager/file_manager/widgets/xf_conflict_dialog.ts b/ui/file_manager/file_manager/widgets/xf_conflict_dialog.ts index 8ed26c52..92cf84b 100644 --- a/ui/file_manager/file_manager/widgets/xf_conflict_dialog.ts +++ b/ui/file_manager/file_manager/widgets/xf_conflict_dialog.ts
@@ -7,7 +7,7 @@ import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js'; import {AsyncQueue} from '../common/js/async_util.js'; -import {strf} from '../common/js/util.js'; +import {str, strf} from '../common/js/util.js'; import {getTemplate} from './xf_conflict_dialog.html.js'; @@ -67,8 +67,9 @@ * DOM connected callback. */ connectedCallback() { - this.dialog_.addEventListener('close', this.onClose_.bind(this)); + this.dialog_.addEventListener('close', this.closed_.bind(this)); + this.getCheckboxElement().onchange = this.checked_.bind(this); this.getCancelButton().onclick = this.cancel_.bind(this); this.getKeepbothButton().onclick = this.keepboth_.bind(this); this.getReplaceButton().onclick = this.replace_.bind(this); @@ -101,8 +102,8 @@ } /** - * Resets the dialog message content for the given |filename| |checkbox| and - * |folder| display state, and then shows the modal dialog. + * Resets the dialog for the given |filename| |checkbox| and |folder| values + * and then shows the modal dialog. */ private showModal_(filename: string, checkbox: boolean, folder: boolean) { const message = // 'A folder named ...' or 'A file named ...' @@ -114,6 +115,7 @@ applyToAll.checked = false; this.action_ = ''; + this.checked_(); this.dialog_.showModal(); } @@ -139,6 +141,23 @@ } /** + * 'Apply to all' checkbox value changed. + */ + private checked_() { + const checked = this.getCheckboxElement().checked; + + if (checked) { + this.getKeepbothButton().innerText = str('CONFLICT_DIALOG_KEEP_ALL'); + this.getReplaceButton().innerText = str('CONFLICT_DIALOG_REPLACE_ALL'); + } else { + this.getKeepbothButton().innerText = str('CONFLICT_DIALOG_KEEP_BOTH'); + this.getReplaceButton().innerText = str('CONFLICT_DIALOG_REPLACE'); + } + + this.toggleAttribute('checked', checked); + } + + /** * Returns 'cancel' button element. */ getCancelButton(): CrButtonElement { @@ -184,10 +203,10 @@ } /* - * Triggered by <cr-dialog>.close(): reject the Promise if the dialog was - * cancelled, or resolve the Promise with the dialog result. + * Triggered by the modal dialog close(): rejects the Promise if the dialog + * was cancelled or resolves it with the dialog result. */ - private onClose_() { + private closed_() { if (!this.action_) { this.reject_(new Error('dialog cancelled')); return;
diff --git a/ui/file_manager/file_manager/widgets/xf_conflict_dialog_unittest.ts b/ui/file_manager/file_manager/widgets/xf_conflict_dialog_unittest.ts index 0cdc81d..aece0df 100644 --- a/ui/file_manager/file_manager/widgets/xf_conflict_dialog_unittest.ts +++ b/ui/file_manager/file_manager/widgets/xf_conflict_dialog_unittest.ts
@@ -148,6 +148,127 @@ } /* + * Tests that clicking the 'Apply to all' checkbox changes the dialog checked + * state attributes, properties, and button texts. + */ +export async function testDialogCheckboxChangesCheckedState(done: () => void) { + const element = getConflictDialogElement(); + + // Check: the dialog should not be open. + const dialog = element.getDialogElement(); + assertFalse(dialog.open); + + // Open the conflict dialog for a given file name, with a checkbox. + const withCheckbox = true; + element.show('image.jpg', withCheckbox); + await waitUntil(() => dialog.open); + + // Check: the 'Apply to all' checkbox should be shown. + const checkbox = element.getCheckboxElement(); + assertNotEquals('none', window.getComputedStyle(checkbox).display); + assertFalse(checkbox.hasAttribute('checked')); + assertFalse(checkbox.hasAttribute('disabled')); + assertFalse(checkbox.checked); + assertFalse(checkbox.hidden); + + // Get the keepboth and replace buttons. + const keepboth = element.getKeepbothButton(); + const replace = element.getReplaceButton(); + assertFalse(element.hasAttribute('checked')); + assertEquals('Keep both', keepboth.innerText); + assertEquals('Replace', replace.innerText); + + // Check: clicking the checkbox should change the checked state. + checkbox.click(); + await waitUntil(() => element.hasAttribute('checked')); + assertTrue(checkbox.hasAttribute('checked')); + assertTrue(checkbox.checked); + assertEquals('Keep all', keepboth.innerText); + assertEquals('Replace all', replace.innerText); + + // Check: clicking the checkbox should change the checked state. + checkbox.click(); + await waitUntil(() => !element.hasAttribute('checked')); + assertFalse(checkbox.hasAttribute('checked')); + assertFalse(checkbox.checked); + assertEquals('Keep both', keepboth.innerText); + assertEquals('Replace', replace.innerText); + + done(); +} + +/* + * Tests that the dialog checked state is reset when the dialog opens. + */ +export async function testDialogShowResetsCheckedState(done: () => void) { + const element = getConflictDialogElement(); + + // Check: the dialog should not be open. + const dialog = element.getDialogElement(); + assertFalse(dialog.open); + + // Open the conflict dialog for a given file name, with a checkbox. + const withCheckbox = true; + const resultPromise = element.show('image.jpg', withCheckbox); + await waitUntil(() => dialog.open); + + // Get the keepboth and replace buttons. + const keepboth = element.getKeepbothButton(); + const replace = element.getReplaceButton(); + assertFalse(element.hasAttribute('checked')); + assertEquals('Keep both', keepboth.innerText); + assertEquals('Replace', replace.innerText); + + // Check: the 'Apply to all' checkbox should be shown. + const checkbox = element.getCheckboxElement(); + assertNotEquals('none', window.getComputedStyle(checkbox).display); + assertFalse(checkbox.hasAttribute('checked')); + assertFalse(checkbox.hasAttribute('disabled')); + assertFalse(checkbox.checked); + assertFalse(checkbox.hidden); + + // Check: clicking the checkbox should change the checked state. + checkbox.click(); + await waitUntil(() => element.hasAttribute('checked')); + assertTrue(checkbox.hasAttribute('checked')); + assertTrue(checkbox.checked); + assertEquals('Keep all', keepboth.innerText); + assertEquals('Replace all', replace.innerText); + + // Close the modal dialog while in checked state. Closing should reject + // the resultPromise with a cancelled Error. + try { + dialog.close(); + await resultPromise; + assertNotReached(); + } catch (error: any) { + assertEquals('Error: dialog cancelled', error?.toString()); + await waitUntil(() => !dialog.open); + } + + // Check: the dialog closed and should still have checked state. + assertFalse(dialog.open); + assertTrue(element.hasAttribute('checked')); + assertTrue(checkbox.hasAttribute('checked')); + assertTrue(checkbox.checked); + assertEquals('Keep all', keepboth.innerText); + assertEquals('Replace all', replace.innerText); + + // Open the dialog again. + element.show('file.txt', withCheckbox); + await waitUntil(() => dialog.open); + + // Check: the checked state should be reset when the dialog opens. + await waitUntil(() => !element.hasAttribute('checked')); + assertFalse(checkbox.hasAttribute('checked')); + assertFalse(checkbox.checked); + assertEquals('Keep both', keepboth.innerText); + assertEquals('Replace', replace.innerText); + + done(); +} + +/* * Tests that the dialog consumes keyboard events. */ export async function testDialogConsumesKeyboardEvents(done: () => void) { @@ -266,17 +387,23 @@ // Open the conflict dialog for a given file name, with the checkbox. const resultCheckboxPromise = element.show('file2.txt', true); await waitUntil(() => dialog.open); + assertFalse(element.hasAttribute('checked')); + assertEquals('Replace', replace.innerText); // Check: the 'Apply to all' checkbox should be shown. const checkbox = element.getCheckboxElement(); assertNotEquals('none', window.getComputedStyle(checkbox).display); + assertFalse(checkbox.hasAttribute('checked')); assertFalse(checkbox.hasAttribute('disabled')); assertFalse(checkbox.checked); assertFalse(checkbox.hidden); - // Clicking the checkbox should toggle its checked state. + // Check: clicking the checkbox should change the checked state. checkbox.click(); - await waitUntil(() => checkbox.checked); + await waitUntil(() => element.hasAttribute('checked')); + assertTrue(checkbox.hasAttribute('checked')); + assertTrue(checkbox.checked); + assertEquals('Replace all', replace.innerText); // Check: the replace button should be shown. assertNotEquals('none', window.getComputedStyle(replace).display); @@ -337,17 +464,23 @@ // Open the conflict dialog for a given file name, with the checkbox. const resultCheckboxPromise = element.show('file2.txt', true); await waitUntil(() => dialog.open); + assertFalse(element.hasAttribute('checked')); + assertEquals('Keep both', keepboth.innerText); // Check: the 'Apply to all' checkbox should be shown. const checkbox = element.getCheckboxElement(); assertNotEquals('none', window.getComputedStyle(checkbox).display); + assertFalse(checkbox.hasAttribute('checked')); assertFalse(checkbox.hasAttribute('disabled')); assertFalse(checkbox.checked); assertFalse(checkbox.hidden); - // Clicking the checkbox should toggle its checked state. + // Check: clicking the checkbox should change the checked state. checkbox.click(); - await waitUntil(() => checkbox.checked); + await waitUntil(() => element.hasAttribute('checked')); + assertTrue(checkbox.hasAttribute('checked')); + assertTrue(checkbox.checked); + assertEquals('Keep all', keepboth.innerText); // Check: the keepboth button should be shown. assertNotEquals('none', window.getComputedStyle(keepboth).display);
diff --git a/ui/file_manager/file_manager/widgets/xf_icon.ts b/ui/file_manager/file_manager/widgets/xf_icon.ts index a2bbef4a..03c87231 100644 --- a/ui/file_manager/file_manager/widgets/xf_icon.ts +++ b/ui/file_manager/file_manager/widgets/xf_icon.ts
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {classMap, css, customElement, html, property, PropertyValues, XfBase} from './xf_base.js'; +import {classMap, css, customElement, html, property, PropertyValues, svg, XfBase} from './xf_base.js'; @customElement('xf-icon') export class XfIcon extends XfBase { @@ -17,6 +17,7 @@ static get sizes() { return { + EXTRA_SMALL: 'extra_small', SMALL: 'small', LARGE: 'large', } as const; @@ -77,6 +78,15 @@ USB: 'usb', VIDEO: 'video', WORD: 'word', + OFFLINE: 'offline', + OFFLINE_OUTLINED: 'offline_outlined', + }; + } + + static get multiColor() { + return { + [XfIcon.types.OFFLINE_OUTLINED]: + svg`<use xlink:href="foreground/images/files/ui/offline_outlined.svg#offline_outlined"></use>`, }; } @@ -85,6 +95,15 @@ } override render() { + if (Object.keys(XfIcon.multiColor).includes(this.type)) { + return html` + <span class="multi-color keep-color"> + <svg> + ${XfIcon.multiColor[this.type]} + </svg> + </span>`; + } + const shouldKeepColor = [ XfIcon.types.EXCEL, XfIcon.types.POWERPOINT, @@ -138,6 +157,17 @@ background-repeat: no-repeat; } + span.multi-color { + display: flex; + align-items: stretch; + justify-content: stretch; + } + + :host([size="extra_small"]) span { + height: 16px; + width: 16px; + } + :host([size="small"]) span { height: 20px; width: 20px; @@ -330,6 +360,10 @@ -webkit-mask-image: url(../foreground/images/files/ui/filetype_placeholder_generic.svg); } + :host([type="offline"]) span { + -webkit-mask-image: url(../foreground/images/files/ui/offline.svg); + } + :host([type="tini"]) span { -webkit-mask-image: url(../foreground/images/filetype/filetype_tini.svg); }
diff --git a/ui/file_manager/file_manager/widgets/xf_pie_progress.ts b/ui/file_manager/file_manager/widgets/xf_pie_progress.ts new file mode 100644 index 0000000..09856e5 --- /dev/null +++ b/ui/file_manager/file_manager/widgets/xf_pie_progress.ts
@@ -0,0 +1,133 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {css, customElement, html, nothing, property, svg, XfBase} from './xf_base.js'; + +const TWO_PI = 2.0 * Math.PI; +const HALF_PI = 0.5 * Math.PI; + +/** + * Displays a pie shaped progress indicator. + * Accepts a `progress` property ranging from 0 to 1. + */ +@customElement('xf-pie-progress') +export class XfPieProgress extends XfBase { + // This should be a number between 0 and 1. + @property({type: Number, reflect: true}) progress = 0; + + // Whether a background should be drawn around the indicator + // (currently used to draw it over images). + @property({type: Boolean, attribute: 'draw-background', reflect: true}) + drawBackground = 0; + + private size = 16; // Size of the SVG square measured by its side length. + private center = this.size / 2.0; // Center of the pie circle (both X and Y). + private radius = 5.4; // Radius of the pie circle. + + private backgroundShape = svg`<circle + cx="${this.center}" + cy="${this.center}" + r="${this.center}" + fill="#fff" + />`; + private queuedShape = svg`<circle + class="queued" + cx="${this.center}" + cy="${this.center}" + r="5.6" + fill="none" + stroke-width="1.6" + />;`; + + static override get styles() { + return getCSS(); + } + + override render() { + const {progress, size, center, radius} = this; + + let contents = svg``; + + if (progress === 0) { + // Display the queued shape. + contents = this.queuedShape; + } else if (progress >= 0.99) { + // The completed pie is easier to draw. + contents = svg` + <circle + class="edge full" + stroke-width="2" + cx="${center}" + cy="${center}" + r="${radius}" + /> + `; + } else { + // Finishing angle of the pie arc. Notice that the starting angle is + // always -PI/2. I.e., the pie is drawn starting from the top of the + // circle and it advances in a clockwise fashion. + const radians = TWO_PI * progress - HALF_PI; + + // Finishing cartesian coordinates of the pie arc. Notice that the + // starting coordinates are always <0, -radius> (the top of the circle). + const x = center + radius * Math.cos(radians); + const y = center + radius * Math.sin(radians); + + // Determines which arc fitting the other arguments should be rendered. + // Render the smaller one until we are drawing an arc with an angle + // greater than 180 degrees. More info: + // https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands + const largeArcFlag = progress <= 0.5 ? '0' : '1'; + + contents = svg`<circle + class="edge" + stroke-width="2" + cx="${center}" + cy="${center}" + r="${radius}" + /> + <path + class="pie" + d=" + M ${center} ${center} + l 0 ${- radius} + A ${radius} ${radius} 0 ${largeArcFlag} 1 ${x} ${y} + Z" + />`; + } + + return html` + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${size} ${size}"> + ${this.drawBackground ? this.backgroundShape : nothing} ${contents} + </svg> + `; + } +} + +function getCSS() { + return css` + svg { + height: 100%; + width: 100%; + } + + .queued { + stroke: var(--cros-icon-color-secondary); + } + + .edge { + fill: none; + stroke: var(--cros-icon-color-prominent); + } + + .full { + fill: var(--cros-icon-color-prominent); + } + + .pie { + fill: var(--cros-icon-color-prominent); + stroke: none; + } + `; +}
diff --git a/ui/file_manager/file_names.gni b/ui/file_manager/file_names.gni index 1408ed9c..367d775 100644 --- a/ui/file_manager/file_names.gni +++ b/ui/file_manager/file_names.gni
@@ -282,6 +282,7 @@ "file_manager/widgets/xf_search_options.ts", "file_manager/widgets/xf_select.ts", "file_manager/widgets/xf_splitter.ts", + "file_manager/widgets/xf_pie_progress.ts", "file_manager/foreground/js/ui/search_autocomplete_list.ts", "file_manager/widgets/xf_tree.ts", "file_manager/widgets/xf_tree_item.ts",
diff --git a/ui/file_manager/integration_tests/file_manager/drive_specific.js b/ui/file_manager/integration_tests/file_manager/drive_specific.js index dd8809ab..e25795c 100644 --- a/ui/file_manager/integration_tests/file_manager/drive_specific.js +++ b/ui/file_manager/integration_tests/file_manager/drive_specific.js
@@ -339,11 +339,11 @@ await remoteCall.waitForElement(appId, '#file-context-menu[hidden]'); // Wait for the pinned action to finish, it's flagged in the file list by - // removing CSS class "dim-offline" and adding class "pinned". + // removing CSS class "dim-offline" and displaying the offline icon. await remoteCall.waitForElementLost( appId, '#file-list .dim-offline[file-name="world.ogv"]'); await remoteCall.waitForElement( - appId, '#file-list .pinned[file-name="world.ogv"] .inline-status'); + appId, '#file-list [file-name="world.ogv"] xf-icon[type=offline]'); // Select world.ogv by itself. await remoteCall.waitAndClickElement( @@ -407,15 +407,16 @@ await remoteCall.waitForElement(appId, '#file-context-menu[hidden]'); // Wait for the pinned action to finish, it's flagged in the file list by - // removing CSS class "dim-offline" and adding class "pinned". + // removing CSS class "dim-offline" and displaying the offline icon. await remoteCall.waitForElementLost( appId, '#file-list .dim-offline[file-name="hello.txt"]'); await remoteCall.waitForElement( - appId, '#file-list .pinned[file-name="hello.txt"] .inline-status'); + appId, '#file-list [file-name="hello.txt"] xf-icon[type=offline]'); // Test Document.gdoc should not be pinned however. await remoteCall.waitForElement( - appId, '#file-list [file-name="Test Document.gdoc"]:not(.pinned)'); + appId, + '#file-list [file-name="Test Document.gdoc"] xf-icon:not([type=offline])'); // Open the context menu with both files selected. @@ -468,7 +469,7 @@ // Check: File is pinned. await remoteCall.waitForElement(appId, '[command="#toggle-pinned"][checked]'); await remoteCall.waitForElement( - appId, '#file-list .pinned[file-name="hello.txt"] .inline-status'); + appId, '#file-list [file-name="hello.txt"] xf-icon[type=offline]'); await waitForNotification('disabled-mobile-sync'); await sendTestMessage({ name: 'clickNotificationButton', @@ -680,7 +681,7 @@ // Wait for the file to be pinned. await remoteCall.waitForElement( - appId, '#file-list .pinned[file-name="hello.txt"]'); + appId, '#file-list [file-name="hello.txt"] xf-icon[type=offline]'); // Check the "Available Offline" toggle is enabled and checked. await remoteCall.waitForElement( @@ -922,6 +923,12 @@ // Verify the "sync in progress" icon is displayed. await remoteCall.waitForElement(appId, syncInProgressQuery); + // On `DriveFsTestVolume::SetFileSyncStatus`, the fake event setting the + // path's status hardcodes the progress as 50 bytes / 100 bytes transferred. + // Verify this data reaches the UI as a progress value of 50%. + await remoteCall.waitForElement( + appId, '[data-sync-status=in_progress] .progress[progress="0.50"]'); + // Fake the file finishing syncing. await sendTestMessage({ name: 'setDriveFileSyncStatus', @@ -1170,3 +1177,40 @@ // Check: the Enable Docs Offline dialog should disappear. await remoteCall.waitForElementLost(appId, '.cr-dialog-container.shown'); }; + +/** + * Tests that when deleting a file on Google Drive the dialog has no mention of + * permanent deletion (as the files aren't pemanently deleted but go to Google + * Drive trash instead). + */ +testcase.driveDeleteDialogDoesntMentionPermanentDelete = async () => { + // Open Files app on Drive. + const appId = await setupAndWaitUntilReady(RootPath.DRIVE, []); + + // Wait for the "hello.txt" file to appear. + const helloTxtSelector = '#file-list [file-name="photos"]'; + await remoteCall.waitAndClickElement(appId, helloTxtSelector); + + // Ensure the move-to-trash command is hidden and disabled on Google Drive and + // then click the enabled delete button + await remoteCall.waitForElement(appId, '#move-to-trash[hidden][disabled]'); + await remoteCall.waitAndClickElement( + appId, '#delete-button:not([hidden]):not([disabled])'); + + // Check: the dialog 'Cancel' button should be focused by default. + const dialogDefaultButton = + await remoteCall.waitForElement(appId, '.cr-dialog-cancel:focus'); + chrome.test.assertEq('Cancel', dialogDefaultButton.text); + + // Check: the dialog has no mention in the text of "permanent". + const dialogText = await remoteCall.waitForElement(appId, '.cr-dialog-text'); + chrome.test.assertFalse(dialogText.text.toLowerCase().includes('permanent')); + + // The dialog 'Delete' button should be only contain the text "Delete". + const dialogDeleteButton = + await remoteCall.waitAndClickElement(appId, '.cr-dialog-ok'); + chrome.test.assertEq('Delete', dialogDeleteButton.text); + + // Wait for completion of file deletion. + await remoteCall.waitForElementLost(appId, helloTxtSelector); +};
diff --git a/ui/file_manager/integration_tests/file_manager/trash.js b/ui/file_manager/integration_tests/file_manager/trash.js index 2def40b6..7095d626 100644 --- a/ui/file_manager/integration_tests/file_manager/trash.js +++ b/ui/file_manager/integration_tests/file_manager/trash.js
@@ -50,7 +50,7 @@ // Click the delete confirm dialog 'Delete' button. const dialogDeleteButton = await remoteCall.waitAndClickElement(appId, '.cr-dialog-ok'); - chrome.test.assertEq('Delete', dialogDeleteButton.text); + chrome.test.assertEq('Delete forever', dialogDeleteButton.text); // Wait for completion of file deletion. await remoteCall.waitForElementLost(
diff --git a/ui/gl/gl_image.h b/ui/gl/gl_image.h index e1837dc..e283cff 100644 --- a/ui/gl/gl_image.h +++ b/ui/gl/gl_image.h
@@ -64,6 +64,7 @@ namespace ui { class NativePixmapGLBinding; class NativePixmapEGLBinding; +class NativePixmapEGLX11Binding; class SurfacelessGlRenderer; class SurfacelessSkiaGlRenderer; } // namespace ui @@ -158,6 +159,7 @@ friend class media::VTVideoDecodeAccelerator; friend class ui::NativePixmapGLBinding; friend class ui::NativePixmapEGLBinding; + friend class ui::NativePixmapEGLX11Binding; friend class ui::SurfacelessGlRenderer; friend class ui::SurfacelessSkiaGlRenderer; friend class viz::ImageContextImpl;
diff --git a/ui/ozone/common/native_pixmap_egl_binding.cc b/ui/ozone/common/native_pixmap_egl_binding.cc index bc45ac52..4ad32400 100644 --- a/ui/ozone/common/native_pixmap_egl_binding.cc +++ b/ui/ozone/common/native_pixmap_egl_binding.cc
@@ -10,7 +10,9 @@ namespace ui { -NativePixmapEGLBinding::NativePixmapEGLBinding() = default; +NativePixmapEGLBinding::NativePixmapEGLBinding( + scoped_refptr<gl::GLImageNativePixmap> gl_image) + : gl_image_(std::move(gl_image)) {} NativePixmapEGLBinding::~NativePixmapEGLBinding() = default; // static @@ -29,12 +31,29 @@ return nullptr; } - auto binding = std::make_unique<NativePixmapEGLBinding>(); - if (!binding->BindTexture(std::move(gl_image), target, texture_id)) { + auto binding = std::make_unique<NativePixmapEGLBinding>(std::move(gl_image)); + if (!binding->BindTexture(target, texture_id)) { return nullptr; } return binding; } +bool NativePixmapEGLBinding::BindTexture(GLenum target, GLuint texture_id) { + return NativePixmapGLBinding::BindTexture(gl_image_.get(), target, + texture_id); +} + +GLuint NativePixmapEGLBinding::GetInternalFormat() { + return gl_image_->GetInternalFormat(); +} + +GLenum NativePixmapEGLBinding::GetDataFormat() { + return gl_image_->GetDataFormat(); +} + +GLenum NativePixmapEGLBinding::GetDataType() { + return gl_image_->GetDataType(); +} + } // namespace ui
diff --git a/ui/ozone/common/native_pixmap_egl_binding.h b/ui/ozone/common/native_pixmap_egl_binding.h index 75c4a12..f60abaf 100644 --- a/ui/ozone/common/native_pixmap_egl_binding.h +++ b/ui/ozone/common/native_pixmap_egl_binding.h
@@ -5,18 +5,26 @@ #ifndef UI_OZONE_COMMON_NATIVE_PIXMAP_EGL_BINDING_H_ #define UI_OZONE_COMMON_NATIVE_PIXMAP_EGL_BINDING_H_ +#include <memory> + +#include "ui/gfx/native_pixmap.h" #include "ui/ozone/public/native_pixmap_gl_binding.h" namespace gfx { class ColorSpace; } +namespace gl { +class GLImageNativePixmap; +} + namespace ui { // A binding maintained between GLImageNativePixmap and GL Textures in Ozone. class NativePixmapEGLBinding : public NativePixmapGLBinding { public: - NativePixmapEGLBinding(); + explicit NativePixmapEGLBinding( + scoped_refptr<gl::GLImageNativePixmap> gl_image); ~NativePixmapEGLBinding() override; static std::unique_ptr<NativePixmapGLBinding> Create( @@ -27,6 +35,20 @@ const gfx::ColorSpace& color_space, GLenum target, GLuint texture_id); + + // NativePixmapGLBinding: + GLuint GetInternalFormat() override; + GLenum GetDataFormat() override; + GLenum GetDataType() override; + + private: + // Invokes NativePixmapGLBinding::BindTexture, passing |gl_image_|. + bool BindTexture(GLenum target, GLuint texture_id); + + // TODO(hitawala): Merge BindTexImage, Initialize from GLImage and its + // subclass NativePixmap to NativePixmapEGLBinding once we stop using them + // elsewhere eg. VDA decoders in media. + scoped_refptr<gl::GLImageNativePixmap> gl_image_; }; } // namespace ui
diff --git a/ui/ozone/platform/wayland/gpu/wayland_canvas_surface.cc b/ui/ozone/platform/wayland/gpu/wayland_canvas_surface.cc index 6057976..4d6fe51 100644 --- a/ui/ozone/platform/wayland/gpu/wayland_canvas_surface.cc +++ b/ui/ozone/platform/wayland/gpu/wayland_canvas_surface.cc
@@ -27,7 +27,7 @@ namespace { // The maximum number of buffers we allow to be created. -constexpr uint32_t kMaxNumbferOfBuffers = 3; +constexpr size_t kMaxNumberOfBuffers = 3; } // namespace @@ -50,7 +50,13 @@ SharedMemoryBuffer(const SharedMemoryBuffer&) = delete; SharedMemoryBuffer& operator=(const SharedMemoryBuffer&) = delete; - ~SharedMemoryBuffer() { buffer_manager_->DestroyBuffer(buffer_id_); } + ~SharedMemoryBuffer() { + if (swap_ack_callback_) { + OnRelease(); + } + + buffer_manager_->DestroyBuffer(buffer_id_); + } // Returns SkSurface, which the client can use to write to this buffer. sk_sp<SkSurface> sk_surface() const { return sk_surface_; } @@ -115,6 +121,11 @@ used_ = false; } + void OnSubmission() { + DCHECK(swap_ack_callback_); + std::move(swap_ack_callback_).Run(size_); + } + void UpdateDirtyRegion(const gfx::Rect& damage, SkRegion::Op op) { SkIRect sk_damage = gfx::RectToSkIRect(damage); dirty_region_.op(sk_damage, op); @@ -143,7 +154,11 @@ return pending_damage_region_; } - void set_frame_data(const gfx::FrameData& data) { frame_data_ = data; } + void SetPendingSwapData(const gfx::FrameData& data, + SwapBuffersCallback swap_ack_callback) { + frame_data_ = data; + swap_ack_callback_ = std::move(swap_ack_callback); + } private: // The size of the buffer. @@ -175,6 +190,9 @@ // Frame data. gfx::FrameData frame_data_; + + // Swap ack callback. + SwapBuffersCallback swap_ack_callback_; }; class WaylandCanvasSurface::VSyncProvider : public gfx::VSyncProvider { @@ -235,11 +253,9 @@ } if (!pending_buffer_) { - if (buffers_.size() >= kMaxNumbferOfBuffers) { - // We have achieved the maximum number of buffers we can create. Wait for - // a free buffer. - return nullptr; - } + // It must be impossible that the maximum number of buffers that can be + // created is achieved. + DCHECK_LE(buffers_.size(), kMaxNumberOfBuffers); auto buffer = CreateSharedMemoryBuffer(); pending_buffer_ = buffer.get(); buffers_.push_back(std::move(buffer)); @@ -280,16 +296,13 @@ void WaylandCanvasSurface::OnSwapBuffers(SwapBuffersCallback swap_ack_callback, gfx::FrameData data) { - if (pending_buffer_) { - pending_buffer_->set_frame_data(data); - unsubmitted_buffers_.push_back(pending_buffer_); - pending_buffer_ = nullptr; - } + DCHECK(pending_buffer_); + pending_buffer_->SetPendingSwapData(data, std::move(swap_ack_callback)); + unsubmitted_buffers_.push_back(pending_buffer_); + pending_buffer_ = nullptr; if (!unsubmitted_buffers_.empty()) ProcessUnsubmittedBuffers(); - base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( - FROM_HERE, base::BindOnce(std::move(swap_ack_callback), size_)); } std::unique_ptr<gfx::VSyncProvider> @@ -352,6 +365,8 @@ DCHECK(current_buffer_); DCHECK_EQ(current_buffer_->buffer_id(), frame_id); + current_buffer_->OnSubmission(); + if (previous_buffer_) previous_buffer_->OnRelease();
diff --git a/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc b/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc index 762c1791..0a648fe3 100644 --- a/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc +++ b/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc
@@ -150,6 +150,16 @@ pending_local_swap_ids_.front() > local_swap_id); } + // Corresponds to SoftwareOutputDevice::SwapBuffersCallback so that it can be + // used with canvas surfaces. + void CanvasSwapBuffersCallback(const gfx::Size& pixel_size) { + last_canvas_swap_pixel_size_ = pixel_size; + } + + gfx::Size GetLastCanvasSwapPixelSize() const { + return std::move(last_canvas_swap_pixel_size_); + } + private: uint32_t local_swap_id_ = 0; // Make sure that local_swap_id_ != last_finish_swap_id_. @@ -158,6 +168,10 @@ // Keeps track of a displayed image. std::vector<scoped_refptr<OverlayImageHolder>> displayed_images_; + + // Keeps track of last swap pixel size. Used only for the path that uses + // canvas. + gfx::Size last_canvas_swap_pixel_size_; }; } // namespace @@ -982,6 +996,84 @@ }); } +// Checks that buffer swap ack is called only after Wayland calls OnSubmission. +TEST_P(WaylandSurfaceFactoryTest, CanvasBufferSwapAck) { + constexpr float kDefaultScaleFactor = 1u; + auto canvas = CreateCanvas(widget_); + ASSERT_TRUE(canvas); + + auto bounds_px = window_->GetBoundsInPixels(); + + canvas->ResizeCanvas(bounds_px.size(), kDefaultScaleFactor); + + const uint32_t surface_id = window_->root_surface()->get_surface_id(); + + // Send the first buffer. OnSubmission must be received immediately. + { + auto* sk_canvas = canvas->GetCanvas(); + ASSERT_TRUE(sk_canvas); + + canvas->PresentCanvas(gfx::Rect(5, 10, 20, 15)); + CallbacksHelper cbs_helper; + canvas->OnSwapBuffers( + base::BindOnce(&CallbacksHelper::CanvasSwapBuffersCallback, + base::Unretained(&cbs_helper)), + gfx::FrameData()); + + // Wait until the mojo calls are done. + base::RunLoop().RunUntilIdle(); + + PostToServerAndWait([surface_id](wl::TestWaylandServerThread* server) { + auto* mock_surface = server->GetObject<wl::MockSurface>(surface_id); + mock_surface->SendFrameCallback(); + }); + + base::RunLoop().RunUntilIdle(); + + // The first OnSubmission comes immediately regardless on buffer releases. + EXPECT_EQ(cbs_helper.GetLastCanvasSwapPixelSize(), bounds_px.size()); + } + + // Now submit the second buffer. OnSubmission must come only after the buffer + // is released. + { + auto* sk_canvas = canvas->GetCanvas(); + ASSERT_TRUE(sk_canvas); + + canvas->PresentCanvas(gfx::Rect(1, 1, 30, 55)); + CallbacksHelper cbs_helper; + canvas->OnSwapBuffers( + base::BindOnce(&CallbacksHelper::CanvasSwapBuffersCallback, + base::Unretained(&cbs_helper)), + gfx::FrameData()); + + // Wait until the mojo calls are done. + base::RunLoop().RunUntilIdle(); + + PostToServerAndWait([surface_id](wl::TestWaylandServerThread* server) { + auto* mock_surface = server->GetObject<wl::MockSurface>(surface_id); + mock_surface->SendFrameCallback(); + }); + + base::RunLoop().RunUntilIdle(); + + // The second OnSubmission will come only after a buffer is released. + EXPECT_TRUE(cbs_helper.GetLastCanvasSwapPixelSize().IsEmpty()); + + PostToServerAndWait([surface_id](wl::TestWaylandServerThread* server) { + auto* mock_surface = server->GetObject<wl::MockSurface>(surface_id); + auto* buffer_resource = mock_surface->prev_attached_buffer(); + ASSERT_TRUE(buffer_resource); + mock_surface->ReleaseBufferFenced(buffer_resource, {}); + }); + + base::RunLoop().RunUntilIdle(); + + // The second OnSubmission will come only after a buffer is released. + EXPECT_EQ(cbs_helper.GetLastCanvasSwapPixelSize(), bounds_px.size()); + } +} + TEST_P(WaylandSurfaceFactoryTest, CreateSurfaceCheckGbm) { gl::SetGLImplementation(gl::kGLImplementationEGLGLES2);
diff --git a/ui/ozone/platform/wayland/host/wayland_popup.cc b/ui/ozone/platform/wayland/host/wayland_popup.cc index b350b9e4..11fea6e5 100644 --- a/ui/ozone/platform/wayland/host/wayland_popup.cc +++ b/ui/ozone/platform/wayland/host/wayland_popup.cc
@@ -23,6 +23,7 @@ #include "ui/ozone/platform/wayland/host/wayland_connection.h" #include "ui/ozone/platform/wayland/host/wayland_output.h" #include "ui/ozone/platform/wayland/host/wayland_output_manager.h" +#include "ui/ozone/platform/wayland/host/wayland_subsurface.h" #include "ui/ozone/platform/wayland/host/wayland_zaura_shell.h" namespace ui { @@ -134,6 +135,10 @@ if (child_window()) child_window()->Hide(); WaylandWindow::Hide(); + // Mutter compositor crashes if we don't reset subsurfaces when hiding. + if (WaylandWindow::primary_subsurface()) { + WaylandWindow::primary_subsurface()->ResetSubsurface(); + } if (IsSupportedOnAuraSurface(ZAURA_SURFACE_RELEASE_SINCE_VERSION)) SetAuraSurface(nullptr);
diff --git a/ui/ozone/platform/wayland/host/wayland_subsurface.cc b/ui/ozone/platform/wayland/host/wayland_subsurface.cc index f298523..3cc49a0a 100644 --- a/ui/ozone/platform/wayland/host/wayland_subsurface.cc +++ b/ui/ozone/platform/wayland/host/wayland_subsurface.cc
@@ -56,27 +56,41 @@ } void WaylandSubsurface::Show() { - if (!subsurface_) - CreateSubsurface(); + if (visible_) { + return; + } + + if (subsurface_) { + ResetSubsurface(); + } + + CreateSubsurface(); + visible_ = true; } void WaylandSubsurface::Hide() { - if (!subsurface_) + if (!IsVisible() || !subsurface_) { return; + } // Remove it from the stack. RemoveFromList(); + visible_ = false; +} +void WaylandSubsurface::ResetSubsurface() { augmented_subsurface_.reset(); subsurface_.reset(); + wayland_surface_.UnsetRootWindow(); } bool WaylandSubsurface::IsVisible() const { - return !!subsurface_; + return visible_; } void WaylandSubsurface::CreateSubsurface() { DCHECK(parent_); + wayland_surface_.SetRootWindow(parent_); wl_subcompositor* subcompositor = connection_->subcompositor(); DCHECK(subcompositor);
diff --git a/ui/ozone/platform/wayland/host/wayland_subsurface.h b/ui/ozone/platform/wayland/host/wayland_subsurface.h index d830615..305e9cd 100644 --- a/ui/ozone/platform/wayland/host/wayland_subsurface.h +++ b/ui/ozone/platform/wayland/host/wayland_subsurface.h
@@ -54,9 +54,11 @@ // Assigns wl_subsurface role to the wl_surface so it is visible when a // wl_buffer is attached. void Show(); - // Remove wl_subsurface role to make this invisible. + // Remove this from the stack to make this invisible. void Hide(); bool IsVisible() const; + // Reset the subsurface objects. + void ResetSubsurface(); private: // Helper of Show(). It does the role-assigning to wl_surface. @@ -72,6 +74,7 @@ // |parent_| refers to the WaylandWindow whose wl_surface is the parent to // this subsurface. const raw_ptr<WaylandWindow> parent_; + bool visible_ = false; }; } // namespace ui
diff --git a/ui/ozone/platform/wayland/host/wayland_surface.cc b/ui/ozone/platform/wayland/host/wayland_surface.cc index 363b3246..204a01b 100644 --- a/ui/ozone/platform/wayland/host/wayland_surface.cc +++ b/ui/ozone/platform/wayland/host/wayland_surface.cc
@@ -223,6 +223,10 @@ root_window_ = nullptr; } +void WaylandSurface::SetRootWindow(WaylandWindow* window) { + root_window_ = window; +} + void WaylandSurface::set_acquire_fence(gfx::GpuFenceHandle acquire_fence) { // WaylandBufferManagerGPU knows if the synchronization is not available and // must disallow clients to use explicit synchronization.
diff --git a/ui/ozone/platform/wayland/host/wayland_surface.h b/ui/ozone/platform/wayland/host/wayland_surface.h index ffa3ac5c..0f00196 100644 --- a/ui/ozone/platform/wayland/host/wayland_surface.h +++ b/ui/ozone/platform/wayland/host/wayland_surface.h
@@ -84,6 +84,7 @@ // the underlying wl_surface must be kept alive with no root window associated // (e.g: window/tab dragging sessions). void UnsetRootWindow(); + void SetRootWindow(WaylandWindow* window); // Attaches the given wl_buffer to the underlying wl_surface at (0, 0). // Returns true if wl_surface.attach will be called in ApplyPendingStates().
diff --git a/ui/ozone/platform/wayland/host/wayland_window.cc b/ui/ozone/platform/wayland/host/wayland_window.cc index d2e52c9..068537e 100644 --- a/ui/ozone/platform/wayland/host/wayland_window.cc +++ b/ui/ozone/platform/wayland/host/wayland_window.cc
@@ -89,6 +89,8 @@ if (wayland_overlay_delegation_enabled_) { connection_->window_manager()->RemoveSubsurface(GetWidget(), primary_subsurface_.get()); + connection_->window_manager()->RecycleSubsurface( + std::move(primary_subsurface_)); } for (const auto& widget_subsurface : wayland_subsurfaces()) { connection_->window_manager()->RemoveSubsurface(GetWidget(), @@ -282,7 +284,6 @@ void WaylandWindow::Hide() { received_configure_event_ = false; - // Mutter compositor crashes if we don't remove subsurface roles when hiding. if (primary_subsurface_) { primary_subsurface()->Hide(); }
diff --git a/ui/ozone/platform/wayland/host/wayland_window_manager.cc b/ui/ozone/platform/wayland/host/wayland_window_manager.cc index 10ff600..d65cc6e 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_manager.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_manager.cc
@@ -228,6 +228,14 @@ observer.OnSubsurfaceRemoved(window, subsurface); } +void WaylandWindowManager::RecycleSubsurface( + std::unique_ptr<WaylandSubsurface> subsurface) { + // Reset the root window when the corresponding subsurface is invalid, + // preventing it from receiving events. + subsurface->wayland_surface()->UnsetRootWindow(); + subsurface_recycle_cache_ = std::move(subsurface); +} + gfx::AcceleratedWidget WaylandWindowManager::AllocateAcceleratedWidget() { return ++last_accelerated_widget_; }
diff --git a/ui/ozone/platform/wayland/host/wayland_window_manager.h b/ui/ozone/platform/wayland/host/wayland_window_manager.h index c95d7dc4..08f45404 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_manager.h +++ b/ui/ozone/platform/wayland/host/wayland_window_manager.h
@@ -12,6 +12,7 @@ #include "base/observer_list.h" #include "ui/gfx/geometry/size_f.h" #include "ui/gfx/native_widget_types.h" +#include "ui/ozone/platform/wayland/host/wayland_subsurface.h" #include "ui/ozone/platform/wayland/host/wayland_window_observer.h" namespace ui { @@ -108,6 +109,8 @@ void RemoveSubsurface(gfx::AcceleratedWidget widget, WaylandSubsurface* subsurface); + void RecycleSubsurface(std::unique_ptr<WaylandSubsurface> subsurface); + // Creates a new unique gfx::AcceleratedWidget. gfx::AcceleratedWidget AllocateAcceleratedWidget(); @@ -121,6 +124,11 @@ base::flat_map<gfx::AcceleratedWidget, WaylandWindow*> window_map_; + // The cache of |primary_subsurface_| of the last closed WaylandWindow. This + // will be destroyed lazily to make sure the window closing animation works + // well. See crbug.com/1324548. + std::unique_ptr<WaylandSubsurface> subsurface_recycle_cache_; + raw_ptr<WaylandWindow> located_events_grabber_ = nullptr; // Stores strictly monotonically increasing counter for allocating unique
diff --git a/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.cc b/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.cc index 73ee3d3d..ba06e97 100644 --- a/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.cc +++ b/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.cc
@@ -75,7 +75,9 @@ namespace ui { -NativePixmapEGLX11Binding::NativePixmapEGLX11Binding() = default; +NativePixmapEGLX11Binding::NativePixmapEGLX11Binding( + scoped_refptr<gl::GLImageEGLPixmap> gl_image) + : gl_image_(std::move(gl_image)) {} NativePixmapEGLX11Binding::~NativePixmapEGLX11Binding() = default; // static @@ -97,12 +99,30 @@ return nullptr; } - auto binding = std::make_unique<NativePixmapEGLX11Binding>(); - if (!binding->BindTexture(std::move(gl_image), target, texture_id)) { + auto binding = + std::make_unique<NativePixmapEGLX11Binding>(std::move(gl_image)); + if (!binding->BindTexture(target, texture_id)) { return nullptr; } return binding; } +bool NativePixmapEGLX11Binding::BindTexture(GLenum target, GLuint texture_id) { + return NativePixmapGLBinding::BindTexture(gl_image_.get(), target, + texture_id); +} + +GLuint NativePixmapEGLX11Binding::GetInternalFormat() { + return gl_image_->GetInternalFormat(); +} + +GLenum NativePixmapEGLX11Binding::GetDataFormat() { + return gl_image_->GetDataFormat(); +} + +GLenum NativePixmapEGLX11Binding::GetDataType() { + return gl_image_->GetDataType(); +} + } // namespace ui
diff --git a/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h b/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h index e098be15a..2c1e299 100644 --- a/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h +++ b/ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h
@@ -5,15 +5,23 @@ #ifndef UI_OZONE_PLATFORM_X11_NATIVE_PIXMAP_EGL_X11_BINDING_H_ #define UI_OZONE_PLATFORM_X11_NATIVE_PIXMAP_EGL_X11_BINDING_H_ +#include <memory> + +#include "ui/gfx/native_pixmap.h" #include "ui/ozone/public/native_pixmap_gl_binding.h" +namespace gl { +class GLImageEGLPixmap; +} + namespace ui { // A binding maintained between GLImageEGLPixmap and GL Textures in Ozone. This // is used on X11. class NativePixmapEGLX11Binding : public NativePixmapGLBinding { public: - NativePixmapEGLX11Binding(); + explicit NativePixmapEGLX11Binding( + scoped_refptr<gl::GLImageEGLPixmap> gl_image); ~NativePixmapEGLX11Binding() override; static std::unique_ptr<NativePixmapGLBinding> Create( @@ -22,6 +30,20 @@ gfx::Size plane_size, GLenum target, GLuint texture_id); + + // NativePixmapGLBinding: + GLuint GetInternalFormat() override; + GLenum GetDataFormat() override; + GLenum GetDataType() override; + + private: + // Invokes NativePixmapGLBinding::BindTexture, passing |gl_image_|. + bool BindTexture(GLenum target, GLuint texture_id); + + // TODO(hitawala): Merge BindTexImage, Initialize from GLImage and its + // subclass EGLPixmap to NativePixmapEGLX11Binding once we stop using them + // elsewhere eg. VDA decoders in media. + scoped_refptr<gl::GLImageEGLPixmap> gl_image_; }; } // namespace ui
diff --git a/ui/ozone/public/gl_ozone.h b/ui/ozone/public/gl_ozone.h index 761ec4de..edc082b6 100644 --- a/ui/ozone/public/gl_ozone.h +++ b/ui/ozone/public/gl_ozone.h
@@ -10,6 +10,7 @@ #include "base/component_export.h" #include "base/memory/scoped_refptr.h" #include "ui/gfx/geometry/size.h" +#include "ui/gfx/native_pixmap.h" #include "ui/gfx/native_widget_types.h" #include "ui/gl/gl_display.h" #include "ui/gl/gl_implementation.h"
diff --git a/ui/ozone/public/native_pixmap_gl_binding.cc b/ui/ozone/public/native_pixmap_gl_binding.cc index e84a90b..66c7a84 100644 --- a/ui/ozone/public/native_pixmap_gl_binding.cc +++ b/ui/ozone/public/native_pixmap_gl_binding.cc
@@ -5,8 +5,8 @@ #include "ui/ozone/public/native_pixmap_gl_binding.h" #include "base/logging.h" -#include "base/memory/scoped_refptr.h" #include "ui/gl/gl_bindings.h" +#include "ui/gl/gl_image.h" #include "ui/gl/scoped_binders.h" namespace ui { @@ -14,14 +14,10 @@ NativePixmapGLBinding::NativePixmapGLBinding() = default; NativePixmapGLBinding::~NativePixmapGLBinding() = default; -// The GLImgeNativePixmap::BindTexImage and GLImageNativePixmap::Initialize will -// be merged to NativePixmapEGLBinding and corresponding code for -// GLImageGLXNativePixmap will move to NativePixmapGLXBinding leading to the -// deletion of BindTexture here. -bool NativePixmapGLBinding::BindTexture(scoped_refptr<gl::GLImage> gl_image, +// static +bool NativePixmapGLBinding::BindTexture(gl::GLImage* gl_image, GLenum target, GLuint texture_id) { - gl_image_ = gl_image; gl::ScopedTextureBinder binder(target, texture_id); gl::GLApi* api = gl::g_current_gl_context; @@ -31,7 +27,7 @@ api->glTexParameteriFn(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); api->glTexParameteriFn(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - if (!gl_image_->BindTexImage(target)) { + if (!gl_image->BindTexImage(target)) { LOG(ERROR) << "Unable to bind GL image to target = " << target; return false; } @@ -39,16 +35,4 @@ return true; } -GLuint NativePixmapGLBinding::GetInternalFormat() { - return gl_image_->GetInternalFormat(); -} - -GLenum NativePixmapGLBinding::GetDataFormat() { - return gl_image_->GetDataFormat(); -} - -GLenum NativePixmapGLBinding::GetDataType() { - return gl_image_->GetDataType(); -} - } // namespace ui
diff --git a/ui/ozone/public/native_pixmap_gl_binding.h b/ui/ozone/public/native_pixmap_gl_binding.h index 2df444e..95228f43 100644 --- a/ui/ozone/public/native_pixmap_gl_binding.h +++ b/ui/ozone/public/native_pixmap_gl_binding.h
@@ -6,11 +6,14 @@ #define UI_OZONE_PUBLIC_NATIVE_PIXMAP_GL_BINDING_H_ #include "base/component_export.h" -#include "ui/gl/gl_image.h" typedef unsigned int GLuint; typedef unsigned int GLenum; +namespace gl { +class GLImage; +} + namespace ui { // A binding maintained between NativePixmap and GL Texture in Ozone. @@ -19,20 +22,18 @@ NativePixmapGLBinding(); virtual ~NativePixmapGLBinding(); - GLuint GetInternalFormat(); - GLenum GetDataFormat(); - GLenum GetDataType(); + virtual GLuint GetInternalFormat() = 0; + virtual GLenum GetDataFormat() = 0; + virtual GLenum GetDataType() = 0; protected: - bool BindTexture(scoped_refptr<gl::GLImage>, - GLenum target, - GLuint texture_id); - - private: - // TODO(hitawala): Merge BindTexImage, Initialize from GLImage and its - // subclasses {NativePixmap, GLXNativePixmap} to NativePixmapGLBinding and its - // subclasses once we stop using them elsewhere eg. VDA decoders in media. - scoped_refptr<gl::GLImage> gl_image_; + // Helper method that first binds |texture_id| and subsequently |image| to + // |target|. + // NOTE: GLImageNativePixmap::BindTexImage and + // GLImageNativePixmap::Initialize will be merged to NativePixmapEGLBinding + // and corresponding code for GLImageEGLPixmap will move to + // NativePixmapEGLX11Binding leading to the deletion of BindTexture here. + static bool BindTexture(gl::GLImage* image, GLenum target, GLuint texture_id); }; } // namespace ui
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java b/weblayer/browser/java/org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java index 8cd7b297..dbd9983d 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java
@@ -7,6 +7,7 @@ import android.app.Activity; import android.graphics.drawable.Drawable; +import androidx.annotation.LayoutRes; import androidx.annotation.Nullable; import androidx.preference.Preference; @@ -122,6 +123,12 @@ } @Override + public @LayoutRes int defaultPreferenceLayoutResource() { + // WebLayer uses Android's default Preference layout. + return 0; + } + + @Override public boolean isHelpAndFeedbackEnabled() { return false; }
diff --git a/weblayer/browser/safe_browsing/safe_browsing_service.cc b/weblayer/browser/safe_browsing/safe_browsing_service.cc index 5677916c..cc9c93d 100644 --- a/weblayer/browser/safe_browsing/safe_browsing_service.cc +++ b/weblayer/browser/safe_browsing/safe_browsing_service.cc
@@ -75,9 +75,11 @@ content::GetIOThreadTaskRunner({})->PostTask( FROM_HERE, - base::BindOnce(&safe_browsing::MojoSafeBrowsingImpl::MaybeCreate, rph_id, - resource_context, std::move(get_checker_delegate), - std::move(receiver))); + base::BindOnce( + &safe_browsing::MojoSafeBrowsingImpl::MaybeCreate, rph_id, + // TODO(https://crbug.com/1407653) Fix this dangling pointer. + base::UnsafeDanglingUntriaged(resource_context), + std::move(get_checker_delegate), std::move(receiver))); } } // namespace
diff --git a/weblayer/public/java/org/chromium/weblayer/BrowserProcessBinder.java b/weblayer/public/java/org/chromium/weblayer/BrowserProcessBinder.java index 2d4a5754..04c6b582 100644 --- a/weblayer/public/java/org/chromium/weblayer/BrowserProcessBinder.java +++ b/weblayer/public/java/org/chromium/weblayer/BrowserProcessBinder.java
@@ -30,26 +30,32 @@ @Override public void isAvailable(IBooleanCallback callback) { - try { - callback.onResult(WebLayer.isAvailable(mContext)); - } catch (RemoteException e) { - } + new Handler(Looper.getMainLooper()).post(() -> { + try { + callback.onResult(WebLayer.isAvailable(mContext)); + } catch (RemoteException e) { + } + }); } @Override public void getVersion(IStringCallback callback) { - try { - callback.onResult(WebLayer.getSupportedFullVersion(mContext)); - } catch (RemoteException e) { - } + new Handler(Looper.getMainLooper()).post(() -> { + try { + callback.onResult(WebLayer.getSupportedFullVersion(mContext)); + } catch (RemoteException e) { + } + }); } @Override public void getProviderPackageName(IStringCallback callback) { - try { - callback.onResult(WebLayer.getProviderPackageName(mContext)); - } catch (RemoteException e) { - } + new Handler(Looper.getMainLooper()).post(() -> { + try { + callback.onResult(WebLayer.getProviderPackageName(mContext)); + } catch (RemoteException e) { + } + }); } @Override